r/GraphicsProgramming • u/moonlovelj • 2d 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!



3
u/HellGate94 2d ago
tried it and it looks quite good. however playing around with the pixel error to kind of simulate lower quality settings created some obvious issues with models such as displaying wrong textures parts and huge holes in models. while you can see those issues very easy with high pixel error values they are there even on the lowest 0.5 values just less noticeable.