diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-02-24 11:06:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-02-24 11:07:52 +0300 |
commit | a585cbd2af92c0a1ebf24c1a28069bb4ebf1d177 (patch) | |
tree | 8be9af183d4a262b6b70fdcebcc986f08db78053 /intern/cycles/kernel/kernel_path_surface.h | |
parent | 4c75f776690cfec51ad3ca686805be6edf21b514 (diff) |
Fix T43783: Cycles clipping doesn't match viewport when camera is inside volume
Ray length adjustment got lost in some refactor commit back to 2.71 days.
Diffstat (limited to 'intern/cycles/kernel/kernel_path_surface.h')
-rw-r--r-- | intern/cycles/kernel/kernel_path_surface.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_path_surface.h b/intern/cycles/kernel/kernel_path_surface.h index d2704c367e4..f0d4e98c5e0 100644 --- a/intern/cycles/kernel/kernel_path_surface.h +++ b/intern/cycles/kernel/kernel_path_surface.h @@ -281,6 +281,11 @@ ccl_device_inline bool kernel_path_surface_bounce(KernelGlobals *kg, RNG *rng, /* update path state, count as transparent */ path_state_next(kg, state, LABEL_TRANSPARENT); + if(state->bounce == 0) + ray->t -= sd->ray_length; /* clipping works through transparent */ + else + ray->t = FLT_MAX; + /* setup ray position, direction stays unchanged */ ray->P = ray_offset(sd->P, -sd->Ng); #ifdef __RAY_DIFFERENTIALS__ |