--- Operating System, Graphics card ---
Windows7, Nvidia GeForce 240 GT
--- Blender version with error, and version that worked ---
2.66a, 2.63
--- Short description of error ---
Displaying of normal map is wrong in Blender 266a, in version 263 it is good. See screenshots and blend file. Blend file and texture are in zip archive.
--- Steps for others to reproduce the error (preferably based on attached .blend file) ---
Open blend file and you see normal map displaying wrong.
Description
Event Timeline
hey campbell. I don't know if you're on to this already but the issue is really quite simple.
It has to do with the new colorspace stuff. The normal map is a 16 bit one.
I am not sure how the new code works but I am guessing you guys load the 16 bit normal map
and probably convert the values from gamma to linear space internally or something?
Which goes bad with a normal map because the values are already in linear space even if the header says gamma space
since when shown as a color normal maps are generally considered to be gamma space (it's how artists always look at em).
In the UV editor if you open the properties panel then you can make it look right if you toggle the normal map to linear instead of gamma.
However, as far as intended work flow goes I am not sure what the intention is here. It seems rather awkward to have to
switch to linear each time you save out a new 16 bit normal map and then reload the blend file?
The problem is that there is a certain duality to normal maps. When shown as color they are used as gamma space data and when used for lighting they are used as linear space data (which btw is how it's done for 8 bit normal maps).
I can confirm that this is due to an incorrect colour space being used when rendering the normal map in GLSL. Changing the Input Color Space in the Textures tab> Images from sRGB to Linear fixes the issue and thus the normal map render perfectly.
I second Morten's view that this is a big problem when viewing normal maps and it would be nice if Blender automatically fixed the issue so things like this don't catch people out. :)
This is corner case where color management do_versions routines fails. File is stored in sRGB color space, and since it's 10bit it loads as float buffer to blender. Float buffers are supposed to be linear in blender now, so linearization of this buffer happens. This makes normal maps different from how they were before color management changes.
Generally, you shall use Non-Color color space for normal maps now.
It is possible to make some tweaks to make color space Non-Color for images used for normal maps, but it'll break other things which used to be working for quite a few releases already. So prefer not to tweak do_versions now.
Thanks for the report, but it's just intended changes to color management pipeline.