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.
This commit is contained in:
Brecht Van Lommel 2021-07-12 19:07:10 +02:00
parent 2a41ab5e6c
commit 5e1702e7a5
Notes: blender-bot 2023-02-13 18:50:19 +01:00
Referenced by issue #87844, Packed External Data Changes Material
1 changed files with 3 additions and 3 deletions

View File

@ -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;
}
}
}