Fix related to #30152, rainbow colours produced when loading hdr image to 3D viewport...
authorAntony Riakiotakis <kalast@gmail.com>
Tue, 14 Feb 2012 13:25:23 +0000 (13:25 +0000)
committerAntony Riakiotakis <kalast@gmail.com>
Tue, 14 Feb 2012 13:25:23 +0000 (13:25 +0000)
commit40e2942f259f9de59fcf93fc99121ff46f630398
tree821d0c1778e6121175f287b77c248ab43ce3237e
parent6825577cad890865db5e246198681e3fb3ad18a3
Fix related to #30152, rainbow colours produced when loading hdr image to 3D viewport/ the Nyan cat bug.

Issue is caused by scaling for power of 2 dimensions and mipmapping that happens through GLU. It looks like the library cannot handle float colour values above 1.0 correctly. Since we are close to release I will just clamp the srgb result for now even though it will result in a small performance loss for 16 bit textures only.

I tried a few things before that, glGenerateMipmaps + no scaling (supported for 2.0 GL hardware and up), or using our own scaling instead of glu among them which worked very nicely and gave a speedup too. However, since we are close to release and there may be issues with GPU mipmap generation, see:

http://www.gamedev.net/topic/495747-another-glgeneratemipmap-question/
(old discussion but better be sure than sorry)

I went for the most compatible solution. Maybe after release this can be tested if other devs agree.
source/blender/gpu/intern/gpu_draw.c
source/blender/imbuf/IMB_imbuf.h
source/blender/imbuf/intern/divers.c