mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-01 17:38:41 +00:00
Distribute shadow map update over multiple frames to reduce stutter (#11422)
Reduces stutter and freezes when playing. * Maintains double SM and SM Color textures * Light frustum update triggers incremental generation of shadow map into secondary 'future' textures. * Every incremental update renders a portion of the shadow draw list (split equally). * After defined number of frames (currently, 4), 'future' and 'current' textures are swapped, and DirectionalLight 'commits' the new frustum to use when rendering shadows on screen. Co-authored-by: sfan5 <sfan5@live.de>
This commit is contained in:
parent
ff2d2a6e93
commit
bf3acbf388
10 changed files with 224 additions and 72 deletions
|
@ -618,11 +618,11 @@ shadow_filters (Shadow filter quality) enum 1 0,1,2
|
|||
# On true translucent nodes cast colored shadows. This is expensive.
|
||||
shadow_map_color (Colored shadows) bool false
|
||||
|
||||
|
||||
# Set the shadow update time, in seconds.
|
||||
# Lower value means shadows and map updates faster, but it consumes more resources.
|
||||
# Minimum value: 0.001; maximum value: 0.2
|
||||
shadow_update_time (Map update time) float 0.2 0.001 0.2
|
||||
# Spread a complete update of shadow map over given amount of frames.
|
||||
# Higher values might make shadows laggy, lower values
|
||||
# will consume more resources.
|
||||
# Minimum value: 1; maximum value: 16
|
||||
shadow_update_frames (Map shadows update frames) int 8 1 16
|
||||
|
||||
# Set the soft shadow radius size.
|
||||
# Lower values mean sharper shadows, bigger values mean softer shadows.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue