Skip to content

h3r2tic's grimoire

Kajiya renderer

💡 Experimental real-time global illumination... toy 🦀

Done in my spare time at Embark, kajiya is an evolving excursion into real-time global illumination algorithms. Having gone through surfels and morphological inverse cone tracing (🤪), it's now fully infused with ReSTIR and irradiance caching.

Permissively licensed on GitHub.

Raytracing in Hybrid Real-Time Rendering

At SEED we developed a mini-game for autonomous agents: PICA PICA. It was the cutest Skynet implementation around.

It used a hybrid renderer: rasterization meets raytracing meets specialized denoising. I worked on global illumination, reflections, shadows, and a bunch more.

How not to use DLLs

Runtime loading of object files, relocation of DLLs. Mostly harmful stuff.

A deferred material rendering system

Practical application of the GCN hacks: indirect dispatch of lots of unique compute shaders and native barycentric coordinate access. Those allows for efficient surface shading in a deferred manner without the use of ubershaders. Geometry and material descriptions can be decoupled, and we gain a lot of control over shading frequency. Slides here!

Hacking GCN via OpenGL

AMD’s Graphics Core Next GPU architecture has a number of interesting features which one cannot access via standard APIs. I show how to hack around the OpenGL driver, and feed it native shaders written in GCN ISA instead of GLSL. Slides here!

Stochastic Screen-Space Reflections

Importance sampled screen-space reflections with a novel spatiotemporal filter. I prototyped it in a toy engine written in the Rust language, and later ported to Frostbite, working closely with Yasin Uludag. It first shipped in Mirror’s Edge and Need for Speed.

Check out the slides for my Siggraph 2015 talk which was part of Advances in Real-Time Rendering in Games.