[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57827] trunk/blender/intern/cycles/kernel /closure: Cycles / Ramp closures:

Thomas Dinges blender at dingto.org
Thu Jun 27 18:08:07 CEST 2013


Revision: 57827
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57827
Author:   dingto
Date:     2013-06-27 16:08:06 +0000 (Thu, 27 Jun 2013)
Log Message:
-----------
Cycles / Ramp closures:
* Fix crash with negative values in Phong Ramp, and add some checks to survive INF and NAN values. 

Patch by Brecht and myself. 

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
    trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h	2013-06-27 15:53:53 UTC (rev 57826)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_diffuse_ramp.h	2013-06-27 16:08:06 UTC (rev 57827)
@@ -41,6 +41,8 @@
 	
 	float npos = pos * (float)(MAXCOLORS - 1);
 	int ipos = float_to_int(npos);
+	if (ipos < 0)
+		return colors[0];
 	if (ipos >= (MAXCOLORS - 1))
 		return colors[MAXCOLORS - 1];
 	float offset = npos - (float)ipos;

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h	2013-06-27 15:53:53 UTC (rev 57826)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h	2013-06-27 16:08:06 UTC (rev 57827)
@@ -41,6 +41,8 @@
 	
 	float npos = pos * (float)(MAXCOLORS - 1);
 	int ipos = float_to_int(npos);
+	if (ipos < 0)
+		return colors[0];
 	if (ipos >= (MAXCOLORS - 1))
 		return colors[MAXCOLORS - 1];
 	float offset = npos - (float)ipos;
@@ -49,6 +51,8 @@
 
 __device int bsdf_phong_ramp_setup(ShaderClosure *sc)
 {
+	sc->data0 = max(sc->data0, 0.0f);
+	
 	sc->type = CLOSURE_BSDF_PHONG_RAMP_ID;
 	return SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_GLOSSY;
 }




More information about the Bf-blender-cvs mailing list