[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26478] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix [#20901] OPENEXR: Incorrect gamma from colour management

Matt Ebb matt at mke3.net
Sun Jan 31 21:53:05 CET 2010


Revision: 26478
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26478
Author:   broken
Date:     2010-01-31 21:53:04 +0100 (Sun, 31 Jan 2010)

Log Message:
-----------
Fix [#20901] OPENEXR: Incorrect gamma from colour management

Was working correctly on float render buffers, but not 8bpc render buffers 
(only generated from sequence editor)

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2010-01-31 18:32:19 UTC (rev 26477)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2010-01-31 20:53:04 UTC (rev 26478)
@@ -2836,9 +2836,18 @@
 			
 			/* float factor for random dither, imbuf takes care of it */
 			ibuf->dither= scene->r.dither_intensity;
+			
 			/* prepare to gamma correct to sRGB color space */
-			if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
-				ibuf->profile = IB_PROFILE_LINEAR_RGB;
+			if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) {
+				/* sequence editor can generate 8bpc render buffers */
+				if (ibuf->rect) {
+					ibuf->profile = IB_PROFILE_SRGB;
+					if (ELEM(scene->r.imtype, R_OPENEXR, R_RADHDR))
+						IMB_float_from_rect(ibuf);
+				} else {				
+					ibuf->profile = IB_PROFILE_LINEAR_RGB;
+				}
+			}
 
 			ok= BKE_write_ibuf(scene, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality);
 			





More information about the Bf-blender-cvs mailing list