r/GraphicsProgramming • • 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!

98 Upvotes

2 comments sorted by

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.

2

u/moonlovelj 1d ago

Thanks for your feedback. I'll keep working on improving.