Ensuring the Effectiveness of CHC++ in Vulkan

Information

Abstract

Real-time occlusion culling is a valuable tool to increase the performance of real-time rendering applications by detecting and removing invisible geometry from the rendering pipeline. Through new rendering Application Programming Interface (API) like Vulkan and modern hardware, these culling algorithms can become even more powerful. This thesis tries to ensure and evaluate the performance of Coherent Hierarchical Culling Revisited (CHC++) in this new environment by performing various optimisations to the algorithm. The changes include the batching of consecutive draw-calls and occlusion queries into single GPU-queue submits to reduce the overhead on the CPU and GPU. Additionally, the support for alpha blended transparent objects was added to the algorithm, which allows for correct culling and rendering of these objects. The algorithm performs great in environments with high occlusion and does not degrade in performance in the worst case scenario. But the high performance increase of the original implementation could not be replicated, which is attributed to the difference in rendering APIs and hardware improvements.

Additional Files and Images

Additional images and videos

Additional files

Weblinks

No further information available.

BibTeX

@bachelorsthesis{pernsteinre_jakob_2020_eechc,
  title =      "Ensuring the Effectiveness of CHC++ in Vulkan",
  author =     "Jakob Pernsteiner",
  year =       "2020",
  abstract =   "Real-time occlusion culling is a valuable tool to increase
               the performance of real-time rendering applications by
               detecting and removing invisible geometry from the rendering
               pipeline. Through new rendering Application Programming
               Interface (API) like Vulkan and modern hardware, these
               culling algorithms can become even more powerful. This
               thesis tries to ensure and evaluate the performance of
               Coherent Hierarchical Culling Revisited (CHC++) in this new
               environment by performing various optimisations to the
               algorithm. The changes include the batching of consecutive
               draw-calls and occlusion queries into single GPU-queue
               submits to reduce the overhead on the CPU and GPU.
               Additionally, the support for alpha blended transparent
               objects was added to the algorithm, which allows for correct
               culling and rendering of these objects. The algorithm
               performs great in environments with high occlusion and does
               not degrade in performance in the worst case scenario. But
               the high performance increase of the original implementation
               could not be replicated, which is attributed to the
               difference in rendering APIs and hardware improvements.",
  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 =   "culling, real-time, GPU",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2020/pernsteinre_jakob_2020_eechc/",
}