Image and environment texture nodes have an option to use Non-color data:
Could someone explain what this setting does and when it should be used?
I have seen it used with HDR environment lighting. Is there a reason for this?
This option stops blender from applying color-spaces to the image, this is useful when you want to use the numeric value of an images pixel rather then the perceived color value.
By default blender converts an 8bit-per-channel image (As you would get with JPG/TGA/PNG/BMP... etc) from sRGB-colorspace to linear-colorspace (also known as
before using it for compositing - where all color is assumed to be in linear-colorspace.
Examples where you don't want this include normal-maps, z-deph-buffer and displacement-maps - Where 0.5 should displace half the distance then 1.0.
Color spaces are fairly involved, so more could be written about the topic - but simple rule of thumb is if you are not viewing the image data as a RGB-Color, then you should set
Note that OpenEXR is an exception and color is assumed to already be stored in
linear/rec709 colorspace, to display these images Blender converts them into
sRGB (unless you choose a different colorspace).
I needed a way to it procedurally so I tried a few things. As @knekke stated in the comments, it should be sRGB and Linear for clarity sake...
Anyway if you need to convert a Color Texture to "
Non-Color Data" you can simply add a gamma node set to 0.45