Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mours <pmours@nvidia.com>2020-01-16 20:08:52 +0300
committerPatrick Mours <pmours@nvidia.com>2020-01-22 17:49:14 +0300
commit26687dda5ab7de1e2a00cb6252a6eb919c3f570c (patch)
tree0f126234efc556327ddeffb9068865c873999c3b /intern/cycles/device/device_optix.cpp
parentcbbbb9d17918af656578bc6526d21e41acaa59e4 (diff)
Fix T71344: Optix render errors with motion blur and unknown bone constraint relationship
The OptiX SRT motion expects a motion defined by translation, rotation, shear and scale, but the matrix decomposition code in Cycles was not able to extract shear information and instead produced a stretch matrix with the information baked in. This caused conflicting transforms between traversal and shading and lead to render artifacts. This patch changes the matrix decomposition to produce factors inline with what OptiX expects to fix that. Reviewed By: brecht Differential Revision: https://developer.blender.org/D6605
Diffstat (limited to 'intern/cycles/device/device_optix.cpp')
-rw-r--r--intern/cycles/device/device_optix.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp
index a510e538031..8a8eef0e059 100644
--- a/intern/cycles/device/device_optix.cpp
+++ b/intern/cycles/device/device_optix.cpp
@@ -1461,6 +1461,9 @@ class OptiXDevice : public Device {
srt_data[i].a = decomp[i].z.x; // scale.x.y
srt_data[i].b = decomp[i].z.y; // scale.x.z
srt_data[i].c = decomp[i].w.x; // scale.y.z
+ assert(decomp[i].z.z == 0.0f); // scale.y.x
+ assert(decomp[i].w.y == 0.0f); // scale.z.x
+ assert(decomp[i].w.z == 0.0f); // scale.z.y
// Pivot point
srt_data[i].pvx = 0.0f;