From d0fb0d0a9d0d698a499d7e38943696a43a7e456e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 13 Mar 2019 22:35:54 +0100 Subject: Fix T60170: Eevee: smoke color does not apply permanently This was because color is not present in the density texture if there is only one constant color. Adding it as a uniform. --- source/blender/gpu/shaders/gpu_shader_material.glsl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index df1a0b9e2a8..d91b6b77b86 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -1701,6 +1701,8 @@ void node_attribute_volume_density(sampler3D tex, out vec4 outcol, out vec3 outv outf = dot(vec3(1.0 / 3.0), outvec); } +uniform vec3 volumeColor = vec3(1.0); + void node_attribute_volume_color(sampler3D tex, out vec4 outcol, out vec3 outvec, out float outf) { #if defined(MESH_SHADER) && defined(VOLUMETRICS) @@ -1714,7 +1716,7 @@ void node_attribute_volume_color(sampler3D tex, out vec4 outcol, out vec3 outvec if (value.a > 1e-8) value.rgb /= value.a; - outvec = value.rgb; + outvec = value.rgb * volumeColor; outcol = vec4(outvec, 1.0); outf = dot(vec3(1.0 / 3.0), outvec); } -- cgit v1.2.3