Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 9 » Allgemein
Allgemein
Entspannte Atmosphäre (wie von anderen auch schon berichtet). Die meisten Fragen sind 1:1 auf den Vorlesungsfolien beantwortet gewesen. Zudem gab es noch ein paar schwierigere Verständnisfragen.
Themenverteilung war ein bisschen chaotisch. Lag aber vielleicht daran, dass ich in meinen Antworten teilweise schon die (offensichtliche) Follow-up Frage angeschnitten habe.
Konnte die meisten souverän beantworten. Bei Environment Mapping kam ich allerdings ein bisschen ins stocken. Note: 1,7
Protokoll
<Prüfer zeichnet Skizze>
Prüfer: Wir wollen jetzt das direkte Licht in dieser Szene berechnen. Schreiben Sie doch mal das Rendering Equation Integral auf.
Antwort: <Integral siehe Folien>
Prüfer: Wir hatten noch eine andere Form dieses Integrals.
Antwort: Parametrisierung auf Lichtoberfläche hingeschrieben und erklärt. Neue Terme die dazu gekommen sind: V(x, y) (Visibility check) sowie G(x, y, w_in) (Geometric Term). Wir brauchen den Geometric Term um vom Integral auf der Lichtoberfläche wieder auf unsere Hemisphere umzurechnen.
Prüfer: Nehmen wir an wir haben eine diffuse Fläche. Welche Form ist besser wenn das Licht klein ist?
Antwort: Das zweite Integral (entspricht Importance Sampling der Lichtquelle)
Prüfer: Wir können dieses Integral jetzt nicht direkt berechnen, was machen wir?
Antwort: Monte-Carlo Integration hingeschrieben. Dazu das Integral durch ein Summenzeichen austauschen und mit 1/n gewichten ;)
Prüfer: Für welche BRDF wäre nun das erste Integral besser?
Antwort: Hier war ich kurz verwirrt. Nach dem Hinweis, dass es praktisch das Gegenteil ist habe ich einen „perfekten“ Spiegel geantwortet. Zudem habe ich noch argumentiert, dass hier das erste Integral auch schlecht ist, da wir hier immer noch uniform samplen und bei einem Spiegel sollten wir nach der BRDF samplen. Das war die korrekte Antwort und mir wurde nicht übel genommen, die Frage nicht sofort verstanden zu haben.
Prüfer: Um einen Punkt auf der Lichtquelle zu bestimmen, müssen wir samplen. Welche Verfahren haben wir da kennegelernt?
Antwort: Random, Uniform Grid, Stratified, Latin Hypercube, Poisson Disk sowie Pseudo-Random (Halton) erklärt. Hierbei habe ich nur Latin Hypercube aufgemalt, da dieses einfacher aufzumalen ist als zu erklären. Bei Poisson Disk war meine Antwort nicht zufriedenstellend (Samples ziehen bis wir alle Löcher größer Konstante `r` gestopft haben). Richtig wäre gewesen, dass wir Samples abweisen, die zu nah an einem bisherigen Punkt sind.
Prüfer: Bei Rechtecken ist das samplen einfach. Was ist wenn wir jetzt ein andere Form (z.B. Dreieck) hätten?
Antwort: Wir müssen entweder umparametrisieren (habe erklärt, dass man das Dreieck wieder in ein Rechteck transformieren kann indem man es in der Mitte zerschneidet). Dann ist mir jedoch aufgefallen, dass dies vermutlich nicht das beabsichtigte Verfahren war. Habe dann also Rejection Sampling erklärt.
Prüfer: Und wie bestimmen wir eine zufällige Richtung auf der Hemisphere?
Antwort: Parametrisierung mit Winkel phi und Höhe z erklärt. Habe außerdem erklärt, warum die Parametrisierung mit zwei Winkeln problematisch ist (Flächen nicht gleich groß)
Prüfer: Wie würden wir denn jetzt Importance Sampling der BRDF machen?
Antwort: Probability Distribution Function (pdf) erklärt.
Prüfer: Wie beziehen wir die pdf in unser Integral ein?
Antwort: Wir müssen die BRDF durch die pdf teilen.
Prüfer: Und wie würden wir anhand der pdf unsere Sampling Richtung bestimmen? Rejection Sampling hatten wir vorhin schon, wir hatten da auch noch ein inversions Verfahren?
Antwort: Da gibt es eine kontinuierliche und eine … (Name entfallen, wäre diskrete Variante gewesen :/)
Prüfer: Erklären Sie doch mal die kontinuierliche Variante. Die diskrete Variante schauen wir uns vielleicht später noch an.
Antwort: Cumulative Wahrscheinlichkeitsverteilung (Integral über p(x)) aufgezeichnet und erklärt, dass wir über die Y-Koordinate samplen. Daher führen hohe Werte der pdf zu hoher Steigung im Integral, weshalb Y-Koordinaten in diesem Bereich auf nahegelegene X-Koordinaten abgebildet werden.
Prüfer: Nehmen wir an unsere Szene ist in einer Environment Map, wenn wir jetzt Raytracing machen, dann haben wir kleine Lichtpunkte (Rauschen) im Bild. Woran liegt das?
Antwort: Das liegt an der High Dynamic Range (HDR). Die Lichtwerte in der Natur sind viel größer als unser Wertebereich am Bildschirm. Daher hat ein Lichtstrahl mit wenig Gewichtung immer noch viel mehr Einfluss als ein kleineres Licht mit viel Gewichtung. Hier würde ich mittels Tone-Mapping die Lichtwerte aus der Environment Map in unseren Bildschirm Farbraum umrechnen.
Prüfer: Was wenn wir aber im Integral mit physikalischen Licht Einheiten rechnen möchten?
Antwort: Hier wusste ich die Antwort nicht. Die Lösung wäre gewesen, Importance Sampling auf der Environment Map zu machen (bezüglich der Helligkeit).
Prüfer: Wie würden wir das machen?
Antwort: Hier hatte ich keine Ahnung. Nach dem Hinweis, dass die diskrete Inversionsvariante von oben der Schlüssel ist habe ich die kurz erklärt.
Prüfer: Und wie würden wir das auf unser Bild anwenden? Wenn wir zum Beispiel dieses Bild haben (zeichnet 1-D Array mit Helligkeitswerten)?
Antwort: Die Pixel sind bereits unsere diskreten Rechtecke. Die Höhe eines Rechtecks entspricht der Helligkeit des Pixels.
Prüfer: Jetzt gehen wir mal zum eigentlichen Thema der Vorlesung, der indirekten Beleuchtungsberechnung. Was ist denn Pathtracing?
Antwort: eigene Skizze aufgemalt. Den Weg eines Strahls erklärt (mehrere Bounces)
Prüfer: Wie lange machen wir die Pfade?
Antwort: So lange wie wir wollen :) Entweder wir hören nach N-Reflektionen auf oder wir verwenden etwas wie Russian Roulette.
Prüfer: Was ist denn das Problem wenn wir nach N Schritten aufhören?
Antwort: Manche Effekte treten nur nach mindestens X Schritten auf.
Prüfer: Genau, Russian Roulette hat hier den Vorteil, dass wir theoretisch beliebig lange Pfade haben und daher solche Probleme nicht auftreten.
Prüfer: Wie müssen wir denn die Pfade unterschiedlicher Länge gewichten?
Antwort: Hier wusste ich die Antwort nicht. Richtig wäre gewesen, dass längere Pfade mehr Gewicht haben als kürzere. Z.B. wenn wir eine 50/50 Chance haben den Strahl zu terminieren, muss der zusätzliche Bounce doppelt so viel Einfluss haben wir der abgebrochene Strahl.
Prüfer: Ein Strahl, der kein Licht trifft hat auch keinen Einfluss auf unser Bild. Was kann man da machen?
Antwort: Next Event Estimation erklärt.
Prüfer: <Skizze von einem Raum mit (halb-) offener Tür und Licht außerhalb des Raumes aufgemalt>. In diesem Beispiel würde uns Next Event Estimation auch nicht helfen. Was tun wir hier?
Antwort: Bidirectional Pathtracing erklärt. Habe mehrere Strahlen von Licht und Kamera eingezeichnet und dann „Verbindungslinien“ gezeichnet.
Prüfer: Wie müssen wir hierfür unser Integral anpassen? Wie berechnen wir den throughput?
Antwort: Hier bin ich nur auf den Geometric Term gekommen. Nach zwei Hinweisen bin ich darauf gekommen, dass die BRDF an beiden Punkten (letzter Kamera & Licht hit) sowie der Shadow Ray (Visibility Check) noch gemeint waren.
Prüfer: Jetzt kann man die Lichtstrahlen nur einmal berechnen und daraus Virtual Point Lights machen. Wie funktioniert das?
Antwort: Many Lights Methode erklärt.
Prüfer: Was ist das Problem mit dieser Methode?
Antwort: Sie erzeugt kleine Lichtpunkte in den Ecken (Rendering Artefakte)
Prüfer: Das könnten wir beheben indem wir sehr viele Virtuelle Lichter erzeugen, z.B. 100 000. Ist das performant?
Antwort: Nein, da wir N Kamera Strahlen und M Lichtpfade haben, daher skaliert das „quadratisch“ (eigentlich falscher Begriff, da N und M zwei verschiedene Größen sind. War aber OK)
Prüfer: Damit ist auch schon unsere Prüfungszeit um. (Nach kurzer Besprechung war es dann Note 1,7)