I have a 3d scan material set of textures from Textures.com.
We have the usual set of textures.
Albedo = Diffuse Slot
Ao = Multiplied composite onto diffuse
Roughness = Reflection slot+RGlossiness (i have inverted this texture via output)
Height = Not used as not using displacement
Normal map = In VrayNormalMap, in bump slot. (Gamma switched from Automatic to 1.0)
See attached images.
The first one ‘Normals’. is set up as above. This seem’s incorrect to me, almost as if the bump/normal information is inverted.
The second one ‘Normals_Inverted’, is set up as above with one difference. I have inverted the normal using output. This seems correct to me.
I guess the question is, is it normal (no pun intended) to invert scan normal maps like this? As you do with roughness for reflection maps? Or am I going wrong somewhere else?
I never used the scanned materials from textures.com, but it might be possible that these materials only work correctly when using displacement. The height map generates the correct geometry, and the additional normal map then might “push in” certain parts to get the correct result.
You will need to make sure that when you load Normal map to use gamma 1.0 and plug that map in Vvraynormal map and “Flip green” checked to get the correct behavior.
different software require different treatment -AKA handedness -(Max vs Maya /Unity vs unreal )so unfortunately, As far as I’m concern there is no way to make it work out-of-the-box with all applications.
Interesting. Looking through their tutorials, they suggest overiding all data maps (reflect/rough/bump etc) to 1.0 gamma. I always thought this was just for Normal maps. Anyone care to clear this up?
Luminance maps and normals are RAW ie. 1.0 Anything that is RGB needs to be corrected. Bump map displacment map would be single value / luminance and therefore 1.0. A reflection colour map would be gamma corrected.
In this example, the reflection/roughness map is derivative of a scan therefore is it safe to assume this is not RGB in the traditional sense? i.e. just copying a colour RGB diffuse texture into the reflection map as you may do from time to time.
Thats a reasonable question which I dont have the answer to. Ive always just set anything going into a luminance slot as RAW, as I assumed it dealt with the maths correctly. Its always looked fine in the render so Ive never questioned it. Obviously normal maps are RAW whatever, but a diff_col map ran through a HSV node to desat it, does that then need to be made RAW by gamma correction before going into a bump slot? Im not sure.
Usually all 8bit formats are saved in 2.2 gamma (srgb) by default form any common source like PS.
Max (well newer versions) knows that and automatically corrects them.
Generally all bmp’s, jpg’s tga’s png’s will need to be treated that way.
Normal maps on the other hand are often saved in linear space even though its saved in 8bit’s like tga.
That’s why you need to tell max’es bitmap loader it shouldn’t correct it automatically and import it with 1.0 gamma (no change)
When you use the Vray hdri loader (you should), it’s the other way around. The HDRI Loader will thread any image as if its in 1.0. So the normal map is loaded correctly and all maps which are srgb will need to be corrected.
Other maps might be saved is linear space as well.
In that case the creator will most likely provide that information. As they did here.
Everything above 8bit will be saved in linear by all applications I know. So the bitmap loader will automatically not correct them. The HDRI loader is already set for those.