Unroll Geometry as Texture

I have a 3D model cylindrical vase that I want to unroll as a texture/image so that it can be reapplied to a pure cylinder as a texture (I am trying to save on geometry). The 3D model is comprised of multiple polysurfaces. And some geometry spans over the seam of the cylinder. Shaded mode if fine. Is this something that can be done? I do not want to flowalongsrf from the cylinder to a flat surface. That does not work with the geometry at the seam, even if the geometry if split. I suspect that would also distort my geometry.

Here is an basic example:

191017 Temp.3dm (414.4 KB)

Hello - do you want to apply as a displacement map? In this case it seems easy enough yo just build it flat and use ShowZBuffer to get a gray scale image to use as a bump sound like it might be what you want?


No, I am not looking to apply it as a displacement map. I want the texture to stand in for real geometry. The example file is an oversimplification of my vase design. There is no quick way to draw it or approximate like you did. It’s almost like there needs to be a way to render an object by revolving around it. Similar to the panorama function on your phone, but looking inward at the axis of rotation.

FlowAlongSrf may be useful.

or unrollsrf, although I haven’t used it much other than to unroll extremely simply geometries. Possibly dupedge/dupborder your geometries onto your vase surface (so you have the outline of the goemtries on the srf) then use unrollsrf. then rebuild geometries according to the the duped curves on your newly created unrolled surface.

@lawrenceyy You want to assign a texture to your object, but so, that no seams are visible?

Essentially, I want to generate a texture from my 3D vase that I can apply to a cylinder so that it looks like an approximation of the real thing. I know there will be some perspective issues since the vase is round. FlowAlongSrf is more work than I want to do, especially since it does weird things near the seam of the cylinder.

I guess if I were to write a script, I would:

  • render a straight on front view
  • record the middle column of pixels at the center of the cylinder
  • rotate the cylinder
  • record the middle column of pixels at the center of the cylinder
  • and repeat until all 360° were captured
  • stitch together all the pixel columns to form a texture

can you maybe post a little snipped of which geometry you are actually trying to unroll? usually you can get away by meshing the geometry first for less or probably even no distortion using FlowAlongSrf. rebuilding the geometry to denser CP could also help i think, but mesh is what i had best results with tricky geometry.

Meshing definitely does help make the geometry less distorted. But there are still problems at the seam. FlowAlongSurface is confused as to which side of the seam the vertices belong to.

Here is an example file:

191021 Temp.3dm (1.6 MB)

By the way, the base cylinder is rebuilt with more control points. I found that flowing onto a cylinder with 2 degree control points caused some distortions. Rebuilding gets close to a cylinder, but not perfectly. Is there a way to get a perfect 3 degree cylinder/circle?

regarding the vertices i am just guessing that maybe base surface and the target surface could still be affecting it. you could also try to remesh it before flowing with the quadremesher from wip 7 and see if that helps keeping the vertices behave.

generally there is no way to precise rebuild a cylinder with a 2 degree surface to a degree 3 surface without having to burst up the CP to astronomical values, that is because of the underlying maths involved i assume since degree 2 as handled implicit and from then on everything else is parametric. take that info with a grain of salt of course.

if the actual geometry you are trying to flow is similar maybe it makes more sense simply intersecting the outlines with the base surface and flow only these to a flat surface, then pipe/sweep them there.

No, it is not possible for a degree 3 curve/surface to be a perfect circle/cylinder. That requires a rational degree 2 curve/surface. “Rational” means weights other than the usual 1 are used. It is possible for a degree 3 curve/surface to match a circle/cylinder within any desired (greater than zero) tolerance by using enough control points. But for very small tolerances a large number of control point may be needed.