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:
Replying to
The first image uses measured spectral data from refractiveindex.info for copper, iron and gold. The scenes for the last 3 images are from Benedikt Bitterli's rendering resources: benedikt-bitterli.me/resources/, originally by blendswap artists nacimus, NewSee2l035 and thecali.
9
Replying to
Thanks, for reflectance data it is piecewise linear data baked to textures. Where I only have RGB I convert using the method by Brian Smits. Integration importance samples 3 wavelengths and traces them together (no dispersion yet).
1
1
Show replies
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!)
1
1
Show replies



