Information

  • Publication Type: Master Thesis
  • Workgroup(s)/Project(s):
  • Date: October 2020
  • Date (Start): 19. March 2019
  • Date (End): 15. October 2020
  • Diploma Examination: 19. November 2020
  • First Supervisor:
  • Keywords: Rendering, Ray Tracing, RTX, Quake III

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

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/",
}