[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56675] trunk/blender/intern/cycles/kernel /closure: Cycles / Closures:

Thomas Dinges blender at dingto.org
Sat May 11 00:41:25 CEST 2013


Revision: 56675
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56675
Author:   dingto
Date:     2013-05-10 22:41:24 +0000 (Fri, 10 May 2013)
Log Message:
-----------
Cycles / Closures:
* Avoid some unnecessary re-declarations of closure data and simplify *_setup() functions a bit. 

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h
    trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h	2013-05-10 22:05:47 UTC (rev 56674)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h	2013-05-10 22:41:24 UTC (rev 56675)
@@ -44,11 +44,8 @@
 
 __device int bsdf_microfacet_ggx_setup(ShaderClosure *sc)
 {
-	float ag = sc->data0;
-
-	float m_ag = clamp(ag, 0.0f, 1.0f);
-
-	sc->data0 = m_ag;
+	sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ag */
+	
 	sc->type = CLOSURE_BSDF_MICROFACET_GGX_ID;
 
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
@@ -56,14 +53,8 @@
 
 __device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc)
 {
-	float ag = sc->data0;
-	float eta = sc->data1;
+	sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ag */
 
-	float m_ag = clamp(ag, 0.0f, 1.0f);
-	float m_eta = eta;
-
-	sc->data0 = m_ag;
-	sc->data1 = m_eta;
 	sc->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID;
 
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
@@ -71,9 +62,7 @@
 
 __device void bsdf_microfacet_ggx_blur(ShaderClosure *sc, float roughness)
 {
-	float m_ag = sc->data0;
-	m_ag = fmaxf(roughness, m_ag);
-	sc->data0 = m_ag;
+	sc->data0 = fmaxf(roughness, sc->data0); /* m_ag */
 }
 
 __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf)
@@ -273,34 +262,23 @@
 
 __device int bsdf_microfacet_beckmann_setup(ShaderClosure *sc)
 {
-	float ab = sc->data0;
-	float m_ab = clamp(ab, 0.0f, 1.0f);
+	sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ab */
 
-	sc->data0 = m_ab;
-
 	sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID;
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
 }
 
 __device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc)
 {
-	float ab = sc->data0;
-	float eta = sc->data1;
-	float m_ab = clamp(ab, 0.0f, 1.0f);
-	float m_eta = eta;
+	sc->data0 = clamp(sc->data0, 0.0f, 1.0f); /* m_ab */
 
-	sc->data0 = m_ab;
-	sc->data1 = m_eta;
-
 	sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID;
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
 }
 
 __device void bsdf_microfacet_beckmann_blur(ShaderClosure *sc, float roughness)
 {
-	float m_ab = sc->data0;
-	m_ab = fmaxf(roughness, m_ab);
-	sc->data0 = m_ab;
+	sc->data0 = fmaxf(roughness, sc->data0); /* m_ab */
 }
 
 __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf)

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h	2013-05-10 22:05:47 UTC (rev 56674)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h	2013-05-10 22:41:24 UTC (rev 56675)
@@ -39,23 +39,17 @@
 
 __device int bsdf_ward_setup(ShaderClosure *sc)
 {
-	float ax = sc->data0;
-	float ay = sc->data1;
+	sc->data0 = clamp(sc->data0, 1e-4f, 1.0f); /* m_ax */
+	sc->data1 = clamp(sc->data1, 1e-4f, 1.0f); /* m_ay */
 
-	float m_ax = clamp(ax, 1e-4f, 1.0f);
-	float m_ay = clamp(ay, 1e-4f, 1.0f);
-
-	sc->data0 = m_ax;
-	sc->data1 = m_ay;
-
 	sc->type = CLOSURE_BSDF_WARD_ID;
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY;
 }
 
 __device void bsdf_ward_blur(ShaderClosure *sc, float roughness)
 {
-	sc->data0 = fmaxf(roughness, sc->data0);
-	sc->data1 = fmaxf(roughness, sc->data1);
+	sc->data0 = fmaxf(roughness, sc->data0); /* m_ax */
+	sc->data1 = fmaxf(roughness, sc->data1); /* m_ay */
 }
 
 __device float3 bsdf_ward_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf)




More information about the Bf-blender-cvs mailing list