[Bf-blender-cvs] [5e1702e7a59] master: Fix T87844: Cycles losing 1 bit of precision when loading packed byte images

Brecht Van Lommel noreply at git.blender.org
Mon Jul 12 19:31:39 CEST 2021


Commit: 5e1702e7a593851b2354bca5db3044e7aa639312
Author: Brecht Van Lommel
Date:   Mon Jul 12 19:07:10 2021 +0200
Branches: master
https://developer.blender.org/rB5e1702e7a593851b2354bca5db3044e7aa639312

Fix T87844: Cycles losing 1 bit of precision when loading packed byte images

This could lead to colors that are supposed to be exactly white to be slightly
darker.

===================================================================

M	intern/cycles/blender/blender_image.cpp

===================================================================

diff --git a/intern/cycles/blender/blender_image.cpp b/intern/cycles/blender/blender_image.cpp
index 3a9d159e461..f27275bd457 100644
--- a/intern/cycles/blender/blender_image.cpp
+++ b/intern/cycles/blender/blender_image.cpp
@@ -137,9 +137,9 @@ bool BlenderImageLoader::load_pixels(const ImageMetaData &metadata,
       /* Premultiply, byte images are always straight for Blender. */
       unsigned char *cp = (unsigned char *)pixels;
       for (size_t i = 0; i < num_pixels; i++, cp += channels) {
-        cp[0] = (cp[0] * cp[3]) >> 8;
-        cp[1] = (cp[1] * cp[3]) >> 8;
-        cp[2] = (cp[2] * cp[3]) >> 8;
+        cp[0] = (cp[0] * cp[3]) / 255;
+        cp[1] = (cp[1] * cp[3]) / 255;
+        cp[2] = (cp[2] * cp[3]) / 255;
       }
     }
   }



More information about the Bf-blender-cvs mailing list