caisson opened this issue on Nov 14, 2020 · 125 posts
caisson posted Sat, 15 May 2021 at 10:28 AM
Next up is the normal map.
A normal map will do the same thing as a bump map - give the appearance of more detail by affecting the lighting but without altering the geometry of the mesh - but is created in a very different way. This is the most important thing about normal maps: they are not texture maps, they are surface normal data that has been encoded into pixels. This matters and can make them harder to create, unlike bump maps that can be painted by hand (unless you’re using an app like SP to create normal maps). It also makes them less flexible after they have been created, in that it would be difficult alter their values by using math nodes as can be done relatively easily with bump maps.
There are different kinds of normal map, and the ones that I am concerned with here are tangent space maps as exported by SP (as opposed to object or world space maps). Within SP the default setting is to use DirectX normal maps – I always change this to OpenGL. (Poser can use either but up and down are reversed depending on which is used, and I’m used to using OpenGL).
It is also worth being aware of tangent basis. This is only relevant when a normal map is decoded (i.e. rendered) by an engine that uses a different tangent basis to the engine that encoded the data. Most applications use MikkT (also called mikkspace), but not all. SP and Superfly do, but the Poser Preview and Firefly use their own tangent basis. This means that normal maps could give unexpected or wrong results in those engines.
It’s also worth noting that Poser will not read 16 bit normal maps, so I always set the SP exporter to 8 bit PNG. It is possible to use JPG, but it is a lossy format so compression artefacts could potentially result in shading errors, so PNG is safer (though the file sizes are larger). Depends on the end use – a hard surface model would look bad with shader errors, so I’d go with PNG, but with a detailed terrain the difference might not be noticeable.
Lastly, when using a normal map with Cycles nodes like the Principled BSDF it’s essential to use a NormalMap node (found in the Cycles – Vector submenu) to tell the shader exactly what kind of map is being used, otherwise Superfly will not understand how to render the map. This is not the case with the Physical Surface root, which expects a tangent space normal, so this step isn’t needed.
TL;DR – A normal map is computer code that only happens to look like a texture map. Use normal maps in Superfly if you understand them and have a tool that can make them correctly. For maximum compatibility and flexibility consider using bump maps instead.
----------------------------------------
Not approved by Scarfolk Council. For more information please reread. Or visit my local shop.