Commit: 939fa6759c5d6e72fa4ef8c9d10075488f4d7666
Author: Sergey Sharybin
Date:   Mon Oct 6 12:31:31 2014 +0200
Branches: master
https://developer.blender.org/rB939fa6759c5d6e72fa4ef8c9d10075488f4d7666

Cycles: Fix for camera-in-volume detection

Ray actually should have infinite length, so we can detect camera in a volume
which is bigger that the far clipping of the camera.

This might also give some speedup (wouldn't expect much tho) because we don't
need to re-calculate ray direction and length after every bounce now.

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

M       intern/cycles/kernel/kernel_volume.h

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

diff --git a/intern/cycles/kernel/kernel_volume.h 
b/intern/cycles/kernel/kernel_volume.h
index dd947a5..0100a5b 100644
--- a/intern/cycles/kernel/kernel_volume.h
+++ b/intern/cycles/kernel/kernel_volume.h
@@ -978,6 +978,8 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg,
 
        const float3 Pend = ray->P + ray->D*ray->t;
        Ray volume_ray = *ray;
+       volume_ray.t = FLT_MAX;
+
        int stack_index = 0, enclosed_index = 0;
        int enclosed_volumes[VOLUME_STACK_SIZE];
 
@@ -1019,15 +1021,6 @@ ccl_device void kernel_volume_stack_init(KernelGlobals 
*kg,
 
                /* Move ray forward. */
                volume_ray.P = ray_offset(sd.P, -sd.Ng);
-               if(volume_ray.t != FLT_MAX) {
-                       volume_ray.D = normalize_len(Pend - volume_ray.P, 
&volume_ray.t);
-                       /* TODO(sergey): Find a faster way detecting that 
ray_offset moved
-                        * us pass through the end point.
-                        */
-                       if(dot(ray->D, volume_ray.D) < 0.0f) {
-                               break;
-                       }
-               }
        }
        /* stack_index of 0 means quick checks outside of the kernel gave false
         * positive, nothing to worry about, just we've wasted quite a few of

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

Reply via email to