Details

VU, 186.166, 2019W

Harald Steinlechner

Hot Links

This course page describes the lecture of Wintersemester 2019/2020. See list of other semesters.

News

The lecture is over. Happy hacking - for further questions please consult us via the gitter chat chat or via email (rendEng @ vrvis.at).

Letzte Abhaltung

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

Materials

Teaser slides
Lecture 14.10.19 - Organization
Lecture 14.10.19 - Vorbesprechung UE
Lecture 14.10.19 - Introduction and Motivation
Lecture 21.10.19 - Graphics APIs and Insights, Optimization Techniques for Rendering Engines
Lecture 21.10.19 - Lecture Recording
Lecture 28.10.19 - Scene representation
Lecture 28.10.19 - Lecture Recording
Lecture 28.10.19 - Additional Material - Semantic Scene Graph Paper
Lecture 28.10.19 - Additional Material - Lazy Incremental Computation for Efficient Scene Graph Rendering
Lecture 04.11.19 - Applied Datastructures for Rendering Engines
Lecture 04.11.19 - Lecture Recording
Lecture 11.11.19 - Deep Dive Aardvark
Lecture 11.11.19 - Additional Material: Attribute Grammars for Incremental Additional Material: Attribute Grammars for Incremental Scene Graph Semantics
Lecture 11.11.19 - Lecture Recording
Lecture 18.11.19 - Low-level Optimization techniques and Insights
Lecture 18.11.19 - Dynamic Scenes, Rendering VM
Lecture 18.11.19 - Lecture Recording
Lecture 18.11.19 - Additional Material: An Incremental Rendering VM
Lecture 25.11.19 - DSLs for Rendering Engines
Lecture 25.11.19 - DSLs for Shading
Lecture 25.11.19 - Lecture Recording
Lecture 25.11.19 - Additional Material: CoSMo: Intent-basedCompositionofShaderModules
Lecture 02.12.19 - Materials and Lights for Rendering Engines
Lecture 02.12.19 - Lecture Recording
Lecture 09.12.19 - Real-time Shading System and Global Illumination
Lecture 09.12.19 - Lecture Recording
Lecture 20.01.19 - Lecture on Benchmarking Strategies, Pitfalls etc.

Status and upcoming lectures

Typically mondays, 16:15(s.t.), We start on Monday, 14th of October. Upcoming lectures:

  • 14.10.2019 - Organization, Introduction
  • 21.10.2019 - Optimization techniques for rendering engines
  • 28.10.2019 - Scene representation
  • 04.11.2019 - Applied Data Structures
  • 11.11.2019 - Representing fully dynamic scenes, Aardvark Tutorial
  • 18.11.2019 - Optimization techniques for fully dynamic scenes
  • 25.11.2019 - Domain Specific Languages for Rendering Engines, Composable Shaders
  • 02.12.2019 - Materials and Lights for Rendering Engines
  • 09.12.2019 - Shading System and Global Illumination
  • 20.01.2019 - 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: 14.10.2019
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.