To continue sharing rusty things from last year, I did some experimenting with Vulkan and put the code here: github.com/sjb3d/caldera/. Has a very basic render graph and some probably terrible use of rust async/.await.
Conversation
The goal was to try out Vulkan ray tracing/mesh shaders/bindless/etc, but I also implemented "Coherent Parallel Hashing" (ggg.udg.edu/publicacions/U) since it is a useful technique for GPU hash tables. Code for that is here: github.com/sjb3d/caldera/
1
13
I also got a bit carried away and implemented a spectral path tracer using Vulkan ray tracing here: github.com/sjb3d/caldera/. It implements "Practical Hash-based Owen Scrambling" for sampling, and a few different BRDFs. Some renders below:
4
36
199
Replying to
Are these images (such as the dragons) rendered inside of an application such as Blender or Unity, or are these things rendered purely via code w/o a preexisting engine/application? I'm not sure I know enough to even ask a valid question π
1
Replying to
Some of the scenes will have been modelled in external packages such as Blender, but the path tracer makes images using standalone code that only reads a description of the triangles/materials/lights (which is part of why this kind of project is enjoyable to write!)
Replying to
May I ask you for a beginner book or learning resource recommendation to get started with low-level graphics / shaders / rendering with code? I've heard good things about P5js, but I'm thinking perhaps I should start w/ lower level codeπ€π
(ps. I love functional programming)
1
for this sort of thing, (ie photo realistic path tracing with a focus on the physics/maths, not on the realtime/api/systems side) maybe pbrt.org ? if you're not afraid of a bit of maths.
1


