[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59987] branches/soc-2013-dingto/intern/ cycles/kernel: Reinstated the OSLShader API functions for volumes, fixed the function signature.

Lukas Toenne lukas.toenne at googlemail.com
Tue Sep 10 09:42:40 CEST 2013


Revision: 59987
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59987
Author:   lukastoenne
Date:     2013-09-10 07:42:40 +0000 (Tue, 10 Sep 2013)
Log Message:
-----------
Reinstated the OSLShader API functions for volumes, fixed the function signature.

Modified Paths:
--------------
    branches/soc-2013-dingto/intern/cycles/kernel/closure/volume.h
    branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.h
    branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.cpp
    branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.h

Modified: branches/soc-2013-dingto/intern/cycles/kernel/closure/volume.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/closure/volume.h	2013-09-10 06:35:50 UTC (rev 59986)
+++ branches/soc-2013-dingto/intern/cycles/kernel/closure/volume.h	2013-09-10 07:42:40 UTC (rev 59987)
@@ -142,8 +142,8 @@
 __device float3 volume_eval_phase(KernelGlobals *kg, const ShaderClosure *sc, const float3 I, float3 omega_in, float *pdf)
 {
 #ifdef __OSL__
-	//if(kg->osl && sc->prim)
-	//	return OSLShader::volume_eval_phase(sc, I, omega_in, pdf);
+	if(kg->osl && sc->prim)
+		return OSLShader::volume_eval_phase(sc, I, omega_in, *pdf);
 #endif
 
 	float3 eval;
@@ -169,8 +169,8 @@
 	int label;
 
 #ifdef __OSL__
-//        if(kg->osl && sc->prim)
-//			return OSLShader::bsdf_sample(sd, sc, randu, randv, *eval, *omega_in, *domega_in, *pdf);
+	if(kg->osl && sc->prim)
+		return OSLShader::bsdf_sample(sd, sc, randu, randv, *eval, *omega_in, *domega_in, *pdf);
 #endif
 
 	switch(sc->type) {

Modified: branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.h	2013-09-10 06:35:50 UTC (rev 59986)
+++ branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.h	2013-09-10 07:42:40 UTC (rev 59987)
@@ -196,7 +196,7 @@
 
 	int shaderdata_flag() const { return m_shaderdata_flag; }
 
-	virtual float3 eval(const float3 &omega_out, const float3 &omega_in, float& pdf) const = 0;
+	virtual float3 eval_phase(const float3 &omega_out, const float3 &omega_in, float& pdf) const = 0;
 
 	virtual int sample(const float3 &Ng,
 	                   const float3 &omega_out, const float3 &domega_out_dx, const float3 &domega_out_dy,
@@ -232,7 +232,7 @@
 		out << name() << " ((" << sc.N[0] << ", " << sc.N[1] << ", " << sc.N[2] << "))"; \
 	} \
 \
-	float3 eval(const float3 &omega_out, const float3 &omega_in, float& pdf) const \
+	float3 eval_phase(const float3 &omega_out, const float3 &omega_in, float& pdf) const \
 	{ \
 		return volume_##svmlower##_eval_phase(&sc, omega_out, omega_in, &pdf); \
 	} \

Modified: branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.cpp	2013-09-10 06:35:50 UTC (rev 59986)
+++ branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.cpp	2013-09-10 07:42:40 UTC (rev 59987)
@@ -509,14 +509,12 @@
 
 /* Volume Closure */
 
-#if 0 /* XXX unused */
-float3 OSLShader::volume_eval_phase(const ShaderClosure *sc, const float3 omega_in, const float3 omega_out)
+float3 OSLShader::volume_eval_phase(const ShaderClosure *sc, const float3 &omega_out, const float3 &omega_in, float &pdf)
 {
-	OSL::VolumeClosure *volume = (OSL::VolumeClosure *)sc->prim;
-	OSL::Color3 volume_eval = volume->eval_phase(TO_VEC3(omega_in), TO_VEC3(omega_out));
-	return TO_FLOAT3(volume_eval) * sc->weight;
+	CVolumeClosure *volume = (CVolumeClosure *)sc->prim;
+	float3 volume_eval = volume->eval_phase(omega_out, omega_in, pdf);
+	return volume_eval * sc->weight;
 }
-#endif
 
 /* Attributes */
 

Modified: branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.h	2013-09-10 06:35:50 UTC (rev 59986)
+++ branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.h	2013-09-10 07:42:40 UTC (rev 59987)
@@ -68,10 +68,8 @@
 
 	static float3 emissive_eval(const ShaderData *sd, const ShaderClosure *sc);
 
-	#if 0 /* XXX unused */
-	static float3 volume_eval_phase(const ShaderClosure *sc,
-	                                const float3 omega_in, const float3 omega_out);
-	#endif
+	static float3 volume_eval_phase(const ShaderClosure *sc, const float3 &omega_out,
+	                                const float3 &omega_in, float &pdf);
 
 	/* attributes */
 	static int find_attribute(KernelGlobals *kg, const ShaderData *sd, uint id, AttributeElement *elem);




More information about the Bf-blender-cvs mailing list