I've been given a low-poly game asset by a client. I'm setting it up in C4DtoA and I'm having issues with the normal map.
The
asset and all its texture files are symmetrical across the x-axis. When
I load it up in Arnold, the normal map appears to be flipped in the
y-axis across one side of the model.
I've tried
setting the normal map to object space instead of tangent space. This
solves the flipped-on-one-side issue, but the normals aren't correct.
I've
attached a screenshot. The top image is in tangent space, the bottom in
object space. The texture applied to the model is a standard surface with the normal map attached, and absolutely all other parameters are at
default settings.
Thanks in advance for any insight on this.
you on wrong site. you need go to Cinema4d forum, you need to fix your normals. somebody mirrored the geo to the x axis and forgot to invert the normals.
Thanks for your response, Heribert, but the polygon and vertex normals are correctly aligned.
Haven't see this issue before. Can you check the N AOV? Would it be possible to send me the geo and the map to take a look?
Hi Peter, thanks for offering to take a look. Project file is here: https://we.tl/t-4PMTYapAvl
I've attached images of the normal map as it's being fed into the normal shader node, and then the output of that node.
I've managed to work around the problem by splitting the geometry in two and using a vertex map to blend two normal nodes, one flipped in Y. I'd still like to get to the bottom of what's going on though!
Oddly, the same problem appears in Redshift, unless I use its legacy normal map node, in which case the normals appear correctly.
I think the problem is the model cut in half into 2 udims. You can probably fix it by just flipping Y only in the second UDIM.
No Tangent is given to the normal_map shader, thus the tangent is calculated based on the direction of the U coordinate (dPdu). Since the right side is mirrored and offset on the U axis, this will cause the vector to flip over. So this is expected in this case.
If flipping Y of the map works then fine. You can also try to flip the U coordinate on the UV mapping on the half of the ship that looks wrong. Or assign a different shader network on the wrong half of the ship that assigns a negated dPdu coordinate as the tangent vector of the normal_map which is a bit complicated.
Ok thanks Peter, I think I understand. Will try flipping the U coordinate - which would be simpler than my current workaround.
Thanks again for your help!