Help with Topo Transfer and UV Transfer
1131 6 3- siennasprout
- Member
- 4 posts
- Joined: 9月 2024
- Offline
Hi, I'm brand new to Houdini and I'm not used to node based programs at all. I've tried following along with the topo transfer tutorials and other ones that explain SOPs but I don't know how to get it working with my files.
Here are a few specific things I am trying to accomplish with as little effort as possible since, as I said, I'm completely new to the program (I tried learning about switch nodes and attribute wranglers but I just got so lost):
1. Wrap a custom template mesh around another mesh.
Sounds simple enough with the topo transfer node, but the mesh I'm using seems to have unfixable nonmanifold parts. I ran the mesh both through a cleanup in Blender and through a cleanup node in Houdini before attempting the topo transfer, but it still gave me an error saying it had nonmanifold geometry and couldn't perform the transfer. I actually found out about Houdini after attempting the same operation in another topology wrapping program, where I was told by their customer service that Houdini could fix nonmanifold meshes, but it looks like either my specific mesh is beyond help or I'm missing something. Messing with the primitive threshold of the clean node doesn't change the fact that I still get the nonmanifold error message. I'm trying to use a custom mesh instead of the Houdini template to wrap around the model, so I don't know if that's affecting the process. I noticed there's some blue spots on the target model and I'm pretty sure it's a problem with the normal orientation, but I already oriented all normals outward in Blender so I don't know why this is still happening.
2. Transfer UVs from one mesh to another with very different topologies.
I tried to follow along with the Labs UV transfer example file in the documentation, but I don't think I even have the Labs nodes in my version of Houdini so even the example file doesn't seem to show me anything. Is it not in Apprentice version? I'm trying to transfer UVs from a humanoid mesh that uses ~5 separate texture files to one that uses just 3. I imagine it would require doing separate UV transfers or some kind of process to get things like the inner mouth and teeth properly transferred. Ideally, I could make textures that fit File1 work seamlessly with File2, even though they have very different UV layouts and topologies. I think the easiest way would be to make File2 use File1's UVs since it wouldn't require needing to manually edit the texture every time I have one from File1 I want to use for File2. Again, I can't seem to access the Labs UV transfer node. I also added a clean node to File2 as exporting it from Blender seemed to have caused some reversed normals.
If you think you'd be able to help more in detail, please reach out to me through Discord (siennasprout). Any answers here are appreciated, but I would prefer to be able to work this out with someone in real time rather than having to struggle through explaining what I'm seeing on my end with zero Houdini experience. I figure it would be easier that way. Thanks.
Here are a few specific things I am trying to accomplish with as little effort as possible since, as I said, I'm completely new to the program (I tried learning about switch nodes and attribute wranglers but I just got so lost):
1. Wrap a custom template mesh around another mesh.
Sounds simple enough with the topo transfer node, but the mesh I'm using seems to have unfixable nonmanifold parts. I ran the mesh both through a cleanup in Blender and through a cleanup node in Houdini before attempting the topo transfer, but it still gave me an error saying it had nonmanifold geometry and couldn't perform the transfer. I actually found out about Houdini after attempting the same operation in another topology wrapping program, where I was told by their customer service that Houdini could fix nonmanifold meshes, but it looks like either my specific mesh is beyond help or I'm missing something. Messing with the primitive threshold of the clean node doesn't change the fact that I still get the nonmanifold error message. I'm trying to use a custom mesh instead of the Houdini template to wrap around the model, so I don't know if that's affecting the process. I noticed there's some blue spots on the target model and I'm pretty sure it's a problem with the normal orientation, but I already oriented all normals outward in Blender so I don't know why this is still happening.
2. Transfer UVs from one mesh to another with very different topologies.
I tried to follow along with the Labs UV transfer example file in the documentation, but I don't think I even have the Labs nodes in my version of Houdini so even the example file doesn't seem to show me anything. Is it not in Apprentice version? I'm trying to transfer UVs from a humanoid mesh that uses ~5 separate texture files to one that uses just 3. I imagine it would require doing separate UV transfers or some kind of process to get things like the inner mouth and teeth properly transferred. Ideally, I could make textures that fit File1 work seamlessly with File2, even though they have very different UV layouts and topologies. I think the easiest way would be to make File2 use File1's UVs since it wouldn't require needing to manually edit the texture every time I have one from File1 I want to use for File2. Again, I can't seem to access the Labs UV transfer node. I also added a clean node to File2 as exporting it from Blender seemed to have caused some reversed normals.
If you think you'd be able to help more in detail, please reach out to me through Discord (siennasprout). Any answers here are appreciated, but I would prefer to be able to work this out with someone in real time rather than having to struggle through explaining what I'm seeing on my end with zero Houdini experience. I figure it would be easier that way. Thanks.
- siennasprout
- Member
- 4 posts
- Joined: 9月 2024
- Offline
- justin_bisceglio
- スタッフ
- 53 posts
- Joined: 5月 2021
- Offline
- siennasprout
- Member
- 4 posts
- Joined: 9月 2024
- Offline
- justin_bisceglio
- スタッフ
- 53 posts
- Joined: 5月 2021
- Offline
Hi! Yes, I'm able to investigate your file now.
I've attached a new version of the failedtopotransfer.hipnc file, called failedtopotransfer_v2.hipnc, with a node setup that shows some the basic and more advanced usage of Topo Transfer.
To get it working, it is necessary that the template geometry is a manifold mesh. I used the Clean SOP with the option "Manifold Only Topology" toggled. This gets the template geometry cleaned up for Topo Transfer. Since the template geometry consists of multiple unconnected meshes, it is necessary to specify to Topo Transfer which mesh should be deformed to the target geometry, and which mesh components should deform but stay relative to the template geometry (like the eyeballs and fingernails). This is done by toggling the "Enable Geometry Constraints" option on the Topo Transfer node. These two step get the Topo Transfer node working without errors. From here it now becomes a matter of directing the result with use of landmarks and optional mask painting which is shown a little in the file.
Since you already have UVs on the template mesh, you will probably get a better result for textures by baking any maps for the target geometry UVs onto the UVs for the template geometry. Currently, this also requires a Labs tool called Labs Maps Baker.
Hope this helps with getting you started.
Thanks
I've attached a new version of the failedtopotransfer.hipnc file, called failedtopotransfer_v2.hipnc, with a node setup that shows some the basic and more advanced usage of Topo Transfer.
To get it working, it is necessary that the template geometry is a manifold mesh. I used the Clean SOP with the option "Manifold Only Topology" toggled. This gets the template geometry cleaned up for Topo Transfer. Since the template geometry consists of multiple unconnected meshes, it is necessary to specify to Topo Transfer which mesh should be deformed to the target geometry, and which mesh components should deform but stay relative to the template geometry (like the eyeballs and fingernails). This is done by toggling the "Enable Geometry Constraints" option on the Topo Transfer node. These two step get the Topo Transfer node working without errors. From here it now becomes a matter of directing the result with use of landmarks and optional mask painting which is shown a little in the file.
Since you already have UVs on the template mesh, you will probably get a better result for textures by baking any maps for the target geometry UVs onto the UVs for the template geometry. Currently, this also requires a Labs tool called Labs Maps Baker.
Hope this helps with getting you started.
Thanks
Image Not Found
- siennasprout
- Member
- 4 posts
- Joined: 9月 2024
- Offline
Yes, it looks good! I think with some more landmarks the wrap will be tighter/more accurate like you suggested, but I don't really have a moment right now to test it. Would increasing the polycount of the template mesh also help with the wiggly UV squares on the head mesh, or is that something only Labs Maps Baker can do? I'm assuming if the template has a higher polycount it would help with the accuracy of the transfer, but I'm not sure.
Are you able to send an example file with the Labs Maps Baker nodes as well? I attempted it on my own, but was unable to figure out how it worked. Specifically, I'm unsure how to transfer the maps when the models use a different number of UV maps. For example, I believe the template mesh here uses a separate torso and legs map while the target mesh uses an all in one body map.
Are you able to send an example file with the Labs Maps Baker nodes as well? I attempted it on my own, but was unable to figure out how it worked. Specifically, I'm unsure how to transfer the maps when the models use a different number of UV maps. For example, I believe the template mesh here uses a separate torso and legs map while the target mesh uses an all in one body map.
- justin_bisceglio
- スタッフ
- 53 posts
- Joined: 5月 2021
- Offline
Hi! Glad to hear this helped.
Increasing the polycount is one way of improving the accuracy of Topo Transfer, but it might make the node take a little longer to compute. Other ways of improving accuracy include adding more landmarks and/or increasing the "Iterations" and "Reduced Levels" parameters. However, in this case the wiggly UV squares exist in the template mesh before doing the Topo Transfer. One way to adjust the UVs in Houdini is a combination of using the UV Layout node followed by a UV Edit node. It might be easier to fix the UVs in whichever application originally generated them, though. Another option might be create new UVs on the template geometry using the UV Autoseam node and the UV Flatten node.
Having multiple texture maps on the high resolution model should not be an issue for the Labs Maps Baker.
It's easier to trouble shoot if you can provide an example file.
Thanks,
Justin
Increasing the polycount is one way of improving the accuracy of Topo Transfer, but it might make the node take a little longer to compute. Other ways of improving accuracy include adding more landmarks and/or increasing the "Iterations" and "Reduced Levels" parameters. However, in this case the wiggly UV squares exist in the template mesh before doing the Topo Transfer. One way to adjust the UVs in Houdini is a combination of using the UV Layout node followed by a UV Edit node. It might be easier to fix the UVs in whichever application originally generated them, though. Another option might be create new UVs on the template geometry using the UV Autoseam node and the UV Flatten node.
Having multiple texture maps on the high resolution model should not be an issue for the Labs Maps Baker.
It's easier to trouble shoot if you can provide an example file.
Thanks,
Justin
-
- Quick Links