diff --git a/intern/cycles/kernel/kernel_projection.h b/intern/cycles/kernel/kernel_projection.h index fa06b937e61..aedcbddbd98 100644 --- a/intern/cycles/kernel/kernel_projection.h +++ b/intern/cycles/kernel/kernel_projection.h @@ -222,33 +222,41 @@ ccl_device float2 direction_to_panorama(KernelGlobals *kg, float3 dir) } } -ccl_device float3 spherical_stereo_position(KernelGlobals *kg, float3 dir, float3 pos) +ccl_device float3 spherical_stereo_position(KernelGlobals *kg, + float3 dir, + float3 pos) { - float3 up, side; + const float interocular_offset = kernel_data.cam.interocular_offset; - /* Interocular_offset of zero means either non stereo, or stereo without spherical stereo. */ + /* Interocular offset of zero means either non stereo, or stereo without + * spherical stereo. + */ + if(interocular_offset == 0.0f) { + return pos; + } - up = make_float3(0.0f, 0.0f, 1.0f); - side = normalize(cross(dir, up)); + float3 up = make_float3(0.0f, 0.0f, 1.0f); + float3 side = normalize(cross(dir, up)); - return pos + (side * kernel_data.cam.interocular_offset); + return pos + (side * interocular_offset); } -ccl_device float3 spherical_stereo_direction(KernelGlobals *kg, float3 dir, float3 pos, float3 newpos) +ccl_device float3 spherical_stereo_direction(KernelGlobals *kg, + float3 dir, + float3 pos, + float3 newpos) { - float3 screenpos, dirnew; - - /* Interocular_distance of zero means either no stereo, or stereo without spherical stereo. */ - if(kernel_data.cam.interocular_offset == 0.0f) + /* Interocular offset of zero means either no stereo, or stereo without + * spherical stereo. + */ + if(kernel_data.cam.interocular_offset == 0.0f) { return dir; + } - screenpos = pos + (normalize(dir) * kernel_data.cam.convergence_distance); - dirnew = screenpos - newpos; - - return dirnew; + float3 screenpos = pos + (normalize(dir) * kernel_data.cam.convergence_distance); + return screenpos - newpos; } CCL_NAMESPACE_END -#endif /* __KERNEL_PROJECTION_CL__ */ - +#endif /* __KERNEL_PROJECTION_CL__ */