When loading texture files into a Cycles Image Texture node, it’s a good idea to take a moment to set the Color Space parameter correctly.
This parameter sets how the color data is intended to be used in the shader, that is, if it will be used as ‘Color’ like a Diffuse texture for example, or as ‘Non-Color Data’ like a Normal map texture example.
The reason behind this is that texture data encoded in sRGB color space (JPG, PNG,..) intended to be used as color should be ‘linearized’, that means the gamma correction sRGB files are automatically encoded with should be removed, so the the color data will represent linear color values suitable for the processing of shaders and compositing the final rendered image*,
While texture data intended to be used as data like height or direction or percentage, shouldn’t be linearized, assuming that the colors were saved without adding a gamma corrections to them.
A common example of that is when using a normal map stored in PNG format,
When the Color Space parameter is set to ‘Color’ the resulting bump normal might look wrong, and also display hard edges along UV coordinates seams.
Setting the Color Space to ‘Non-Color Data’ will solve the problem and interpret the bump normals correctly.
> usage of a texture as input for a non-color parameter like displacement will automatically use it as linear color.
> 32 bit float formats like exr are automatically interpreted as linear color by the renderer (the viewport material display will still show a differance so it’s better to set it to ‘Non-Color Data’ anyway).
> It should also be noted that Blender has two parameters controlling the interpretation of an image file one in the Image Texture Node that controls the color usage, one in the Node properties that controls how the file format is interpreted,
And also general color management settings that control the display of colors and saving of image files.
> It should also by noted that I’m still baffled by Blender / Cycles color management.. 🙂
* Linear color is also suitable for post rendering / post production compositing for image development and VFX.
One thought on “Non-Color texture data in Cycles render”