[Bf-blender-cvs] [5aaab58] bake-cycles: Cycles-Bake: COMBINED shader baking

Dalai Felinto noreply at git.blender.org
Wed Apr 23 02:46:41 CEST 2014


Commit: 5aaab58c310b4af1a2f589bf4c2c6096dfe6a2d3
Author: Dalai Felinto
Date:   Mon Jan 20 23:44:02 2014 -0200
https://developer.blender.org/rB5aaab58c310b4af1a2f589bf4c2c6096dfe6a2d3

Cycles-Bake: COMBINED shader baking

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

M	intern/cycles/kernel/kernel_displace.h

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

diff --git a/intern/cycles/kernel/kernel_displace.h b/intern/cycles/kernel/kernel_displace.h
index 5beb99a..fc28b35 100644
--- a/intern/cycles/kernel/kernel_displace.h
+++ b/intern/cycles/kernel/kernel_displace.h
@@ -41,7 +41,31 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, ccl_global uint4 *input,
 	switch (type) {
 		case SHADER_EVAL_COMBINED:
 		{
-			/* TODO */
+			int shader;
+			float3 Ng = triangle_normal_MT(kg, prim, &shader);
+
+			/* dummy initilizations copied from SHADER_EVAL_DISPLACE */
+			float3 I = make_float3(0.f);
+			float t = 0.f;
+			float time = TIME_INVALID;
+			int bounce = 0;
+			int segment = ~0;
+
+			shader_setup_from_sample(kg, &sd, P, Ng, I, shader, object, prim, u, v, t, time, bounce, segment);
+			shader_eval_surface(kg, &sd, 0.f, 0, SHADER_CONTEXT_MAIN);
+
+#ifdef __MULTI_CLOSURE__
+			float3 eval = make_float3(0.0f, 0.0f, 0.0f);
+
+			for(int i = 0; i< sd.num_closure; i++) {
+				const ShaderClosure *sc = &sd.closure[i];
+				eval += sc->weight;
+			}
+
+			out = eval;
+#else
+			out = sd.closure.weight;
+#endif
 			break;
 		}
 		case SHADER_EVAL_EMISSION:




More information about the Bf-blender-cvs mailing list