I've been validating the results of my Surfel Radiance Cascades, comparing it to ground-truth and using the white furnace test. I think I'm really close to GT now, attached are 2 images, one is GT, the other is SRC :)
During the past week I dove back into Radiance Cascades, this time Holographic Radiance Cascades. It was really fun to again dive into this and make my own implementation of it, running entirely on my CPU. This demo contains no explicit light sources, only emissive pixels! :)
We've used the voxel game-engine we build as a team of students to make a little diorama puzzle game :)
This has been an very fun experience, building from the ground up, working together with designers and artists!
Game: buas.itch.io/zentera
Engine: youtu.be/uvLZn1X_R0Q
The engine supports both PC and PS5 through a platform-agnostic render graph I wrote.
It was a big gamble, I had written it as a prototype in 2 weeks, but it really paid off in the end. Saving us a ton of time and keeping our renderer clean :)
Code snippet showing the interface:
A big optimization I worked on after my last post was making our voxelizer *lazy*.
So, it only updates parts of the scene that changed. This made a huge difference for our performance and allowed us to push for larger level sizes!
Below is a high-level drawing of how it works:
The past 8 weeks I've been working in a team of fellow students on a voxel game engine. I've been primarily working on the graphics, creating a cross-platform render graph for us, and working together with
@ScarakLynn on our cone-traced lighting, and various graphics features! :)
I decided to open source my implementation of Surfel Radiance Cascades Diffuse Global Illumination, since I'm not longer actively working on it. Hopefully the code can serve as a guide to others who can push this idea further :)
github.com/mxcop/src-dgi
I wrote a blog post on my implementation of the Surfel maintenance pipeline from my Surfel Radiance Cascades project. Most of what I learned came from "SIGGRAPH 2021: Global Illumination Based on Surfels" a great presentation from EA SEED :)
m4xc.dev/blog/surfel-mainten…
I've been validating the results of my Surfel Radiance Cascades, comparing it to ground-truth and using the white furnace test. I think I'm really close to GT now, attached are 2 images, one is GT, the other is SRC :)
Now I'm working on integrating a multi-level hash grid based on NVIDIA's SHARC and @h3r2tic's fork of kajiya.
Here's a little sneak peak of the heatmap debug view :)
I've been improving the Surfel Radiance Cascades since my last post, ironing out bugs one by one. It's starting to get difficult to see the difference between my ground truth renderer and the SRC one :)
(in this rather low frequency scene, more high frequency tests coming soon)
Been working on voxel physics for a couple of weeks now. Finally getting some nice results. I'm using iterative constraint solving and discrete voxel collision detection inspired by Teardown🙂
After many weeks of effort I finally have radiance on screen now! I’ve still got issues mostly related to my Surfel Acceleration Structure, however I’d say the results are already looking quite promising. It has kind of a hand painted look to it now :)
So what have I been up to this year? Hardware raytracing, Vulkan, deformable voxels, engine architecture, physics and lots of multithreading. blog.voxagon.se/2024/12/29/y…
This week I've been implementing Surfels for the first time, the most challenging part so far has been the spawning algorithm. Stopping Surfels from spawning on top of each other. The spatial look-up acceleration structure is also a part which I still need to iterate on :)
I'm working on Surfels as an alternative probe placement strategy for Radiance Cascades. Once I've got stable Surfel management I will be using them as probes for Radiance Cascades, which should solve the spatial aliasing issues my previous demo experienced!