Cycles: Bring back distance check in re-intersection
From more investigation of the numeric failures in the kernel it appears the check was rather correct. But in theory it;s also needed for the motion triangles.
This commit is contained in:
parent
b03ac83843
commit
edb7195f27
|
@ -130,6 +130,9 @@ ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ShaderData *s
|
||||||
|
|
||||||
#ifdef __INTERSECTION_REFINE__
|
#ifdef __INTERSECTION_REFINE__
|
||||||
if(isect->object != OBJECT_NONE) {
|
if(isect->object != OBJECT_NONE) {
|
||||||
|
if(UNLIKELY(t == 0.0f)) {
|
||||||
|
return P;
|
||||||
|
}
|
||||||
#ifdef __OBJECT_MOTION__
|
#ifdef __OBJECT_MOTION__
|
||||||
Transform tfm = sd->ob_itfm;
|
Transform tfm = sd->ob_itfm;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -314,6 +314,9 @@ ccl_device_inline float3 triangle_refine(KernelGlobals *kg,
|
||||||
|
|
||||||
#ifdef __INTERSECTION_REFINE__
|
#ifdef __INTERSECTION_REFINE__
|
||||||
if(isect->object != OBJECT_NONE) {
|
if(isect->object != OBJECT_NONE) {
|
||||||
|
if(UNLIKELY(t == 0.0f)) {
|
||||||
|
return P;
|
||||||
|
}
|
||||||
#ifdef __OBJECT_MOTION__
|
#ifdef __OBJECT_MOTION__
|
||||||
Transform tfm = sd->ob_itfm;
|
Transform tfm = sd->ob_itfm;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue