Project Real-Time Occlusion Culling

Prof. Dr. Bernd Fröhlich
Dr. rer. nat. Stephan Beck
M.Sc. Adrian Kreskowski
M.Sc. Carl-Feofan Matthes

DegreeStudy ProgrammeExamination RegulationsECTS
B.Sc.Medieninformatikall15
M.Sc.Computer Science for Digital Mediaall15
M.Sc.Computer Science and Mediaall15
M.Sc.Human-Computer InteractionPV17 and lower15
M.Sc.Human-Computer InteractionPV1912

Description

The term Occlusion Culling refers to real-time rendering techniques which allow for the detection of occluded parts of a virtual scene to avoid costly visualization of those. If Occlusion Culling techniques are applied successfully, the limited bandwidth and computation time available on graphics cards can be used almost entirely for the visualization of potentially visible geometry. This is especially important when scenes are subject to high depth complexity and, as a result, a large part of the scene objects are hidden from most virtual perspectives. A typical example of scenes exhibiting high depth complexity are city models. In those, from almost every perspective a few houses close to a virtual viewer occlude many houses farther away. These occluded houses should not be rendered in the first place, because they do not contribute to the perception of the scene based on the current virtual perspective. The challenge posed by highly depth complex scenes is therefore to identify which houses are occluded such that this information can be used before rendering the scene to alleviate the workload for the graphics card by removing invisible objects. In combination with level-of-detail rendering techniques, Occlusion Culling allows for output-sensitive visualization of virtual scenes in real time, i.e. only objects that are potentially visible are displayed, and only with as much detail as can be perceived for a given screen resolution.

Occlusion Culling techniques are very diverse, ranging from approaches that determine potential visibility offline to algorithms that attempt to reuse information from previously rendered perspectives during run time of the rendering application. Although the approaches are fundamentally different, the common goal is to find a compromise between the computational effort required to detect potential visibility and the accuracy of the visibility determination.

In this project, students will establish a common understanding of the state-of-the-art in the field of Occlusion Culling and, in the following, evaluate the advantages and disadvantages of different approaches in a first prototype in the context of a deferred rendering pipeline. After an initial evaluation, the project participants will integrate the most promising Occlusion Culling solutions into an existing rendering framework. Finally, the Occlusion Culling techniques will be extended, such that the rendering system can check fundamentally different geometry types (triangle meshes, point clouds, etc.) for their visibility at runtime with little effort and visualize them as efficiently as possible.

German Description

Unter dem Begriff "Occlusion-Culling" werden Techniken im Rendering-Bereich zusammengefasst, die es ermöglichen verdeckte Teile einer virtuellen Szene zu erkennen um diese nicht darstellen zu müssen und damit die limitierte Bandbreite und Rechenzeit von Grafikkarten lediglich für sichtbare Geometrie zu verwenden. Dies ist besonders dann entscheidend, wenn Szenen hohe Tiefenkomplexität aufweisen, also viele Objekte in der Szene aus verschiedenen Perspektiven von anderen verdeckt werden. Ein typisches Beispiel für Szenen mit hoher Tiefenkomplexität sind Stadtmodelle. In diesen verdeckt aus nahezu jeder Perspektive ein Haus viele andere Häuser, die dementsprechend nicht gerendert werden müssten. Die Herausforderung ist nun, festzustellen, welche Häuser verdeckt sind, um auf diese Information vor dem eigentlichen Rendering der Szene zugreifen zu können und die Grafikkarte nicht unnötig mit dem Rendering von verdeckter Geometrie zu belasten. In Kombination mit Techniken aus dem Bereich des Level-of-Detail-Renderings ermöglicht Occlusion-Culling ausgabesensitive Visualisierung virtueller Szenen in Echtzeit, d.h. es werden nur Objekte dargestellt, die potenziell sichtbar sind und diese auch nur mit so viel Detail, wie durch eine gegebene Bildschirmauflösung wiedergegeben werden kann.

Das Feld der grundlegenden Occlusion-Culling-Techniken ist groß und reicht von Ansätzen, die potenzielle Sichtbarkeit offline bestimmen, bis hin zu Algorithmen, die während der Laufzeit eines Rendering- Programmes versuchen Information von zuvor gerenderten Perspektiven wiederzuverwenden. Obwohl die Ansätze grundlegend verschieden sind, ist das gemeinsame Ziel einen Kompromiss zwischen benötigtem Rechenaufwand und Genauigkeit der Sichtbarkeitsbestimmung zu finden.

In diesem Projekt werden die Studierenden gemeinsam den Stand der Technik im Bereich Occlusion-Culling aufarbeiten, um anschließend in einer ersten Prototypisierungsphase die Vor- und Nachteile verschiedener Ansätze am Beispiel einer Deferred-Rendering-Pipeline zu evaluieren. Nach einer ersten Auswertung werden die Projektteilnehmer die vielversprechendsten Occlusion-Culling-Varianten in ein existierendes Rendering-Framework integrieren und so anpassen, dass das System verschiedenste Geometrietypen (Dreiecksnetze, Punktwolken, etc.) mit geringem Aufwand zur Laufzeit auf Sichtbarkeit überprüfen und anschließend effizient darstellen kann.

Requirements

  • solid skills of C++ and previous experiences in computer graphics are helpful

Assessment

  • active participation in the project during and in between weekly meetings
  • design, implementation and evaluation of occlusion culling techniques
  • two to three intermediate talks
  • final project presentation
  • documentation