Blender Git Loki
Git Commits -> Revision 6f3c279
Revision 6f3c279 by Clément Foucault (master) September 18, 2020, 22:09 (GMT) |
EEVEE: Add support for GGX Multi-scatter Based on http://jcgt.org/published/0008/01/03/ This is a simple trick that does *not* have a huge performance impact but does work pretty well. It just modifies the Fresnel term to account for the multibounce energy loss (coloration). However this makes the shader variations count double. To avoid this we use a uniform and pass the multiscatter use flag inside the sign of f90. This is a bit hacky but avoids many code duplication. This uses the simplification proposed by McAuley in A Journey Through Implementing Multiscattering BRDFs and Area Lights This does not handle area light differently than the IBL case but that's already an issue in current implementation. This is related to T68460. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8912 |
Commit Details:
Full Hash: 6f3c279d9e7082b963f3ca758f6ba0561c4bcc9c
Parent Commit: aa2e978
Lines Changed: +102, -45
8 Modified Paths:
/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl (+22, -20) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_lit_lib.glsl (+4, -4) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_anisotropic.glsl (+3, -2) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl (+12, -4) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl (+45, -13) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c (+9, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c (+3, -0) (Diff)
/source/blender/draw/engines/eevee/shaders/closure_lit_lib.glsl (+4, -4) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_anisotropic.glsl (+3, -2) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_glossy.glsl (+12, -4) (Diff)
/source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl (+45, -13) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c (+9, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c (+3, -0) (Diff)