Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 9 » incg_ss2017_2   (Übersicht)

Prüfer: Prof. Stamminger
Dauer: 30 min
Note: 1.0

P: Womit möchten Sie anfangen?
S: Deferred Shading.
P: Was ist Deferred Shading und wozu ist das gut?
S: Klassiches Forward Rendering unflexibel, viele Lichter → schlechte Performance, Overdraw Problem Lösung durch Trennung von Licht- und Geometrieberechnung. Konzept vom G-Buffer Erklärt
P: Wie zeichnet man Lichter nur in ihrem relevanten Bereich?
S: Es gibt so ne Falloff Kurve, man sucht sich nen Schwellwert aus und tut anhand davon sich eine Geometrie zum Bereich eingrenzen aussuchen (Rechteckt, Kreis). Man kann sich Lightvolumes bauen, Da wo Backfaces des Volumes hinter der Welt und Frontfaces vor der Welt liegen wird beleuchtet
P: Die Lichtgeometrie, wo kam die denn noch vor?
S: Man kann auch Lichtkegel bauen (nicht gefragt) oder z.B. bei Shadow Volumes
P: Fangen wir mit der einfachen Variante an, erzählen Sie mal
S: Kurze Erklärung von der Geometrie und wie sie von der Lichtrichtung ins Unendliche projeziert wird. Dreiecke, die zum Licht zeigen bleiben wo sie sind, die anderen werden ins unendliche projeziert. (kurz veranschaulicht mit einer Zeichnung).
P: Wie baut man sich denn die Dreiecke dazwischen in der OpenGL Pipeline?
S: Geometry Shader, man sucht nach den Kanten, wo Dreiecke nach vorne und hinten zeigen. Diese Kanten spannt man zu Flächen ins Unendliche auf. Bestimmung ob Fragment im Schatten oder nicht mittels Zählen im Stencilbuffer. Front Faces der Volumes erhöhen um 1, Backfaces verringern um 1. Wenn Gesammtmenge > 0 ⇒ im Schatten
P: (implizite Frage aus meiner Antowort): Was ist das Problem mit dem einfachen Anstaz:
S: Fängt man im Schatten an, dann passt das Ergebnis des Stencil Buffers nicht –> Idee von z-fail. Man nimmt ne unendliche Back Plane, und beachtet nurnoch die Volumes, die hinter dem Szene liegen. Damit löst sich das Problem
P: Okay, wie gut ist denn die Qualität von den Schatten (Aliasing)?
S: Besser als bei Shadows Maps, da keine Pixelartefakte.
P: Wo wir bei Aliasing wären, wie sieht das denn bei Shadow Volumes aus?
S: Treppenstufen, Minifkation, verglichen mit Shadow Maps
P: Was kann man gegen Treppenstufen (Geometrie Aliasing) generell tun?
S: SSAA, rendern in höherer Auflösung, danach runterrechnen. Sehr teuer aber sieht am besten aus und hiflt bei allen Aliasing Arten. MSAA nen ganzen Brocken effizienter. Fragment Shader nur einmal auswerten, n mal Dreieckschnitt testen und anhand davon die n Farbslots im Framebuffer füllen. Später dann herunterrechnen.
P: Gegen was für Aliasingarten hilft denn das?
S: SSAA gegen alles, MSAA nur gegen Geometrie (dafür quasi genauso gut wie bei SSAA) (hier hätte man vielleicht noch sagen können, dass es auch gegen Flackern bei vielen dicht aneinanderliegenden Kanten hilft, bei sowas versagt Postprocessing-AA)
P: Was für ein Problem gibt es denn so bei MSAA
S: Textur Transparenz (nicht die gewollte Antwort), ich werde wirklich sanft und nett auf das Problem mit dem Sampling Mittelpunkt (außerhalb des Dreiecks) hingeleitet.
P: Was ist denn Shading Aliasing bzw hilft MSAA dagegen?
S: z.B. dünne Licht Highlights (ich zeichne nen Bild mit nem spekularem Highlight auf ner Metallstange). Highlight ist ggf so dünn, dass nicht alle Pixel in der Mitte genau darauf liegen. Somit punkutale Highlights, die nicht durchgezogen sind und nicht richtig aussehen.
P: Okay, das waren jetzt die Verfahren mit mehrfachem Abtasten. Wie sieht es denn mit den Morphologischen aus?
S: MLAA Erklärung mit der schönen Zeichung aus der VL Folie, Kantenerkennung, Z, L, U Shapes. Danach anteiliges Bluren den zwei benachbarten Pixel anhand der rekonstruierten Gerade.
P: Gegen was für Aliasingarten hilft das?
S: Nur gegen Geometrie
P: Temporales Anti Aliasing, was ist denn das eigentlich und wie funktioniert das?
S: Idee von SSAA, jedoch nur in jedem Frame ein unterschiedliches Sample abtasten. Dann das ganze mit den vorherigen Frames mischen.
P: Wie genau bekommt man die Pixelinfos aus dem vorherigen Bild?
S: Reprojektion auf die alten Bilder mittels alter Projektionsmatrizen
P: Was für Probleme gibt es bei der Reprojektion
S: Geometrie, die nicht sicherbar war und jetzt sichtbar ist und umgekehrt kann nicht rekonstruiert werden, Clamping auf umliegende Pixel des Zielbildes sorgt dafür, dass nicht „zu falsche“ Pixel aus vorherigen Berechnungen einbezogen werden. Geometrie kann entweder von außerhalb ins Bild gewandert sein oder von einem anderem Objekt verdeckt worden sein
P: Hilft das gegen Geometrie Aliasing? (Stamminger kennt zu dem Zeitpunkt die Antwort wohl selbst nicht)
S: Ja, weil durchschnittlich der außerhalb und der innerhalb liegenden Teil des Dreiecks mit dem richtigen Verhältnis gemischt wird
P: Und wie siehts mit Shading aus?
S: Wird auch behoben, da auch hier aufgrund der höheren 'virtuellen' Abtastdichte die Wahrscheinlichkeit höher ist, im spekularem Highlight zu liegen.
P: Wie kann man denn die Speicher und Recheneffizienz verbessern, wenn man nicht immer die letzten n Bilder merken will?
S: Moving Exponential Average (Low Pass). Nurnoch das vorherige Bild merken und immer mit einem alpha Anteil den vorherigen Wert mit einbeziehen → Nurnoch ein Bild muss gespeichert bleiben und nur ein Bild muss gemischt und reprojeziert werden.

Ende Gelände

Fazit:
Im Endeffekt sehr angenehme Atmosphäre, Stamminger stellt alle Fragen selbst. Es wurde an keiner Stelle nach Formeln gefragt.
Ist wohl auch nicht schlimm, wenn man mal kurz Begriffe verwechselt, insofern man sich danach selbst korrigiert. Wenn man selbst ein bisschen Ahnung hat und was man weiß erklären kann, geht die Zeit wirklich wie im Flug vorbei.

Das Protokoll ist nicht ganz zu 100% genau. Es kann sein dass die Reihenfolge nicht ganz stimmt oder manches nicht ganz passt, aber ich hab so ziemlich alles aufgelistet, an was ich mich so unmittelbar danach erinnern konnte.