diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-23 20:56:02 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-23 20:56:02 +0400 |
commit | 543e06ce0e2d4aba607d5cbc205c3342796adc37 (patch) | |
tree | 959a47ab2bb52f4e8f5e3d4a6b5212f65633c360 /intern | |
parent | 82e4484de2ca1fb7783b9755af9267b1b8ca6e24 (diff) |
Fix #33915: tweak self intersection epsilon for motion blur a bit further, still
had some cases where there were artifacts. Also fix rendering error with shutter
time set to 0.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/kernel_bvh.h | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_camera.h | 2 | ||||
-rw-r--r-- | intern/cycles/render/camera.cpp | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h index a1195e424d7..1a85b5bbefd 100644 --- a/intern/cycles/kernel/kernel_bvh.h +++ b/intern/cycles/kernel/kernel_bvh.h @@ -929,7 +929,7 @@ __device_inline float3 ray_offset(float3 P, float3 Ng) const float epsilon_f = 1e-5f; /* ideally this should match epsilon_f, but instancing/mblur * precision makes it problematic */ - const float epsilon_test = 1e-1f; + const float epsilon_test = 1.0f; const int epsilon_i = 32; float3 res; diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/kernel_camera.h index cd896ffe133..f9d5bd3dd3f 100644 --- a/intern/cycles/kernel/kernel_camera.h +++ b/intern/cycles/kernel/kernel_camera.h @@ -213,7 +213,7 @@ __device void camera_sample(KernelGlobals *kg, int x, int y, float filter_u, flo #ifdef __CAMERA_MOTION__ /* motion blur */ - if(kernel_data.cam.shuttertime == 0.0f) + if(kernel_data.cam.shuttertime == -1.0f) ray->time = TIME_INVALID; else ray->time = 0.5f + 0.5f*(time - 0.5f)*kernel_data.cam.shuttertime; diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp index a78ede979b2..3ca19496b72 100644 --- a/intern/cycles/render/camera.cpp +++ b/intern/cycles/render/camera.cpp @@ -216,9 +216,9 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene) /* motion blur */ #ifdef __CAMERA_MOTION__ - kcam->shuttertime = (need_motion == Scene::MOTION_BLUR) ? shuttertime: 0.0f; + kcam->shuttertime = (need_motion == Scene::MOTION_BLUR) ? shuttertime: -1.0f; #else - kcam->shuttertime = 0.0f; + kcam->shuttertime = -1.0f; #endif /* type */ |