From 516a060bb38d119a397848d30f6e5923d95f135f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 29 Jun 2021 19:23:36 +0200 Subject: Fix T89523: Cycles OpenCL compile error after recent changes Also correctly used inverse transposed matrix for normal transform. --- intern/cycles/kernel/bvh/bvh_util.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/cycles/kernel/bvh/bvh_util.h b/intern/cycles/kernel/bvh/bvh_util.h index 168c2939136..6c152cbb249 100644 --- a/intern/cycles/kernel/bvh/bvh_util.h +++ b/intern/cycles/kernel/bvh/bvh_util.h @@ -85,7 +85,9 @@ ccl_device_inline float3 smooth_surface_offset(KernelGlobals *kg, ShaderData *sd const float w = 1 - u - v; 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 */ - n = transform_direction(&(sd->ob_tfm), n); /* Normal x scale, world space */ + + n = normalize( + transform_direction_transposed_auto(&sd->ob_itfm, n)); /* Normal x scale, world space */ /* Parabolic approximation */ float a = dot(N[2] - N[0], V[0] - V[2]); -- cgit v1.2.3