Oh yeah I've seen this but completely forgot about it, yeah this is such a great video for people outside of rendering ๐
Oh yeah I've seen this but completely forgot about it, yeah this is such a great video for people outside of rendering ๐
Added the ability to watch the rays in my path tracer bounce around as an animation. I'm excited about this more from an education POV, I think it helps explain how path tracing works far more easily than I could describe in words
Iterating on my ray visualizer. Added arrow caps to see ray directionality and UI to tune the ray thickness. I removed the cap on visualizer ray count in the bathroom scene and it gets a little crazy.
Green = first bounce
Yellow = all other bounces
Blue = Next event estimation shadow rays
First prototype of visualizing rays. Fairly simple implementaton: store rays in UAV, then do ray-cylinder intersections in a CS.
First bounce is green, second yellow, red for the rest. Shows how dumb my tracer is with very little importance sampling, but it's fun watching the web of rays!
In this case I'd probably rather have it take perspective into account. For something like wire frame though that makes more sense
Didn't know that was a thing, thanks!
True I could do that, I was thinking just generating cylinders on the fly but that sounds more fun
So if I want to visualize the rays I'm firing for a path tracer, how do folks draw the lines for rays?
The obvious answer is rasterize the lines, but then you need a raster path that lines up directly with the path traced results
Is it crazy to raytrace against the lines in a composition pass?
Here's a recording of my Tiny Glade presentation from the Graphics Programming Conference 2024:
www.youtube.com/watch?v=jusW...
It's an any% speedrun of our GPU-driven rendering, shadows, global illumination, water, and DoF, involving a few weird tricks.
By cache I suppose you're caching the DXIL with some hash to avoid calling the compiler if you don't need to?
Hrmm sounds interesting, might have to try this and write a part 2 to my blog post ๐
Oh nice, will take a look at that, sounds like a good approach!
Ah hah yeah maybe that's good enough for me too
Would love to do something similar, how do you handle includes?
Quick and dirty post on implementing hot shader reload with DXC: wallisc.github.io/rendering/20...
Hmm probably! I'd love to think of a way where it could autodetect based on whether files have been modified. I think the tough part is handling the chain of includes but maybe there's some helpers in DXC that make extracting that easy. Brute force recompiling would definitely be less of a headache
Put this off for too long, added hot reload of shaders. Super useful for debugging, using it here to shut off albedo to see indirect lighting in isolation and then preview UVs. Fairly easy to support since everything is done through a single shader and takes less than a second to recompile.
Support for subsurface material editing! I treat glass and subsurface the same. Glass is just subsurface scattering with 0 scattering events.
I've avoided making my path tracer an editor for simplicity sake but recently realized how much easier debugging would be with some limited functionality. So here we go, first prototype of material editing
Hey, I'm Chris! I'm a rendering engineer working on the Gears of War series. Sometimes I post about it, but usually I just talk about my GPU path tracer or ShaderToy
Blog of my random graphics stuff here: wallisc.github.io