Blender Git Loki
Git Commits -> Revision 659be38
Revision 659be38 by Clément Foucault (master) August 18, 2017, 13:09 (GMT) |
Eevee: Rework GTAO This includes big improvement: - The horizon search is decoupled from the BSDF evaluation. This means using multiple BSDF nodes have a much lower impact when enbaling AO. - The horizon search is optimized by splitting the search into 4 corners searching similar directions to help which GPU cache coherence. - The AO options are now uniforms and do not trigger shader recompilation (aka. freeze UI). - Include a quality slider similar to the SSR one. - Add a switch for disabling bounce light approximation. - Fix problem with Bent Normals when occlusion get very dark. - Add a denoise option to that takes the neighbors pixel values via glsl derivatives. This reduces noise but exhibit 2x2 blocky artifacts. The downside : Separating the horizon search uses more memory (~3MB for each samples on HD viewport). We could lower the bit depth to 4bit per horizon but it produce noticeable banding (might be fixed with some dithering). |
Commit Details:
Full Hash: 659be38760784b51cf17c768cdf74cdd5718ba71
Parent Commit: 25789f2
Lines Changed: +546, -159
1 Added Path:
/source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl (+69, -0) (View)
10 Modified Paths:
/release/scripts/startup/bl_ui/properties_render.py (+3, -0) (Diff)
/release/scripts/startup/bl_ui/properties_render_layer.py (+3, -0) (Diff)
/source/blender/draw/CMakeLists.txt (+1, -0) (Diff)
/source/blender/draw/engines/eevee/eevee_effects.c (+181, -19) (Diff)
/source/blender/draw/engines/eevee/eevee_engine.c (+18, -0) (Diff)
/source/blender/draw/engines/eevee/eevee_lightprobes.c (+4, -2) (Diff)
/source/blender/draw/engines/eevee/eevee_materials.c (+14, -35) (Diff)
/source/blender/draw/engines/eevee/eevee_private.h (+18, -9) (Diff)
/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl (+209, -93) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+26, -1) (Diff)
/release/scripts/startup/bl_ui/properties_render_layer.py (+3, -0) (Diff)
/source/blender/draw/CMakeLists.txt (+1, -0) (Diff)
/source/blender/draw/engines/eevee/eevee_effects.c (+181, -19) (Diff)
/source/blender/draw/engines/eevee/eevee_engine.c (+18, -0) (Diff)
/source/blender/draw/engines/eevee/eevee_lightprobes.c (+4, -2) (Diff)
/source/blender/draw/engines/eevee/eevee_materials.c (+14, -35) (Diff)
/source/blender/draw/engines/eevee/eevee_private.h (+18, -9) (Diff)
/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl (+209, -93) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+26, -1) (Diff)