Academic Work

PACMCGIT Paper - I3D 2021

Guided Visibility Sampling++

Abstract: Visibility computation is a common problem in the field of computer graphics. Examples include occlusion culling, where parts of the scene are culled away, or global illumination simulations, which are based on the mutual visibility of pairs of points to calculate lighting. In this paper, an aggressive from-region visibility technique called Guided Visibility Sampling++ (GVS++) is presented. The proposed technique improves the Guided Visibility Sampling algorithm through improved sampling strategies, thus achieving low error rates on various scenes, and being over four orders of magnitude faster than the original CPU-based Guided Visibility Sampling implementation. We present sampling strategies that adaptively compute sample locations and use ray casting to determine a set of triangles visible from a flat or volumetric rectangular region in space. This set is called a potentially visible set (PVS). Based on initial random sampling, subsequent exploration phases progressively grow an intermediate solution. A termination criterion is used to terminate the PVS search. A modern implementation using the Vulkan graphics API and RTX ray tracing is discussed. Furthermore, we show optimizations that allow for an implementation that is over 20 times faster than a naive implementation.
Master's Thesis (C++, Vulkan, GLSL)

Visibility Precomputation with RTX Ray Tracing

In the scope of my Master's thesis I've worked on improving Guided Visibility Sampling, a technique for visibility precomputation from a region. The result of my thesis is an improved version called Guided Visibility Sampling++ which I've also published as a PACMCGIT paper.
Bachelor's Thesis + Short Paper (C++, OpenGL, GLSL)

Semantic Screen-Space Occlusion for Multiscale Molecular Visualization

In the scope of my Bachelor's thesis I've worked on a multiscale molecular visualization framework developed at my university. I've implemented various techniques like Screen-Space Directional Occlusion and hard shadows in order to reduce the visual clutter by selectively applying them depending on the level of zoom and the molecule semantics.

University Projects

Graphics Demo (C++, OpenGL, GLSL)


Brechpunkt is a rendering demo written in C++ and OpenGL from scratch. I've developed it with a colleague of mine in the scope of the Real-Time Rendering course at TU Wien where we won the first place: Hall of Fame. The following effects have been implemented:
  • Screen-Space Directional Occlusion
  • Screen-Space Reflection
  • Refractive Materials
  • GPU Particles
  • Bloom
  • Depth of Field
Android Game (Java)

Towards the Light

Towards the Light is a fast-paced Android game with simple controls.
Game (C++, OpenGL, GLSL)

Gi's Awakening

Gi's Awakening is a short platformer I have developed with a colleague of mine. The game has been developed in C++ and OpenGL from scratch. The following effects have been implemented:
  • Cacaded Shadow Maps
  • Bloom
  • CPU Particles
Experimental Multiplayer Game (C#, Unity, Virtual Reality)


Zugdingerl is a small multiplayer game where a player with a virtual reality headset and one player with a Leap Motion handtracking device collaborate to drive a train. I've developed the game with a colleague of mine using Unity (C#).

Misc. Projects

Shaders (GLSL)

Shadertoy Shaders

In my spare time I like to experiment with shaders on Shadertoy from time to time. For instance, I've written a path tracer and a shader where I've rendered a scene via ray marching.