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:
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl b/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl
index 50ec88b1990..e24c2dccdbf 100644
--- a/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/eevee_subsurface_eval_frag.glsl
@@ -23,7 +23,12 @@ layout(std140) uniform subsurface_block
SubsurfaceData sss;
};
-uniform sampler2D depth_tx;
+layout(std140) uniform hiz_block
+{
+ HiZData hiz;
+};
+
+uniform sampler2D hiz_tx;
uniform sampler2D radiance_tx;
uniform sampler2D transmit_color_tx;
uniform sampler2D transmit_normal_tx;
@@ -63,7 +68,8 @@ void main(void)
{
vec2 center_uv = uvcoordsvar.xy;
- vec3 vP = get_view_space_from_depth(center_uv, texture(depth_tx, center_uv).r);
+ float gbuffer_depth = texelFetch(hiz_tx, ivec2(gl_FragCoord.xy), 0).r;
+ vec3 vP = get_view_space_from_depth(center_uv, gbuffer_depth);
vec4 tra_col_in = texture(transmit_color_tx, center_uv);
vec4 tra_nor_in = texture(transmit_normal_tx, center_uv);
vec4 tra_dat_in = texture(transmit_data_tx, center_uv);
@@ -111,7 +117,7 @@ void main(void)
vec2 sample_uv = center_uv + sample_space * sss.samples[i].xy;
float pdf = sss.samples[i].z;
- float sample_depth = texture(depth_tx, sample_uv).r;
+ float sample_depth = texture(hiz_tx, sample_uv * hiz.uv_scale).r;
vec3 sample_vP = get_view_space_from_depth(sample_uv, sample_depth);
vec4 sample_data = texture(radiance_tx, sample_uv);