-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Virtual shadowmap #681
Comments
@Try, Does this mean OpenGothic will work on weaker graphics cards ? |
@YALdysse by 'weaker' graphics card you mean weaker than what?) |
OpenGothic consumes an average of 95% of my graphics card - |
Unfortunately, we are not talking about stable 60 FPS, but I can play. |
OK, I would like to avoid setting any expectations, as virtual-shadow is pretty-much experimental tech.
With Vega there are 2 major issues:
|
Some numbers [RTX3070]: Protective shadowmap (current solution):
Virtual shadow
|
Even with large pages look is not good:
|
Testing is now enabled by command line: |
some data on culling:
About 23% reduction in meshlet count. Now runtime is about 1ms for rendering.
Amount of meshlets for protective shadow-map. So we still using about 4x meshlets, relative to projective sm |
Some frame case-study on draw-amount. projectiveSM: 8.7k Now breakdown per clipmap:
Fog adds roughly another 5k to mip5 (and a bit to others) |
fog is back to reasonable timings: |
In general, I'm looking for a new, more sophisticated, solution to replace projective shadowmap.
Goals
Known solutions
Not a lot actually...
nanite (page 119): https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
assassins creed (page 55): https://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf
https://ktstephano.github.io/rendering/stratusgfx/svsm
https://www.cse.chalmers.se/~uffe/ClusteredWithShadows.pdf
https://www.gamedevs.org/uploads/efficient-shadows-from-many-lights.pdf
not vsm, but close enough in concept:
http://lukaskalbertodt.github.io/2023/11/18/tiled-soft-shadow-volumes.html
Very first WIP
Some page-data to illustrate
Initial implementation
Decide to start with common parameters for now:
Current considerations:
1.1 Coarse culling not possible - need to output exact
pageId
, for visible meshlets1.2 Output size is not deterministic and no good way to react to out-of-memory
2.1 Won't be able to use hw-rasterizer to output data (need to use image-atomics + image-less rendering)
2.2 Image-less rendering limited by
maxViewportDimensions = 4k
3.1 Immediate one still requires atomics, and wont be better than render-pass based one
3.2 Tile-base can be an interesting take, but not valid without bindless
The text was updated successfully, but these errors were encountered: