diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-02-25 22:03:25 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-02-25 22:51:22 +0300 |
commit | 4896e72a4d9d4fc65aae15a5120ce9f1b53482f7 (patch) | |
tree | 703369304ea2e949ed98661314d37f691afed5a9 /intern/cycles | |
parent | e84b42bfcf105be555c6cfef2692d20b223cdad4 (diff) |
Fix T95977: Point Info node radius wrong under rotation
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/kernel/geom/point.h | 5 | ||||
-rw-r--r-- | intern/cycles/util/math.h | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/intern/cycles/kernel/geom/point.h b/intern/cycles/kernel/geom/point.h index 545b5c7fa43..29e2bcbe9e3 100644 --- a/intern/cycles/kernel/geom/point.h +++ b/intern/cycles/kernel/geom/point.h @@ -141,9 +141,10 @@ ccl_device float point_radius(KernelGlobals kg, ccl_private const ShaderData *sd return r; } else { - float3 dir = make_float3(r, r, r); + const float normalized_r = r * (1.0f / M_SQRT3_F); + float3 dir = make_float3(normalized_r, normalized_r, normalized_r); object_dir_transform(kg, sd, &dir); - return average(dir); + return len(dir); } } diff --git a/intern/cycles/util/math.h b/intern/cycles/util/math.h index 5f047f6f3f4..5c94baccf0c 100644 --- a/intern/cycles/util/math.h +++ b/intern/cycles/util/math.h @@ -80,6 +80,9 @@ CCL_NAMESPACE_BEGIN #ifndef M_SQRT2_F # define M_SQRT2_F (1.4142135623730950f) /* sqrt(2) */ #endif +#ifndef M_SQRT3_F +# define M_SQRT3_F (1.7320508075688772f) /* sqrt(3) */ +#endif #ifndef M_LN2_F # define M_LN2_F (0.6931471805599453f) /* ln(2) */ #endif |