[Bf-blender-cvs] [54e91c8df8c] cycles-x: Fix bump and displacement in Cycles X

Sergey Sharybin noreply at git.blender.org
Tue May 18 10:54:47 CEST 2021


Commit: 54e91c8df8cfc0157b4eb7b66ff612608880b132
Author: Sergey Sharybin
Date:   Wed May 12 19:34:22 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB54e91c8df8cfc0157b4eb7b66ff612608880b132

Fix bump and displacement in Cycles X

Those got accidentally broken by D11132 (and corresponding commit).

The `object_inverse_dir_transform()` needs to be adjusted so that it
gives correct result for objects which do not have motion (similar to
`object_dir_transform()`).

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

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

M	intern/cycles/kernel/geom/geom_object.h

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

diff --git a/intern/cycles/kernel/geom/geom_object.h b/intern/cycles/kernel/geom/geom_object.h
index 4fcbda8caf9..2cb73571332 100644
--- a/intern/cycles/kernel/geom/geom_object.h
+++ b/intern/cycles/kernel/geom/geom_object.h
@@ -237,11 +237,14 @@ ccl_device_inline void object_inverse_dir_transform(const KernelGlobals *kg,
                                                     float3 *D)
 {
 #ifdef __OBJECT_MOTION__
-  *D = transform_direction_auto(&sd->ob_itfm_motion, *D);
-#else
-  Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM);
-  *D = transform_direction(&tfm, *D);
+  if (sd->object_flag & SD_OBJECT_MOTION) {
+    *D = transform_direction_auto(&sd->ob_itfm_motion, *D);
+    return;
+  }
 #endif
+
+  const Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM);
+  *D = transform_direction(&tfm, *D);
 }
 
 /* Object center position */



More information about the Bf-blender-cvs mailing list