Commit: 4ba80fd461e3a0a7e1bc495c85bd320ddda2de67
Author: Thomas Dinges
Date:   Tue Dec 24 04:00:27 2013 +0100
http://developer.blender.org/rB4ba80fd461e3a0a7e1bc495c85bd320ddda2de67

Cycles / Hair: No need to calculate curvepoint() when we use Ribbon curves.

Also some style cleanup.

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

M       intern/cycles/kernel/kernel_bvh.h

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

diff --git a/intern/cycles/kernel/kernel_bvh.h 
b/intern/cycles/kernel/kernel_bvh.h
index dc31e72..de200b7 100644
--- a/intern/cycles/kernel/kernel_bvh.h
+++ b/intern/cycles/kernel/kernel_bvh.h
@@ -1099,7 +1099,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals 
*kg, ShaderData *sd, con
        float4 P1 = kernel_tex_fetch(__curve_keys, k0);
        float4 P2 = kernel_tex_fetch(__curve_keys, k1);
        float l = 1.0f;
-       float3 tg = normalize_len(float4_to_float3(P2 - P1),&l);
+       float3 tg = normalize_len(float4_to_float3(P2 - P1), &l);
        float r1 = P1.w;
        float r2 = P2.w;
        float gd = ((r2 - r1)/l);
@@ -1119,17 +1119,17 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals 
*kg, ShaderData *sd, con
                p[2] = float4_to_float3(P2);
                p[3] = float4_to_float3(P3);
 
-               tg = normalize(curvetangent(isect->u,p[0],p[1],p[2],p[3]));
-               float3 p_curr = curvepoint(isect->u,p[0],p[1],p[2],p[3]);
-
 #ifdef __UV__
                sd->u = isect->u;
                sd->v = 0.0f;
 #endif
+       
+               tg = normalize(curvetangent(isect->u, p[0], p[1], p[2], p[3]));
 
                if(kernel_data.curve.curveflags & CURVE_KN_RIBBONS)
-                       sd->Ng = normalize(-(D - tg * (dot(tg,D))));
+                       sd->Ng = normalize(-(D - tg * (dot(tg, D))));
                else {
+                       float3 p_curr = curvepoint(isect->u, p[0], p[1], p[2], 
p[3]);   
                        sd->Ng = normalize(P - p_curr);
                        sd->Ng = sd->Ng - gd * tg;
                        sd->Ng = normalize(sd->Ng);
@@ -1145,7 +1145,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals 
*kg, ShaderData *sd, con
 #endif
 
                if (flag & CURVE_KN_TRUETANGENTGNORMAL) {
-                       sd->Ng = -(D - tg * dot(tg,D));
+                       sd->Ng = -(D - tg * dot(tg, D));
                        sd->Ng = normalize(sd->Ng);
                }
                else {
@@ -1159,7 +1159,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals 
*kg, ShaderData *sd, con
                sd->N = sd->Ng;
 
                if (flag & CURVE_KN_TANGENTGNORMAL && !(flag & 
CURVE_KN_TRUETANGENTGNORMAL)) {
-                       sd->N = -(D - tg * dot(tg,D));
+                       sd->N = -(D - tg * dot(tg, D));
                        sd->N = normalize(sd->N);
                }
                if (!(flag & CURVE_KN_TANGENTGNORMAL) && flag & 
CURVE_KN_TRUETANGENTGNORMAL) {
@@ -1174,7 +1174,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals 
*kg, ShaderData *sd, con
 #ifdef __DPDU__
        /* dPdu/dPdv */
        sd->dPdu = tg;
-       sd->dPdv = cross(tg,sd->Ng);
+       sd->dPdv = cross(tg, sd->Ng);
 #endif
 
        /*add fading parameter for minimum pixel width with transparency bsdf*/

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to