[Bf-blender-cvs] [af128c4] master: Fix cycles volume emission not working with OSL.

Brecht Van Lommel noreply at git.blender.org
Mon Dec 30 00:05:46 CET 2013


Commit: af128c4c9655c57b860010746dc7b5707c6520ba
Author: Brecht Van Lommel
Date:   Sun Dec 29 16:30:55 2013 +0100
https://developer.blender.org/rBaf128c4c9655c57b860010746dc7b5707c6520ba

Fix cycles volume emission not working with OSL.

===================================================================

M	intern/cycles/kernel/osl/osl_shader.cpp

===================================================================

diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index 6e1d8b2..6062996 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -415,11 +415,27 @@ static void flatten_volume_closure_tree(ShaderData *sd,
 					}
 					break;
 				}
+				case CClosurePrimitive::Emissive: {
+					/* sample weight */
+					float sample_weight = fabsf(average(weight));
+
+					sc.sample_weight = sample_weight;
+					sc.type = CLOSURE_EMISSION_ID;
+					sc.data0 = 0.0f;
+					sc.data1 = 0.0f;
+					sc.prim = NULL;
+
+					/* flag */
+					if(sd->num_closure < MAX_CLOSURE) {
+						sd->closure[sd->num_closure++] = sc;
+						sd->flag |= SD_EMISSION;
+					}
+					break;
+				}
 				case CClosurePrimitive::Holdout:
 					break; /* not implemented */
 				case CClosurePrimitive::Background:
 				case CClosurePrimitive::BSDF:
-				case CClosurePrimitive::Emissive:
 				case CClosurePrimitive::BSSRDF:
 				case CClosurePrimitive::AmbientOcclusion:
 					break; /* not relevant */




More information about the Bf-blender-cvs mailing list