Real-Time Ray Tracing in Quake III

Information

Abstract

This work discusses the extension of the popular Quake III game engine using real-time raytracing. It investigates how ray tracing can be implemented using the most recent graphics card generation by NVIDIA, which offers dedicated hardware support and acceleration via an new API. In addition, strategies will be discussed about how offline ray-tracing algorithms can be transformed to an online real-time context.

In order to implement ray tracing, Quake III needs to be extended with a Vulkan backend. Next, distributed ray tracing is implemented and is used to render the whole game world except for the user interface (UI) elements. The UI will be handled by the rasterizer.

The performance and efficiency of ray tracing in a game engine using the RTX hardware features is analyzed and discussed. The focus lies on how quality and performance relate to each other, and how far ray tracing can be pushed with still acceptable frame rate of around 30/60 frames per second. Furthermore, implementation strategies that improve the quality, performance or both will be discussed.

Additional Files and Images

Additional images and videos

Additional files

Weblinks

No further information available.

BibTeX

@mastersthesis{lipp-2019-rtxq3,
  title =      "Real-Time Ray Tracing in Quake III",
  author =     "Lukas Lipp",
  year =       "2020",
  abstract =   "This work discusses the extension of the popular Quake III
               game engine using real-time raytracing. It investigates how
               ray tracing can be implemented using the most recent
               graphics card generation by NVIDIA, which offers dedicated
               hardware support and acceleration via an new API. In
               addition, strategies will be discussed about how offline
               ray-tracing algorithms can be transformed to an online
               real-time context.  In order to implement ray tracing, Quake
               III needs to be extended with a Vulkan backend. Next,
               distributed ray tracing is implemented and is used to render
               the whole game world except for the user interface (UI)
               elements. The UI will be handled by the rasterizer.  The
               performance and efficiency of ray tracing in a game engine
               using the RTX hardware features is analyzed and discussed.
               The focus lies on how quality and performance relate to each
               other, and how far ray tracing can be pushed with still
               acceptable frame rate of around 30/60 frames per second.
               Furthermore, implementation strategies that improve the
               quality, performance or both will be discussed.",
  month =      oct,
  address =    "Favoritenstrasse 9-11/E193-02, A-1040 Vienna, Austria",
  school =     "Research Unit of Computer Graphics, Institute of Visual
               Computing and Human-Centered Technology, Faculty of
               Informatics, TU Wien",
  keywords =   "Rendering, Ray Tracing, RTX, Quake III",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2020/lipp-2019-rtxq3/",
}