Visualization W2025

Eickmeyer Michael, Emanuele Grisenti
January 2026

Our group implemented the volume visualization tecnique described in the paper "Interactive Dynamic Volume Illumination with Refraction and Caustics" by Jens G. Magnus and Stefan Bruckner (2018).

Implementation

We implemented the algorithm described in the paper using C++20 and the Vulkan API, with external utility libraries like AutoVK, GLFW, glm and Dear ImGui.
In summary we render the volume by dividing it into a set of slices, with each slice representing a 2D cross section of the volume data, then for each slice we do a backward integration step to compute light directions and intensities and a forward integration step to compute view ray directions.
To store intermediate results we use two sets of 6 buffers and on each iteration we select one set as input and the other as output and swap them at the end of each iteration in a ping-pong fashing. The buffers are as follows:

Initializing the above buffers and the main algorithm are implemented using compute shaders.

Data

<-- TODO -->