Blender Git Loki
Git Commits -> Revision 64d96f6
Revision 64d96f6 by Clément Foucault (master) February 21, 2021, 00:33 (GMT) |
EEVEE: Ambient Occlusion: Refactor - Fix noise/banding artifact on distant geometry. - Fix overshadowing on un-occluded surfaces at grazing angle producing "fresnel" like shadowing. Some of it still appears but this is caused to the low number of horizons per pixel. - Improve performance by using a fixed number of samples and fixing the sampling area size. A better sampling pattern is planned to recover the lost precision on large AO radius. - Improved normal reconstruction for the AO pass. - Improve Bent Normal reconstruction resulting in less faceted look on smoothed geometry. - Add Thickness heuristic to avoid overshadowing of thin objects. Factor is currently hardcoded. - Add bent normal support to Glossy reflections. - Change Glossy occlusion to give less light leaks from lightprobes. It can overshadow on smooth surface but this should be mitigated by using SSR. - Use Bent Normal for rough Glossy surfaces. - Occlusion is now correctly evaluated for each BSDF. However this does make everything slower. This is mitigated by the fact the search is a lot faster than before. |
Commit Details:
Full Hash: 64d96f68d6ef0411383bb46d1a95d47769d927e5
Parent Commit: 6c2e1f3
Lines Changed: +388, -262
9 Modified Paths:
/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl (+272, -192) (Diff)
/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl (+2, -6) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_diffuse_lib.glsl (+6, -4) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_glossy_lib.glsl (+5, -1) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_lib.glsl (+7, -10) (Diff)
/source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl (+77, -36) (Diff)
/source/blender/draw/engines/eevee/shaders/lightprobe_lib.glsl (+6, -12) (Diff)
/source/blender/draw/intern/shaders/common_math_lib.glsl (+6, -0) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl (+7, -1) (Diff)
/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl (+2, -6) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_diffuse_lib.glsl (+6, -4) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_glossy_lib.glsl (+5, -1) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_eval_lib.glsl (+7, -10) (Diff)
/source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl (+77, -36) (Diff)
/source/blender/draw/engines/eevee/shaders/lightprobe_lib.glsl (+6, -12) (Diff)
/source/blender/draw/intern/shaders/common_math_lib.glsl (+6, -0) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl (+7, -1) (Diff)