Head Scratch Space

Of code and salads. About me

Light Path Guided Culling for Hybrid Real-Time Path Tracing

Rendering visually convincing images requires realistic lighting. Path tracing has long been used in offline rendering to produce photorealistic images. While recent hardware advancements allow ray tracing methods to be employed in real-time renderers, they come with a significant performance and memory impact. Real-time path tracing remains a challenge. We present light path guided culling (LiPaC), a novel culling algorithm for ray tracing that achieves almost optimal culling results by considering the number of light paths encountered by objects....

July 23, 2024

Moin!

Hey there! Lately, I have been reading more and more about visions of what the internet could be. Learning about projects like indieweb, ActivityPub (the protocol behind Mastodon, Lemmy or Pixelfed) and seeing individuals like Molly White pointing out web problems and sketching out possible alternatives really got me hyped about this idea of an internet used for open and independent communication between individuals. The last years, I have been disappointed by many of the online platforms I have been using (Reddit/Twitter/Github/Instagram/Youtube, the list goes on)....

June 12, 2024

The Vulkan Introspection Layer

Debugging Vulkan applications, rendering and general GPU state via capture-based works great. The most commonly used open-source graphics debugger is renderdoc: it allows to capture a rendered frame or manually record a portion of commands submitted to the device and then inspect them, allowing to view the used resources as well as the executed commands in all detail and their effect on GPU state. Additionally, many game engines allow easy and quick introspection by exposing debugging user interfaces that allow to dig into engine state, e....

June 12, 2024

Memory-efficient Real-time Path Tracing for Computer Games

Rendering visually convincing and realistic images requires accurate lighting computation. Path tracing has long been used in offline rendering to achieve this goal. Recent graphics processing unit (GPU) advancements and new sampling algorithms enable path tracing in real-time. This thesis investigates whether real-time path tracing on commodity hardware is feasible for the current generation of video games. We integrate and evaluate a real-time path tracer into an existing game engine and provide an in-depth investigation of performance and memory measurements....

February 19, 2024

Reliable lock-free thread wakeup

Or: How to achieve single lock-free producer, single blocking consumer communication. While writing the AAudio backend for the cubeb library I came across an interesting multithreaded problem. I’m no expert on multithreading and couldn’t find a solution on the internet - maybe because I’m just not knowing the problem’s name? - so solving this on my own was exciting. The problem: To achieve the best audio latency, we register a callback with AAudio in which we render sounds or process input from the microphone....

December 7, 2019