VU Entwurf und Programmierung einer Rendering-Engine

WS 2.0, 186.166
TISS

Harald Steinlechner

News

In today's lecture we will brievly recapitulate important topics and provide the possibility to ask lecture and project related questions. Please also use the gitter chat for discussing potential project ideas (especially students using the aardvark rendering engine).

Letzte Abhaltung

Neuauflage von Robert F. Tobler's Vorlesung! Die Unterlagen der letzten Abhaltung sind hier zu finden: Entwurf und Programmierung einer Rendering-Engine 2017

Materials

Teaser slides
Lecture 08.10.18 - Organization
Lecture 08.10.18 - Introduction and Motivation
Lecture 15.10.18 - Scene Representation
Paper slides (15.10.18) - Semantic Scene Graph
Paper 15.10.18 - Semantic Scene Graph, 15.10.18
Paper 22.10.18 - Lazy Incremental Computation for efficient Scene Graph Rendering
Paper slides (22.10.18) - Lazy Incremental Computation for efficient Scene Graph Rendering
Lecture 22.10.18 Hardware, Graphics APIs and Insights
Lecture 29.10.18 Data and Rendering Engines
Lecture 05.11.18 Vorbesprechung UE
Lecture 05.11.18 Aardvark - Deep Dive
Lecture 12.11.18 Low Level Optimizations and Insights for Rendering Engines
Lecture 12.11.18 Incremental Rendering VM
Paper 12.11.18 - An Incremental Rendering VM
Lecture 19.11.18 - Domain Specific Languages for Rendering Engines
Additional material: Attribute Grammars for Efficient Scene Graph Rendering (preprint paper, to appear)
Lecture 19.11.18 - Shaders in FShade
Lecture 26.11.18 - Materials and Lights
Lecture 10.12.18 - Real-time Shading System and Global Illumination
Lecture 14.01.19 - Wrap up, Q/A

Status and upcoming lectures

Upcoming lectures (preliminary):
  • 08.10.2018 - Organization, Introduction
  • 15.10.2018 - Scene representation
  • 22.10.2018 - Optimization techniques for rendering engines
  • 29.10.2018 - Applied Data Structures
  • 05.11.2018 - Representing fully dynamic scenes, Aardvark Tutorial, Vorbesprechung UE
  • 12.11.2018 - Optimization techniques for fully dynamic scenes
  • 19.11.2018 - Domain Specific Languages for Rendering Engines, Composable Shaders
  • 26.11.2018 - Materials and Lights for Rendering Engines
  • 17.12.2018 - Shading System and Global Illumination
  • 14.01.2018 - Questions regarding the lecture/project
For the demo of your project we provide two systems at VRVIs (if you don't use a laptop):
  • Win10, VisualStudio 2015 (or 2017), GeForce GTX 1080 (*2), i7-4930K @ 3.4GHz, 32GB Ram
  • Antergos Linux, GeForce GTX 970, i5, 16GB Ram

The LV Team

The Aardvark Platform Team in alphabetical order: Georg Haaser, Christian Luksch, Stefan Maierhofer, Harald Steinlechner, Attila Szabo.

Topics of this lecture

  • Requirements for the design of rendering engines
  • Hardware and Graphics APIs (OpenGL, Direct3D, Vulkan,..)
  • Scene Representation (Scene graphs, display lists, command buffers,...)
  • Static and Dynamic Data (Incremental Update Techniques)
  • Optimizations (Caching, Culling, Level of Detail, Bounding Volume Hierarchies, Just-In-Time Optimization)
  • Resource Management
  • Domain Specific Languages (HLSL, Spark, FShade, Semantic Scene Graph,..)
  • Reusable Components/Design for Rendering Engines

Allgemeine Information

Vorlesungszeiten

Ort: Seminarraum 186
Beginn: 08.10.2018
Zeit: Montag 16:15 (s.t.) - 17:45

Kurzfassung

Die VU Entwurf und Entwicklung einer Rendering Engine gibt einen systematischen Überblick über die wichtigsten Konzepte und Tradeoffs, die es bei der Entwicklung moderner Rendering Engines zu berücksichtigen gilt.

Alle Konzepte werden sowohl anhand der theoretischen Grundlagen auf Basis relevanter wissenschaftlicher Literatur erläutert, als auch praktisch auf Basis aktueller Rendering Engine Implementierungen demonstriert.

Die Lehrveranstaltung beginnt mit der Vorstellung verschiedenster Anwendungs- und Einsatzgebiete von Rendering Engines und gibt einen Überblick über die sich daraus abzuleitenden, oftmals konkurrierenden, Anforderungen an die Systemarchitektur und Komponenten, sowie daraus resultierenden Tradeoffs. Ausgehend von existierenden Hardware- und Softwareschnittstellen werden weiters technische Rahmenbedingungen und Limitierungen geklärt und den konkurrierenden Anforderungen Effizienz, Benutzbarkeit und Softwarequalität gegenübergestellt.

Darauf basierend wird im weiteren Verlauf der Lehrveranstaltung ein großer Bogen über wesentliche Komponenten von Renderingsystemen gespannt, beginnend bei der Szenenrepräsentation, dem unterschiedlichen Umgang mit statischen und sich dynamisch stark ändernden Daten, über eine Vielzahl von Optimierungstechniken, über Resource Management für out-of-core Datensätze, bis hin zu DSLs (domain-specific languages) und deren Auswirkungen auf Performance, Korrektheit und Produktivität.

Die Lehrveranstaltung schließt mit einer Diskussion verschiedener Designmöglichkeiten für flexible Rendering-Engine-Architekturen ab.