branchsbox/gpu-shadow-cullingcancel
6 Commits over 0 Days - ∞cph!
Remove all atlas downsampling bullshit, not even being used
Was accidentally creating new lightbinner (without light info I needed too) every frame :S CSceneSystem::GetLightBinnerStandard() is "FindOrCreate" while from CSceneView actually gets the actual one
GPU Shadow Culling
POC: Don't render shadows that are not visible by GPU depth bounds
sc_show_rejected_lights
enum support for VFX HLSL
We dropped DX11 support so we can support it without a worry
microsoft/DirectXShaderCompiler/wiki/Language-Versions#hlsl-2017
r_gpu_shadow_culling cvar, parallelize static light visibility tests
Cone intersection for tiled light culling
Bloat cones a wee bit, still do sphere culling for point lights
Move culled lights list for shadow culling to lightbinner rather than shadowcache, lightbinners are guaranteed to be per view (first order, first served though), this lets multiview work for culled lights
https://i.imgur.com/JwxhgOJ.png
Only show the considered lights in the debug view, we don't cull the unconsidered lights so it'd show them as unculled
Cast shadows of non culled lights, not culled lights.. wtf?
Only debug draw actual shadow casters, add spot light debug drawer
Fix debug views for dynamic lights, update comments
Fix debug views for dynamic lights, update comments
Move culled lights list for shadow culling to lightbinner rather than shadowcache, lightbinners are guaranteed to be per view (first order, first served though), this lets multiview work for culled lights
https://i.imgur.com/JwxhgOJ.png
Cone intersection for tiled light culling
Bloat cones a wee bit, still do sphere culling for point lights
enum support for VFX HLSL
We dropped DX11 support so we can support it without a worry
microsoft/DirectXShaderCompiler/wiki/Language-Versions#hlsl-2017
r_gpu_shadow_culling cvar, parallelize static light visibility tests
Remove all atlas downsampling bullshit, not even being used
Was accidentally creating new lightbinner (without light info I needed too) every frame :S CSceneSystem::GetLightBinnerStandard() is "FindOrCreate" while from CSceneView actually gets the actual one
GPU Shadow Culling
POC: Don't render shadows that are not visible by GPU depth bounds