From acd619d7c9250282d68b917d6cae5c08301bb989 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 18 Feb 2018 03:16:29 +0100 Subject: [PATCH] Cycles: change smoke color grid to not include density multiplied in. This breaks backwards compatibility some, making smoke colors brighters than before. But it is also more correct this way. --- intern/cycles/kernel/geom/geom_volume.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/intern/cycles/kernel/geom/geom_volume.h b/intern/cycles/kernel/geom/geom_volume.h index 6be448c4fa4..286d898992e 100644 --- a/intern/cycles/kernel/geom/geom_volume.h +++ b/intern/cycles/kernel/geom/geom_volume.h @@ -68,7 +68,13 @@ ccl_device float3 volume_attribute_float3(KernelGlobals *kg, const ShaderData *s if(dx) *dx = make_float3(0.0f, 0.0f, 0.0f); if(dy) *dy = make_float3(0.0f, 0.0f, 0.0f); - return float4_to_float3(r); + if(r.w != 0.0f && r.w != 1.0f) { + /* For RGBA colors, unpremultiply after interpolation. */ + return float4_to_float3(r) / r.w; + } + else { + return float4_to_float3(r); + } } #endif