1994
on: September 13, 2013, 04:29:20 pm
A world space normal map contains normals coordinates relative to a fixed frame in the object space, as opposed to tangent space normals which are relative to per-pixel-varying frames.
As an example, a blue pixel corresponds to a (0,0,1) normal. In a world space map, this would indicate the up direction. In a tangent space map, this would indicate the direction orthogonal to the surface the texture is applied on.
World space tangents are sometimes used in shaders because they may be slightly less expensive to use (shaders using them do not have to compute the per-pixel convertion from tangent space to world space). Most of the time though, they are not because they can only be used on fixed, rigid objects.
They are also used in production pipelines when exporting objects from one software to another as there are different ways of computing tangent frames and almost every software uses its own, which means using in one software tangent space normal maps baked in another software may cause visible distortions and seams. By the way, since version 3.7, Substance Designer should compute its tangent the same way Unity does, so there should not be any problem if you bake in Designer for use in Unity.
The world space direction baker is actually poorly named (my fault). It is a converter for vectors from world space coordinates to tangent space coordinates. You can use it to convert one fixed world space direction - e.g. (0,0,1) for up - or a whole texture which contains a per-pixel-varying world space vector (e.g. a world space normal map). In both cases you get a texture out as the tangent space is different for each pixel (unless your mesh is just a plane).
The position baker gives for each texture pixel the coordinates in world space of the mesh point it is mapped to. Therefore, this is only useful if there is a one to one correspondence in the mapping. It wouldn't mean much if you use uv mirroring or texture tiling. You can use it in Substance Designer or in shaders for effects where the actual position of pixel is useful, e.g. if you want to ensure that water drips go down, or that mud accumulates more near the bottom of objects, etc.