diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-10-04 14:10:20 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-10-08 18:58:42 +0300 |
commit | 9f85107fef7f20689cec83671b88b4c71b5ef8fd (patch) | |
tree | 13cdafa288b89219f31e49d66cd21a68ac33cbd7 /source/blender/draw/engines/eevee/shaders | |
parent | bcd5bd6cd51146250341e78de2a34ff693cee154 (diff) |
EEVEE: Fix smooth transition when using render borders
The first sample buffer is fullscreen and needs to have its uvs
corrected to match the render border viewport.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/eevee_film_resolve_frag.glsl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/eevee_film_resolve_frag.glsl b/source/blender/draw/engines/eevee/shaders/eevee_film_resolve_frag.glsl index 8b77649481e..bdf36d52e96 100644 --- a/source/blender/draw/engines/eevee/shaders/eevee_film_resolve_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/eevee_film_resolve_frag.glsl @@ -23,6 +23,9 @@ void main(void) out_color = film_data_decode(film, color, weight); - vec4 first_sample = textureLod(first_sample_tx, uv, 0.0); + /* First sample is stored in a fullscreen buffer. */ + vec2 uv_first_sample = ((uv * film.extent) + film.offset) / + vec2(textureSize(first_sample_tx, 0).xy); + vec4 first_sample = textureLod(first_sample_tx, uv_first_sample, 0.0); out_color = mix(first_sample, out_color, film.opacity); } |