Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 9 » incg_ss2015

Prüfungsprotokoll InCG 2015 (September) - 5 ECTS

Prüfer: Prof. Stamminger

Dauer: 30 min

Note: 1.x


Anmerkungen:

Atmosphere sehr angenehm und entspannt. Prof. Stamminger ist ein sehr freundlicher und ruhiger Prüfer. Thematisch kann absolut ALLES drankommen, selbst Kapitel, die weniger relevant bzw. grob behandelt wurden. Es wird dementsprechend dann aber auch weniger in die Tiefe gegangen. Programmierübungen sind Pflicht, um InCG ablegen zu können, bringen meiner Meinung nach aber eher wenig für die Prüfung. Es ist sehr vorteilhaft, viel selbst zu erklären und sich nicht alles aus der Nase ziehen zu lassen. Falls am Ende für ein Thema keine Zeit mehr bleibt, ist das nicht schlimm (anders als z.B. bei Prof. Philippsen ;-) )


Prüfungsprotokoll

Im Folgenden ein stark gekürzter Dialog zwischen Prüfer (P) und Student (S).

P: Wie funktioniert eine Grafikkarte allgemein?

S: Besteht aus SMX, Prozessoren teilen sich innerhalb eines SMX alle Ressourcen und arbeiten nach SIMD-Prinzip, das heißt linearer Kontrollfluss ist gut, stark verzweigter Kontrollfluss schlecht, weil ein Teil der Kerne sinnlose Rechnungen durchführt.

P: Warum ist das für Grafik so gut?

S: Weil man viele Operationen auf allen Vertices / Pixeln / Primitives durchführt und diese Berechungen (meist) völlig unabhängig voneinander sind.

P: In InCG geht es um coole Effekte, beispielsweise haben wir Depth of Field behandelt. Wie macht man das?

S: <Erklärt, wodurch DoF entsteht (Linse statt Pinhole)> Trivialer Ansatz ist Ray Tracing mit mehreren Augstrahlen durch die Linse, ist aber sehr aufwändig. Alternativer Ansatz ist Post Processing, also mittels Tiefenwerte den CoC berechnen und Pixel dementsprechend blurren. Problem hierbei, dass man Hinter- und Vordergrund vermischt.

P: Wie löst man das?

S: Mittels Bilateral Filterung, also nicht in der Domain, sondern in Domain und Range filtern.

P: Erklären sie das mal genauer!

S: <Domain und Range Filtering erklärt> Kombination aus beidem ergibt Bilateral Filtering.

P: Was ist noch problematisch beim Blurring für DoF?

S: Dadurch, dass es Post Processing ist, kennt man nur den vordesten Pixel, die Linse bewirkt aber, dass man auch Dinge dahinter sieht.

P: Wie löst man das?

S: Man braucht auch Informationen über die verdeckten Objekte, die könnte man beispielsweise über Depth Peeling ermitteln.

P: Genau, da kann man dann so Layered Approaches machen. Gut, ansonsten haben wir uns viel mit Schatten beschäftigt. Erklären Sie mal wie eine Shadow Map funktioniert.

S: <Standard Shadow Map erklärt>

P: Was ist wenn der Tiefenwert von einem zu zeichnenden Pixel kleiner ist als der Wert in der Shadow Map?

S: Kann „eigentlich“ nicht auftreten, ist ein Problem der Float Precision und lässt sich mittels glPolygonOffset in den Griff bekommen.

P: Waren das alle Probleme?

S: Nein, es gibt auch noch Aliasing. <Aliasing erklärt>

P: Wie macht man es besser?

S: Grundproblem ist geringe Auflösung der Shadow Map, aber Auflösung erhöhen ist keine Lösung. Daher viele andere Ansätze, zum Beispiel Cascaded Shadow Maps.

P: Erklären Sie mal! S: <Cascaded Shadow Map erklärt>

P: Gut, Filtern wär ja auch noch eine Möglichkeit, oder?

S: Ja, aber Vorfiltern, d.h. Mipmapping geht nicht. Wir haben zum Beispiel Percentage-Close-Filtering implementiert. <PCF erklärt>

P: Geht Mipmapping also gar nicht?

S: Doch, beispielsweise mittels Variance Shadow Maps. <Variance Shadow Maps erklärt>

P: Gehts noch besser?

S: Ja mit Convolution Shadow Maps. <Convolution Shadow Maps erklärt>

P: Haben wir jetzt Soft Shadow?

S: Nein, weil wir alles gleichmäßig blurren, Soft Shadows werden aber härter, je näher man am Objekt ist

P: Gut, für Soft Shadows haben wir jetzt aber keine Zeit mehr.


Fazit:

Ich bin mit der Note sehr zufrieden, die Prüfung war sehr fair!