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:
authorClément Foucault <foucault.clem@gmail.com>2019-08-14 15:28:57 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-08-14 15:29:02 +0300
commit4074ab361e13444ae9a5d6b8bdf973fce2302021 (patch)
treebb6f1bad542932c1b19df306c25024fac6a592b0 /source/blender/gpu
parent7ae3aa7b63136ea590004ae2ca765697bf0756bc (diff)
Eevee: Fix background alpha regression
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c5
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl2
2 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index 6d9fda1c695..3e635b3198a 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -929,12 +929,15 @@ static char *code_generate_fragment(GPUMaterial *material,
/* XXX This cannot go into gpu_shader_material.glsl because main()
* would be parsed and generate error */
/* Old glsl mode compat. */
+ /* TODO(fclem) This is only used by world shader now. get rid of it? */
BLI_dynstr_append(ds, "#ifndef NODETREE_EXEC\n");
BLI_dynstr_append(ds, "out vec4 fragColor;\n");
BLI_dynstr_append(ds, "void main()\n");
BLI_dynstr_append(ds, "{\n");
BLI_dynstr_append(ds, "\tClosure cl = nodetree_exec();\n");
- BLI_dynstr_append(ds, "\tfragColor = vec4(cl.radiance, saturate(avg(cl.transmittance)));\n");
+ BLI_dynstr_append(ds,
+ "\tfragColor = vec4(cl.radiance, "
+ "saturate(1.0 - avg(cl.transmittance)));\n");
BLI_dynstr_append(ds, "}\n");
BLI_dynstr_append(ds, "#endif\n\n");
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 7cb38503039..f077ae55d8f 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -3515,7 +3515,7 @@ void node_output_world(Closure surface, Closure volume, out Closure result)
{
#ifndef VOLUMETRICS
result.radiance = surface.radiance * backgroundAlpha;
- result.transmittance = vec3(0.0);
+ result.transmittance = vec3(1.0 - backgroundAlpha);
#else
result = volume;
#endif /* VOLUMETRICS */