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>2017-10-24 18:52:20 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-10-27 23:49:15 +0300
commit310f1db7bf508c764dde47ff85bccb31458b1893 (patch)
tree960c5e0b3860773ed1571c28412b81db10e400c2 /source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
parent66d8f82b832b58cba3273c0a4196fae6db0e1efd (diff)
Eevee: Volumetrics: Add volumetric support to alpha blended meshes.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
index c9aa6705b67..eb0b93d5ac4 100644
--- a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
@@ -631,11 +631,24 @@ layout(location = 2) out vec4 ssrData;
Closure nodetree_exec(void); /* Prototype */
+#if defined(USE_ALPHA_BLEND_VOLUMETRICS)
+/* Prototype because this file is included before volumetric_lib.glsl */
+vec4 volumetric_resolve(vec4 scene_color, vec2 frag_uvs, float frag_depth);
+#endif
+
#define NODETREE_EXEC
void main()
{
Closure cl = nodetree_exec();
+
+#if defined(USE_ALPHA_BLEND_VOLUMETRICS)
+ /* XXX fragile, better use real viewport resolution */
+ vec2 uvs = gl_FragCoord.xy / vec2(2 * textureSize(maxzBuffer, 0).xy);
+ fragColor = volumetric_resolve(vec4(cl.radiance, cl.opacity), uvs, gl_FragCoord.z);
+#else
fragColor = vec4(cl.radiance, cl.opacity);
+#endif
+
ssrNormals = cl.ssr_normal.xyyy;
ssrData = cl.ssr_data;
}