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>2021-03-09 13:24:16 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-03-10 19:57:09 +0300
commit9957096f35fcb9d63ae611464667638dcbfb6dd6 (patch)
tree040ac288e69047e57b190f3e01b224feb18a8d12 /source/blender/draw/engines/eevee/eevee_private.h
parent79bc4962d376a37356752334d43021a18fbdba5b (diff)
EEVEE: ScreenSpaceReflections: Improve hit quality
This changes the hitBuffer to store `ReflectionDir * HitTime, invPdf` just as the reference presentation. This avoids issues when the hit refinement produce a coordinate that does not land on the correct surface. We now store the pdf in the same texture and store it inversed so we can remove some ALU from the resolve shader. This also rewrite the resolve shader to not be vectorized to improve readability and scalability.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_private.h')
-rw-r--r--source/blender/draw/engines/eevee/eevee_private.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h
index 45afee31591..eb1c51f49dd 100644
--- a/source/blender/draw/engines/eevee/eevee_private.h
+++ b/source/blender/draw/engines/eevee/eevee_private.h
@@ -737,7 +737,6 @@ typedef struct EEVEE_EffectsInfo {
struct GPUTexture *ssr_normal_input; /* Textures from pool */
struct GPUTexture *ssr_specrough_input;
struct GPUTexture *ssr_hit_output;
- struct GPUTexture *ssr_pdf_output;
/* Temporal Anti Aliasing */
int taa_reproject_sample;
int taa_current_sample;
@@ -854,8 +853,8 @@ typedef struct EEVEE_EffectsInfo {
* - Arrays of vec2/vec3 are padded as arrays of vec4.
* - sizeof(bool) == sizeof(int) in GLSL so use int in C */
typedef struct EEVEE_CommonUniformBuffer {
- float prev_persmat[4][4]; /* mat4 */
- float hiz_uv_scale[4]; /* vec4 */
+ float prev_persmat[4][4]; /* mat4 */
+ float hiz_uv_scale[2], ssr_uv_scale[2]; /* vec4 */
/* Ambient Occlusion */
/* -- 16 byte aligned -- */
float ao_dist, pad1, ao_factor, pad2; /* vec4 */