From 18feb1630d1fbcd3f6e8d71c3a2c5fc44fc9e02b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Apr 2013 13:52:38 +0000 Subject: [PATCH] Fix #34966: cycles packed PNG images were showing alpha fringe, packed images were not properly premultiplied. --- intern/cycles/blender/blender_session.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 1f1bb830771..f4f9ec548a4 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -693,6 +693,14 @@ bool BlenderSession::builtin_image_pixels(const string &builtin_name, void *buil } } + /* premultiply, byte images are always straight for blender */ + unsigned char *cp = pixels; + for(int i = 0; i < width * height; i++, cp += channels) { + cp[0] = (cp[0] * cp[3]) >> 8; + cp[1] = (cp[1] * cp[3]) >> 8; + cp[2] = (cp[2] * cp[3]) >> 8; + } + return true; }