Hello everybody, I am self-taught and trying my best to learn how to make game assets.
I am trying to make a revolver game-ready asset, but I am facing some difficulties when baking the normals.
The problems with the baking can be seen here:
As you can see I have these edge lines showing, and some black and not defined edges.
My LowPoly looks like this:
and my HighPoly is this:
It looks to me like I should not have triangulated the edges in the LowPoly, but I thought that it would have to be exported triangulated anyway...
The UVs are packed in 2048x2048 with 8px padding (the same setting I use when baking) and look like this:
In particular the object in question has these UVs:
If you guys need any more information I would be happy to provide it, Thanks a lot for the help, really means a lot.
Have a great day!
Replies
Yes, i triangulated the LowPoly when I exported it in fbx, I updated the screenshots of the post with the triangulated LowPoly used for Baking.
Let me explain it better, in the LowPoly is possible to see similar lines forming on the barrel, am I correct to think that normally those lines should go away? Or do I need to have a good shading before baking?
Edit: The shading of the lowpoly is important. The greater the difference between shading of lowpoly and highpoly, the more work the normal map has to do. And the amount of information a texture can store is limited. To control the lowpolys shading, hard edges, bevels or support loops can be used. As noted in the wiki, when baking tangent space normal map, UVs need to be split at hard edges.
If your low poly model also has smoothing errors, you've likely got some underlying geometry issues that are independent from how you baked it.
And if you're deriving your high poly from the same low poly mesh then of course you're bound to have issues. (No way for us to know how it was constructed but something to keep in mind)
Thanks guys
Tangent space normal mapping should be viewed as a modification to the low poly surface normals rather than a replacement/override (because that's exactly what it is).
object/world space normal mapping is more like a replacement