diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-10-17 16:17:17 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-10-17 16:17:17 +0400 |
commit | afb75ad2af0c30f1bc6fd252ca115a59d04e3b85 (patch) | |
tree | bf26823ca7542e7b5cd2e455fa551006d6be4500 /intern/cycles/kernel/svm/svm_closure.h | |
parent | 0551aa14bb2e58e79200823cde6d71c2288ca7fa (diff) |
Cycles: add Tangent input for Anisotropic BSDF.
Also refactor SVM BSDF code, preparing it to be shared with OSL.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_closure.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_closure.h | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 6a0e6915e99..0d30792a594 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -190,12 +190,13 @@ __device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *st #endif ShaderClosure *sc = svm_node_closure_get(sd); sc->N = N; + sc->T = stack_load_float3(stack, data_node.z); svm_node_closure_set_mix_weight(sc, mix_weight); float roughness_u = param1; float roughness_v = param2; - bsdf_ward_setup(sd, sc, sd->T, roughness_u, roughness_v); + bsdf_ward_setup(sd, sc, roughness_u, roughness_v); break; } #endif @@ -442,27 +443,6 @@ __device void svm_node_add_closure(ShaderData *sd, float *stack, uint unused, #endif } -/* Tangent */ - -#ifdef __DPDU__ -__device_inline void svm_node_closure_store_tangent(ShaderData *sd, float3 tangent) -{ - sd->T = normalize(tangent); -} - -__device void svm_node_closure_set_tangent(ShaderData *sd, uint x, uint y, uint z) -{ - float3 tangent = make_float3(__int_as_float(x), __int_as_float(y), __int_as_float(z)); - svm_node_closure_store_tangent(sd, tangent); -} - -__device void svm_node_closure_tangent(ShaderData *sd, float *stack, uint tangent_offset) -{ - float3 tangent = stack_load_float3(stack, tangent_offset); - svm_node_closure_store_tangent(sd, tangent); -} -#endif - /* (Bump) normal */ __device void svm_node_set_normal(KernelGlobals *kg, ShaderData *sd, float *stack, uint in_direction, uint out_normal) |