Inhaltsverzeichnis

Interaktive Computergrafik

Allgemeines

Lockerer Umgang. Faire Benotung. Manchmal werden Dinge vorgezeichnet, oder man soll Dinge zeichnen. Glücklicherweise muss es nicht gut aussehen ;)

Ablauf

F: Wir haben in InCG viele schöne Sachen gemacht. Über welches Thema möchten Sie denn etwas erzählen?
A: ???

F: Schatten hatten wir heute schon öfter, vielleicht mal etwas anderes?
A: Field of Depth

F: Das war jetzt ja schon sehr detailliert, aber wenn man es einfach (mit Gauß-Filter) macht, welches Problem hat man dann?
A: Verwaschen der Linien → Bilateral Filtering

F: Bitte beschreiben
A:

F: Das funktioniert auch mit gleichen Farben bei den Kanten, warum?
A: Für Wertebereich auch Tiefenpuffer verwenden.

F: Anderer Ansatz für Depth of Field?
A: Multi-Layered-Filtering: Per-Pixel-Linked-List

F: Wie funktioniert das?
A: Buffer mit Startpositionen pro Pixel, Buffer für Knoten (Farbe, Tiefe, Next), atomarer Zähler für „Speicherverwaltung“, Sortierung nach dem „Zeichnen“

F: Und wie funktioniert das mit Deferred Shading?
A: G-Buffer muss Per-Pixel-Linked-List beinhalten, Farbberechnung der einzelnen Layer erst im zweiten Pass.

F: Warum eigentlich Deferred Shading?
A: Fragment Shader oft Flaschenhals, häufige Berechnung, trotz Wegwerfen (aufgrund anderer überlappender Geometrie) vieler Ergebnisse → nur einmal Beleuchtungsberechnung für jedes Pixel.

F: Welche Möglichkeiten gibt es noch alles für Transparenz?
A: A-Buffer (Kanonen auf Spatzen), Alpha-Blending (benötigt Ordnung der Polygone, u.U. mehr Renderpasses nötig), Depth Peeling

F: Wie funktioniert Depth Peeling?
A: Solange bis man nichts mehr gezeichnet hat:

F: Deferred Shading liefert uns auch Vorteile beim Zeichnen von Spotlights. Warum? Wie funktioniert das?
A: Kegel für Licht „zeichnen“ (mit Tiefenpuffer und Framebuffer Read-Only), aber Stencilbuffer verwenden:

F: An was erinnert das?
A: An Shadow Volumes:

F: Warum kann man das nicht wie beim Lichtkegel machen
A: Verschachtelungen…

F: Geht das auch mit Spotlights?
A: Ja, aber Sonderfall: Objekt außerhalb des Kegels → immer verschattet.

F: Und mit direktionalem Licht?
A: Andere Richtung der Vertices nach Unendlich.

F: Was müssen die Objekte für Eigenschaften haben?
A: Äh, vollständig? (Wasserdicht, war das richtige Wort)

F: Was benötigen Grafikkarten um Shadow Volumes performant umzusetzen?
A: Hohe Füllraten.

F: Wie funktioniert Tesselation?
A: Unterteilung in mehrere andere Flächen; Angabe der Flächen außen und innen im Tesselation Control Shader

F: Bitte mal hier unterteilen?
A: Ganz grob… (Beisitzer meinte, passt schon, Stamminger meinte, es muss uniform sein…)

F: Warum kann man die Unterteilung für jede äußere und für die inneren Kanten getrennt angeben?
A: Vermeidung von Crunches, z.B. bei Level of Detail

F: Was kommt danach?
A: Tesselation Evaluation Shader: „Vertexshader“ für neue Vertices, z.B. für Bézier-Kurven.

F: Oder?
A: Displacement-Mapping (erklärt)

F: Warum verbindet man es meistens mit Normalmapping?
A: Da habe ich eher Vektordisplacements erklärt, im Nachhinein kam heraus, dass etwas anderes gemeint war: Beim reinen Berechnen der neuen Normalen bei Displacement Mapping kann es bei adaptiven Level of Detail zu „Wackeln“ der normalen (wohl wieder ein Aliasing Problem) kommen, dass man durch Normalmapping umgehen kann. War aber nicht schlimm.