diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-10-24 18:52:20 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-10-27 23:49:15 +0300 |
commit | 310f1db7bf508c764dde47ff85bccb31458b1893 (patch) | |
tree | 960c5e0b3860773ed1571c28412b81db10e400c2 /source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl | |
parent | 66d8f82b832b58cba3273c0a4196fae6db0e1efd (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.glsl | 13 |
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; } |