[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