diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-03-19 20:21:29 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-03-19 23:11:06 +0300 |
commit | 89ef0da5513a2bc85a518b0941807ecdd6980a66 (patch) | |
tree | d436fdeb933a944d05957d2fc3e791a013b683f0 /source/blender/draw/engines/eevee/eevee_volumes.c | |
parent | 355f884b2f0932e0e1d50e9506d4c0e3bf6e2289 (diff) |
EEVEE: Volumetrics: Add support for soft volumetric shadows
Soft surface shadows were already supported but now we support
soft shadows of the volume themselves.
This is only enabled if the light casts shadow and the scene soft
shadows toggle is enabled.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_volumes.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_volumes.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c index 52c96bf51e7..136737f7d8b 100644 --- a/source/blender/draw/engines/eevee/eevee_volumes.c +++ b/source/blender/draw/engines/eevee/eevee_volumes.c @@ -184,7 +184,9 @@ void EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) float integration_start = scene_eval->eevee.volumetric_start; float integration_end = scene_eval->eevee.volumetric_end; - common_data->vol_light_clamp = scene_eval->eevee.volumetric_light_clamp; + /* TODO(fclem) Use clamp to modulate the light radius for + * volume lighting and avoid very bright highlights. */ + // common_data->vol_light_clamp = scene_eval->eevee.volumetric_light_clamp; common_data->vol_shadow_steps = (float)scene_eval->eevee.volumetric_shadow_samples; if ((scene_eval->eevee.flag & SCE_EEVEE_VOLUMETRIC_SHADOWS) == 0) { common_data->vol_shadow_steps = 0; @@ -216,11 +218,13 @@ void EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) } /* Disable clamp if equal to 0. */ - if (common_data->vol_light_clamp == 0.0) { - common_data->vol_light_clamp = FLT_MAX; - } + /* TODO(fclem) Re-implement */ + // if (common_data->vol_light_clamp == 0.0) { + // common_data->vol_light_clamp = FLT_MAX; + // } common_data->vol_use_lights = (scene_eval->eevee.flag & SCE_EEVEE_VOLUMETRIC_LIGHTS) != 0; + common_data->vol_use_soft_shadows = (scene_eval->eevee.flag & SCE_EEVEE_SHADOW_SOFT) != 0; if (!e_data.dummy_scatter) { const float scatter[4] = {0.0f, 0.0f, 0.0f, 0.0f}; |