Why is not this working? (UV Flatten/Seams)
11505 15 1- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
I was following this method from SideFx. https://www.youtube.com/watch?v=b3c2PO-gJCk [www.youtube.com]
I did everything to the point when i am about to add seam group on the flatten. 1:43 video
As you can see in the picture provided, if im even assigning the selected seams correctly, that my object is not unwraped as it should be, given the path of the seams that totally surrounds the object. I instead get these choppy islands.
The expected unwrap, given the seam selection, would be to split the geo in half, but for some reason i get this outcome.
It's the first time i actually do unwraping in Houdini, so i might be missing something? Also, the video is 2-3 older, the flatten sop looks different then current.
I did everything to the point when i am about to add seam group on the flatten. 1:43 video
As you can see in the picture provided, if im even assigning the selected seams correctly, that my object is not unwraped as it should be, given the path of the seams that totally surrounds the object. I instead get these choppy islands.
The expected unwrap, given the seam selection, would be to split the geo in half, but for some reason i get this outcome.
It's the first time i actually do unwraping in Houdini, so i might be missing something? Also, the video is 2-3 older, the flatten sop looks different then current.
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
Island
It looks like all edges were selected as seams.
Yes it does. However, as you can see the seams are just marked along the outger edge of the object, so i sinply had an idea to split it in half and simply paint on it later in blender. Ill see if i can send you the file today. Thank you for answering.
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
Island
Can you post your hip file or just a bgeo with uv flatten node?
Island, here is the project. When i select islands in the UV it doesnt link the to the whole mesh….still, should have flattened it the way i marked by the seams, i guess…
Hopefully i packed it well for you to open it. Please say if not.
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
The model has problematic topology (and would be best retopologizing), but I think the main issue is that you should not have anything in the group box. Personally, I would use a UVproject node set to orthographic xy plane. If you want to fine tune it, make a much smaller loop for the part that is most non planar and use UV flatten on just that. Your best bet would be to use Zbrush for both retopologizing and UV mapping this sort of shape. Second best would be Rizom UV. Here is just the UVproject:
Edited by Island - July 25, 2020 13:34:24
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
Retopologizing reduces size easily from 30.5MB to 2MB.
I don't think Houdini is the best tool to use for complicated UV editing. In most dedicated uv unwrapping tools, one creates seams and does an initial unwrap. Then one hides the islands that one doesn't want to work with and relaxes or optimizes or reprojects the problematic island. Then one goes to the next island and does the same. Finally, everything is unhidden and then packed. The uvedit node in Houdini is not especially helpful in automating parts of this.
If you are on windows, the lab node for quadremesher would be a good purchase for fixing topology. There is a blender version, if your model originated there. The algorithm is the same as zbrush.
I don't think Houdini is the best tool to use for complicated UV editing. In most dedicated uv unwrapping tools, one creates seams and does an initial unwrap. Then one hides the islands that one doesn't want to work with and relaxes or optimizes or reprojects the problematic island. Then one goes to the next island and does the same. Finally, everything is unhidden and then packed. The uvedit node in Houdini is not especially helpful in automating parts of this.
If you are on windows, the lab node for quadremesher would be a good purchase for fixing topology. There is a blender version, if your model originated there. The algorithm is the same as zbrush.
Edited by Island - July 25, 2020 15:06:42
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
Did you do that retopo manually or did you do it with something like polyreduce or remesh?
You know, i ve been thinking what you said about the mesh, that it is bad and it needs retoplo.
I sculpted that mesh in Blender, i tried not to give it too high resolution while sculpting it. But why is it bad? I will not be using it for game engine as i read its notorious for demanding a good mesh, its just going to be rendered in animation, although i can see that it could be problematic because this way im not able to uv flatten it. However im not sure on what part are you aiming for when say that the mesh is bad and needs retopo? I sculpted previously 6 flowers and on this principle was able to unwrap it on half by making seams across the edge of the flower and splitting it on 2 parts.
Regarding this case, i also notice that when unwraping it like this, you can see the mesh overlaps. That way if i paint the color over the mesh, the color will bleed and be choppy. What is the reason for that overlap when my mesh in 3D is separated? Hopefully i was clear in my writting.
You know, i ve been thinking what you said about the mesh, that it is bad and it needs retoplo.
I sculpted that mesh in Blender, i tried not to give it too high resolution while sculpting it. But why is it bad? I will not be using it for game engine as i read its notorious for demanding a good mesh, its just going to be rendered in animation, although i can see that it could be problematic because this way im not able to uv flatten it. However im not sure on what part are you aiming for when say that the mesh is bad and needs retopo? I sculpted previously 6 flowers and on this principle was able to unwrap it on half by making seams across the edge of the flower and splitting it on 2 parts.
Regarding this case, i also notice that when unwraping it like this, you can see the mesh overlaps. That way if i paint the color over the mesh, the color will bleed and be choppy. What is the reason for that overlap when my mesh in 3D is separated? Hopefully i was clear in my writting.
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
I generally do manual retopology if I plan to rig the model or want to get the best polycount, but that remesh was a one click in Zbrush (which would be similar to quadremesher plugin for Blender). The topology in the original is not good as the object has an unnecessarily large number of polygons, which creates problems such as you already discovered with UVflatten. Your model actual has two parts with disconnected polygons and one part is all quads and the other all triangles. The biggest part is all triangles. That creates havoc with selecting edge loops, and I don't know how much time it took to select the boundary, but it was likely tedious. Even autoretopology can create problems with spiral edge loops, but it isn't that difficult to fix this afterwards.
Regarding mesh overlaps, you could prevent this entirely in one of two ways. Since you have a seam, you can add a blast or delete node and remove all polys on one side of the loop. Then create another blast node and delete the polys on the other side of the loop. Perform UV mapping separately on each part and then merge them together and pack the UVs.
The second way would be to use a UVedit node and either move the vertices or just break off the areas where there is overlap (the equivalent of adding an extra seam). (see attachment, done in Modo, but could have been done in Houdini with UVedit)
Coloring the mesh can actually be done in Houdini/Mantra without UVs at all, since you can ramp the point position or point normal to a color. But if you are doing proper UV's, it depends on how you plan to color your model. If you are using 2D painting, like Photoshop, you probably want to minimize seams. If you are using 3Dcoat, Substance Painter, or Mari, the number of seams are much less important, and orientation can be for best fit (maximizing your texture area) rather than aligned.
Second attachment is entire unwrap done in Houdini with method suggested above. The group was done with polygon selection rectangle with the eye icon to avoid selecting the back of the model. The UV edit nodes basically just pull off the pedals to separate them (avoiding overlap).
Regarding mesh overlaps, you could prevent this entirely in one of two ways. Since you have a seam, you can add a blast or delete node and remove all polys on one side of the loop. Then create another blast node and delete the polys on the other side of the loop. Perform UV mapping separately on each part and then merge them together and pack the UVs.
The second way would be to use a UVedit node and either move the vertices or just break off the areas where there is overlap (the equivalent of adding an extra seam). (see attachment, done in Modo, but could have been done in Houdini with UVedit)
Coloring the mesh can actually be done in Houdini/Mantra without UVs at all, since you can ramp the point position or point normal to a color. But if you are doing proper UV's, it depends on how you plan to color your model. If you are using 2D painting, like Photoshop, you probably want to minimize seams. If you are using 3Dcoat, Substance Painter, or Mari, the number of seams are much less important, and orientation can be for best fit (maximizing your texture area) rather than aligned.
Second attachment is entire unwrap done in Houdini with method suggested above. The group was done with polygon selection rectangle with the eye icon to avoid selecting the back of the model. The UV edit nodes basically just pull off the pedals to separate them (avoiding overlap).
Edited by Island - July 25, 2020 19:49:40
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
Just to be clear, I am not recommending going out and buying a lot of additional programs. Programs like Quadremesher, Zbrush, Modo, and RizomUV are very useful in their own right, but also allow one to fix things after they got messed up. Clearly, it is best to not mess up the topology in the first place, and that is what I am recommending.
Regarding fixing an existing model:
Both Houdini and Blender have sculpting tools, but Blender is much better for this. They are best thought of as ways of soft selecting and moving existing polygons, preferably on a relatively low density mesh. Neither is particularly useful for intermediate or advanced sculpting, though. The reason for that is that if one moves points/vertices far enough, there is not enough geometry in those areas to get any smooth additional sculpting. One has to add subdivisions and that just causes too many polygons in areas that don't need them in order to get a reasonable number of polygons on the stretched out areas. The solution in a dedicated sculpting program is to either automatically remesh periodically as one sculpts, or to use voxel sculpting that does not depend on polygons. In addition, detailed sculpting requires such a high number of polygons that the resulting mesh is almost impossible to adequately UV map or rig, though there are some workarounds that programs like Zbrush do to lessen that flaw. In reality, one converts the high polygon mesh to a displacement map to map onto a much lower polygon mesh, that is easier to UV map and rig.
Similarly, both Houdini and Blender have UV tools, though Houdini is better much better than Blender for this. Neither is a match for a dedicated UV mapping program like RizomUV or even Modo. Dedicated UV mapping programs have the ability to break apart a model and hide areas one is not working with (the visibility node in Houdini will not work, as the polygons are still evaluated in the UV unwrap, unlike other programs) and then use various relaxing and packing algorithms to fix overlaps and distortions. They can group islands and stack similarly shaped islands. The edge selection and polygons selection tools are a lot more sophisticated than Houdini or Blender. You can do a lot of this in Houdini, but it is kind of like using soft selection moves when you want to sculpt. It can be painful if the model is complicated and the UV flatten itself needs much tweaking.
But back to your original model. You have the artistic capability and the shapes look good. In Blender, you used the solidify and subdivide modifiers. The equivalent in Houdini would be the polyextrude and subdivide nodes. Everything was fine until these got applied, and then the model itself became a lot more complicated. Sculpting itself can sometimes generate bad topology. But most likely the triangles were an export problem from Blender into Houdini. You probably tried to do some sort of remesh in Blender, which is why part of your obj model has quads and the other part, triangles. You can check in Blender with a wireframe overlay or just in edit mode, at what point things got changed into triangles. But you don't want to do that. Triangles are fine internally for rendering and even 3D printing, but they are a mess for edge loops and selecting regions (which you want to do for UV mapping). The actual number of polygons is not really the issue, as you can subdivide a 10x10x10 cube six times and keep good topology but have a million polygons. You still have good edge loops and regions can be easily defined. But if you get a mess of triangles, defining a cutting edge will be a nightmare with even several hundred polygons.
The best way I know to think of UV mapping is think of planar mapping of different regions. Any curved surface will stretch the parts with a planar map in the middle and pinch the areas at the edges (think of a map of the world and the elongation but pinching of Antarctica). But planar maps work great for satellite maps of a city, because the distortions on a small scale are not significant. So if you make a million little planar maps of parts of the whole world, everything is great, except that anything going across a seam (from one little map to the next) is a problem. So one fuses some of these little planar maps together and lives with some distortion. The final number of maps is basically the number of seams. You try to hide the seams in areas that the camera doesn't see directly, if possible. Again, there are ways to avoid dealing with any of this, like creating one big stretched out map with many distorted areas, such as one might get in Zbrush. Or one could use PTEX painting in Mari. But for mere mortals, one should best learn how to create reasonable seams and relax the projections.
If you look at the image below for a simple UVflatten of a sphere, it is very similar to planar projections after just breaking up the polygon mesh into parts. The attached hip file shows the differences between a simple UVflatten and dividing up the model and UV projecting in the attached hip file. Basically the UVflattening does some relaxation of the islands that get distorted by the planar projection. But otherwise they are similar. (In a dedicated UV program, one could convert the planar projection to the UVflatten by a simple optimize or relaxation). In Houdini, you could fix this particular model with the UVflatten node by just using the align tool.
I should mention that UVflatten allows some manipulation of the mapping, by adding pins and straightening seams. But this is quite time consuming and inefficient compared to standard relaxing or reshaping algorithms.
Regarding fixing an existing model:
Both Houdini and Blender have sculpting tools, but Blender is much better for this. They are best thought of as ways of soft selecting and moving existing polygons, preferably on a relatively low density mesh. Neither is particularly useful for intermediate or advanced sculpting, though. The reason for that is that if one moves points/vertices far enough, there is not enough geometry in those areas to get any smooth additional sculpting. One has to add subdivisions and that just causes too many polygons in areas that don't need them in order to get a reasonable number of polygons on the stretched out areas. The solution in a dedicated sculpting program is to either automatically remesh periodically as one sculpts, or to use voxel sculpting that does not depend on polygons. In addition, detailed sculpting requires such a high number of polygons that the resulting mesh is almost impossible to adequately UV map or rig, though there are some workarounds that programs like Zbrush do to lessen that flaw. In reality, one converts the high polygon mesh to a displacement map to map onto a much lower polygon mesh, that is easier to UV map and rig.
Similarly, both Houdini and Blender have UV tools, though Houdini is better much better than Blender for this. Neither is a match for a dedicated UV mapping program like RizomUV or even Modo. Dedicated UV mapping programs have the ability to break apart a model and hide areas one is not working with (the visibility node in Houdini will not work, as the polygons are still evaluated in the UV unwrap, unlike other programs) and then use various relaxing and packing algorithms to fix overlaps and distortions. They can group islands and stack similarly shaped islands. The edge selection and polygons selection tools are a lot more sophisticated than Houdini or Blender. You can do a lot of this in Houdini, but it is kind of like using soft selection moves when you want to sculpt. It can be painful if the model is complicated and the UV flatten itself needs much tweaking.
But back to your original model. You have the artistic capability and the shapes look good. In Blender, you used the solidify and subdivide modifiers. The equivalent in Houdini would be the polyextrude and subdivide nodes. Everything was fine until these got applied, and then the model itself became a lot more complicated. Sculpting itself can sometimes generate bad topology. But most likely the triangles were an export problem from Blender into Houdini. You probably tried to do some sort of remesh in Blender, which is why part of your obj model has quads and the other part, triangles. You can check in Blender with a wireframe overlay or just in edit mode, at what point things got changed into triangles. But you don't want to do that. Triangles are fine internally for rendering and even 3D printing, but they are a mess for edge loops and selecting regions (which you want to do for UV mapping). The actual number of polygons is not really the issue, as you can subdivide a 10x10x10 cube six times and keep good topology but have a million polygons. You still have good edge loops and regions can be easily defined. But if you get a mess of triangles, defining a cutting edge will be a nightmare with even several hundred polygons.
The best way I know to think of UV mapping is think of planar mapping of different regions. Any curved surface will stretch the parts with a planar map in the middle and pinch the areas at the edges (think of a map of the world and the elongation but pinching of Antarctica). But planar maps work great for satellite maps of a city, because the distortions on a small scale are not significant. So if you make a million little planar maps of parts of the whole world, everything is great, except that anything going across a seam (from one little map to the next) is a problem. So one fuses some of these little planar maps together and lives with some distortion. The final number of maps is basically the number of seams. You try to hide the seams in areas that the camera doesn't see directly, if possible. Again, there are ways to avoid dealing with any of this, like creating one big stretched out map with many distorted areas, such as one might get in Zbrush. Or one could use PTEX painting in Mari. But for mere mortals, one should best learn how to create reasonable seams and relax the projections.
If you look at the image below for a simple UVflatten of a sphere, it is very similar to planar projections after just breaking up the polygon mesh into parts. The attached hip file shows the differences between a simple UVflatten and dividing up the model and UV projecting in the attached hip file. Basically the UVflattening does some relaxation of the islands that get distorted by the planar projection. But otherwise they are similar. (In a dedicated UV program, one could convert the planar projection to the UVflatten by a simple optimize or relaxation). In Houdini, you could fix this particular model with the UVflatten node by just using the align tool.
I should mention that UVflatten allows some manipulation of the mapping, by adding pins and straightening seams. But this is quite time consuming and inefficient compared to standard relaxing or reshaping algorithms.
Edited by Island - July 28, 2020 12:46:19
- Island
- Member
- 340 posts
- Joined: June 2017
- Offline
Although I wouldn't do it this way, here is a UV map of a modification of your flower that still has bad edge loops. It illustrates how to map such a mesh without overlap, but the relaxation may not be ideal. One selects the polygons in the front facing areas with the eye icon turned on and creates a poly selection. Then one promotes that to an edge selection (to avoid tediously selecting the boundary). Then one uses UVflatten but adds pins to fix the overlaps. You probably know, but you can right click the terminal node and use “save” and export an obj file for use back in Blender. The downside to adding several pins is that even with UV distortion map showing, it is a bit trial and error where the pins should be moved. SideFX: consider adding a relaxUV node.
Edited by Island - July 26, 2020 17:50:05
- MilanB
- Member
- 159 posts
- Joined: Nov. 2018
- Offline
Island, i really do appreciate all the effort and explanaions you provided me with. I still haven't had a time to ready it
thoroughly. I really did learn something about topology and uv's from the early comments, i appreaciate , so thank you. I will post here when i get to read it thoroughly and examine every bit you said.
Edit: It's just that for me its a mindblowing number of informations about the uv's that you wrote (thanks), so to catch up and understand everything is a bit, better say, a lot, sophisticated.
thoroughly. I really did learn something about topology and uv's from the early comments, i appreaciate , so thank you. I will post here when i get to read it thoroughly and examine every bit you said.
Edit: It's just that for me its a mindblowing number of informations about the uv's that you wrote (thanks), so to catch up and understand everything is a bit, better say, a lot, sophisticated.
Edited by MilanB - Aug. 2, 2020 15:17:49
- massta
- Member
- 61 posts
- Joined: Dec. 2005
- Offline
- icecreamumai
- Member
- 64 posts
- Joined: March 2012
- Offline
Hello. This is a quite challenging UV topic.
What I did was converting into VDB object to eliminate the overlapping poly.
Ray-casting the originals to VDB poly, then smoothing poly to get seam's boundaries.
Projecting UV from axis then use smoothing to smooth UV overlapping.
then rest back to original.(I did this in Houdini 19.0 )
The center area of the flower's UV seems quite stretched though...
Is there any sophisticated solution for UV unwrapping this kind of object? in Houdini 19.5????
What I did was converting into VDB object to eliminate the overlapping poly.
Ray-casting the originals to VDB poly, then smoothing poly to get seam's boundaries.
Projecting UV from axis then use smoothing to smooth UV overlapping.
then rest back to original.(I did this in Houdini 19.0 )
The center area of the flower's UV seems quite stretched though...
Is there any sophisticated solution for UV unwrapping this kind of object? in Houdini 19.5????
Edited by icecreamumai - Aug. 23, 2022 06:08:45
-
- Quick Links