Heatstroke is a real-time physically-based volumetric renderer that is based on EA's Frostbite Engine presented at Siggraph 2014 by Sebastien Hillaire. Rishabh Shah and I worked on this as our final project for CIS565: GPU Programming Fall 2017.

WebGL 2.0 offers many features that weren't available in WebGL 1.0 and were indispensible for our implementation, including 3D textures and multiple render targets.

We developed a pipeline that was built from a clustered deferred renderer: Shadow Mapping, G-Buffer Pass, Volumetric Pass, Final Shading and Tone Mapping.

(You can check out my deferred renderer here.)

For more details and an in-depth performance analysis, visit our repo. Must have WebGL 2.0 enabled to run the demo!

demo god rays heterogeneous