[Bf-blender-cvs] [ee0928d4be6] master: Fix wrong shadow terminator geometry offset for instances

Olivier Maury noreply at git.blender.org
Fri Jan 7 18:37:01 CET 2022


Commit: ee0928d4be6e1f502eb7208f821d8e049795dadd
Author: Olivier Maury
Date:   Fri Jan 7 17:07:08 2022 +0100
Branches: master
https://developer.blender.org/rBee0928d4be6e1f502eb7208f821d8e049795dadd

Fix wrong shadow terminator geometry offset for instances

Must take into account SD_OBJECT_TRANSFORM_APPLIED to determine if the normal
was already in world space.

Differential Revision: https://developer.blender.org/D13639

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

M	intern/cycles/kernel/light/sample.h

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

diff --git a/intern/cycles/kernel/light/sample.h b/intern/cycles/kernel/light/sample.h
index b6662c7f6b3..5a4b7c0a302 100644
--- a/intern/cycles/kernel/light/sample.h
+++ b/intern/cycles/kernel/light/sample.h
@@ -148,7 +148,9 @@ ccl_device_inline float3 shadow_ray_smooth_surface_offset(
   float3 P = V[0] * u + V[1] * v + V[2] * w; /* Local space */
   float3 n = N[0] * u + N[1] * v + N[2] * w; /* We get away without normalization */
 
-  object_normal_transform(kg, sd, &n); /* Normal x scale, world space */
+  if (!(sd->object_flag & SD_OBJECT_TRANSFORM_APPLIED)) {
+    object_normal_transform(kg, sd, &n); /* Normal x scale, world space */
+  }
 
   /* Parabolic approximation */
   float a = dot(N[2] - N[0], V[0] - V[2]);



More information about the Bf-blender-cvs mailing list