[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59989] branches/soc-2013-dingto/intern/ cycles/kernel/osl/osl_shader.cpp: Fix for OSL volume closure flattening, this was not copying settings from the OSL closures.

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


Revision: 59989
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59989
Author:   lukastoenne
Date:     2013-09-10 07:42:42 +0000 (Tue, 10 Sep 2013)
Log Message:
-----------
Fix for OSL volume closure flattening, this was not copying settings from the OSL closures.

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

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 07:42:41 UTC (rev 59988)
+++ branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_shader.cpp	2013-09-10 07:42:42 UTC (rev 59989)
@@ -383,18 +383,23 @@
 
 			switch (prim->category()) {
 				case OSL::ClosurePrimitive::Volume: {
+					CVolumeClosure *volume = (CVolumeClosure *)prim;
 					/* sample weight */
 					float sample_weight = fabsf(average(weight));
 
 					sc.sample_weight = sample_weight;
-					sc.type = CLOSURE_VOLUME_ID;
-					sc.data0 = 0.0f;
-					sc.data1 = 0.0f;
-					sc.prim = NULL;
+					sc.type = volume->sc.type;
+					sc.N = volume->sc.N;
+					sc.T = volume->sc.T;
+					sc.data0 = volume->sc.data0;
+					sc.data1 = volume->sc.data1;
+					sc.prim = volume->sc.prim;
 
 					/* add */
-					if(sc.sample_weight > 1e-5f && sd->num_closure < MAX_CLOSURE)
+					if(sc.sample_weight > 1e-5f && sd->num_closure < MAX_CLOSURE) {
 						sd->closure[sd->num_closure++] = sc;
+						sd->flag |= volume->shaderdata_flag();
+					}
 					break;
 				}
 				case OSL::ClosurePrimitive::Holdout:




More information about the Bf-blender-cvs mailing list