I'm using topogun to bake normals, and I don't want to be so sloppy when baking normals anymore.
There's something in particular that I'd like to know how to solve.
I've noticed when baking world space normals, a cube gets baked nicely.
But when I bake tangent space normals, which is what I need for Unity, I get the averaging problem thing, which I don't know how to solve in topogun.
Anyone knows how to solve this? Is there a way to create normal maps that are as good as world space, in the form of tangent-space so I can use them in Unity?
thanks!
Replies
But in that example you show, you have the UV shells seperated but all the edges softened/in the same smoothing group. If you harden those edges each shell will look like the center shell in the worldspace normal map, and should work alot better.
What you need to do is use a baker that supports Unitys way of doing tangent space maps.
http://www.polycount.com/forum/showthread.php?t=95484
using that plugin with XN should get you results comparable to world space normals
The reason worldspace normals are not commonly used is that they explicitly set the normals of an object in relation to the world. Regardless of the orientation of the object the normals will always face in the same world direction and your shading will go all wacky. This makes them largely useless for what you want.
also you need to add padding to your normals or there will be seams all over the place
Actually, what game engines support Object (or even world) space normal maps?
I'd say non bone deformed meshes would indeed be problematic though
Yeah more like 99% of the advantage. =P
Correct, there was also a Battlefield(BF:Vietnam?) game that used OS maps exclusively for character meshes.... Just throwing that out there before someone pops in and says "oh but you can't use it for soft deformation".
You can animate object space maps just as well as you can tangent space, your shader needs to take the deformation into account. Which may be a little more expensive, but you save by not needing to store normals, bi-normals or tangents.
You can also mirror object space assets too, just need to have a shader smart enough to do it, which can be as simple as offsetting your mirrored geometry 1 unit to the left to "tag" it as mirrored.
All that said, its really not commonly used, and synced up tangent space normals are much, MUCH better.
OS Pros:
1. 100% accurate shading in all situations
2. No need to store normals etc(frees up memory)
3. Uses less geometry than broken TS(common) workflows
4. Can handle compression better(less gradients)
5. No "resolution based" artifacts like synced up tangent workflow gives you(no enough resolution to account for thin triangles/gradients).
OS Cons:
1. Mixing/Adding painted bump detail is difficult
2. No mirroring without a shader that accounts for it, even then mirroring is more work in setup. Texture re-use in general is more complicated.
3. Rotating props must be done in a game engine that keeps track of transformation, otherwise you need to rebake if you rotate your model. Limits the ability of using a 3d program as a level editor.
4. Can't replace tiling tangent space textures. Only suitable for unique props really.
Which is really, really strange and backwards.
Organics that are generally soft and mushy can handle broken tangent space more easily, while precise hard surface work suffers more from broken tangents(steeper angles accentuating smoothing errors etc).
Seams between head and body are fixable using TS maps and edited vertex normals, but maybe it was somehow simpler for their engine limitations to use OS maps.
Strange choice though, if it was a choice.
http://pixeljetstream.blogspot.de/2012/06/tangent-space-can-cost-extra-money.html