I’m trying to create hair/fur cards that will use the texture from mesh underneath.
I can’t find any tutorial that would explain how to do it, every single one of them that I could find uses gradient or texture that just repeats on every hair card.
At the moment my workflow looks like this:
I’m creating hair cards using particle system or in geometry nodes with instance on points node,
joining all hair cards to a single mesh
copying UV of the base mesh to the hair cards mesh
applying the same texture as base mesh in hair card material.
Using geometry nodes with transfer attribute to transfer UVs, and setting attribute domain to “point”, creates the same result as data transfer
Using attribute domain to “face” creates “blocky” result, still with UV artifacts, but not as visible on the mesh.
so currently I am just creating two UVMaps, one from geometry nodes set to “point” and other set to “face”, and mixing those two in material using vertex group/vertex paint data where seam is visible.
But this approach is going to make exporting mesh to game engines impossible/hard and any crucial texture details cannot be placed near or at the seam.
Is there a better way around this?
I’ve downloaded few meshes from the web and UVs are getting “squished” to the edge, not stretched to the other end like mine do. Unsure if it was done in blender though.
UV transfer rarely gets resolved perfectly. Your target mesh doesnt have the edges that match the seam on the source mesh. So no surprise that vertices of the same face end up on the different size of the seam. You can try to separate your fur mesh into two objects along the seam, and also do the same to source. This way, when you transfer UVs between the matching halves, there wont be any data from the opposite half to interfere
The few times I did something like this I received a textured body (striped animal fur) mesh from another artist to create my groom onto.
The haircards were set up with two UV channels
channel 1 for normal/spec/roughness/opacity regular shared UV mapping
channel 2 for color map. This channel was generated by using automatic mapping (I did this in Roadkill although Blender can probably also do it, so does Maya, etc - this is mostly about good automated UV packing). For haircards that nets you a square layout filled with many many tiny elements.
The color map bake was then done from creature body model to UV channel 2 of the haircards. It’s too low res to contain tons of details but to get something like Tiger stripes across it worked flawlessly. That kind of setup is game engine compatible although depending on engine/shader settings you might have to swap the UV channel order.
Okay, I quickly recreated @thomas_p solution with baking onto second mesh and there is no seam artifacts to be found, and it would export to game engine nicely, but as expected it’s not as crispy as uv transfer.
@DeckardX08 Splitting meshes made a pretty good result and for hand painted textures seam might not be visible at all. But for complex meshes i might be time consuming so I’ll try to automate it using geometry nodes. If it fails, I can just use @thomas_p baking.