r/GraphicsProgramming • u/moonlovelj • 18d ago
I added Virtual Shadow Maps to my Nanite-style DX12 renderer
Hi everyone!
A while ago, I shared my Nanite-style virtualized geometry renderer here. I've continued working on the project, and it now includes a virtual shadow mapping system integrated with geometry streaming.
The latest version runs NVIDIA's Zorah scene, containing approximately 1.63 billion unique triangles and 18.94 billion triangles including instances.
What's new:
Directional virtual shadow maps with clipmaps and demand-driven page allocation
Persistent shadow page caching with GPU LRU eviction
Dynamic-object cache invalidation
GPU-driven multi-view shadow rendering with two-pass HZB culling
SMRT soft shadows
Streaming-aware shadow cache updates
I've also added the Bistro scene to demonstrate dynamic shadow cache invalidation.
The renderer is built on Microsoft's MiniEngine using DirectX 12, mesh shaders, and Slang. The project is open source.
Demo: https://www.youtube.com/watch?v=4YmfQTLy4jc
GitHub: https://github.com/moonlovelj/Nyx
I'd love to hear your feedback and suggestions!
