[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