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

CG/InCG/GlobIllum

Pruefer: Prof. Stamminger
Pruefungsatmosphaere war sehr entspannt, erstmal allgemeines Unterhalten bevor die Pruefung losging, aber das kann man hier ja in absolut jedem Protokoll nachlesen ;)

CG

  • Malt Dreieck: Also fangen wir mit der Ueberraschungsfrage an: Was ist das Rasterisierungsproblem und wie loest man's am Beispiel von dem Dreieck? (Entweder Bresenham + Seed-Fill oder Scanline)
  • Warum wenn dann Bresenham? (Huebsch schnell, kann man mit ausschliesslich Integer-Operationen implementieren)
  • Warum dann Scanline und nicht einfach immer Bresenham + Seed-Fill? (Seed-Fill ist nicht so huebsch, sehr tiefe Rekursion moeglich, Scanline is da toller)
  • Wie geht Scanline? (Wer das nicht kann hat verloren…)
  • Wie macht man da dann das Shading beim Scanline-Algorithmus? (War Pseudo-Transfer, erstmal Gouraud-Shading und Phong-Shading an sich erklaeren, dann wollte er hoeren dass man bei Scanline natuerlich nicht mit baryzentrischen Koordinaten interpoliert sondern erst entlang der Kanten und dann auf der aktuellen Scanline)
  • Was muss man beim Phong-Shading denn beim Interpolieren beachten? (Interpolation der Normalen veraendert deren Laenge, muss man renormalisieren)
  • Was muss man denn im allgemeinen sonst noch interpolieren? (Stand ich erst kurz aufm Schlauch, fuers Licht is ja nu alles da. Er hat dann gemeint „Wenn wir da nun nen z-test machen wollen?“ und schon war klar dass er die interpolierten z-werte hoeren wollte)
  • Worauf muss man beim interpolieren der texturkoordinaten aufpassen? (Perspektivische Verzerrung)
  • Warum? (kleines bildchen hingemalt mit ner schraeg zur kamera ausgerichteten ebene und gesagt dass die textur natuerlich linear auf der flaeche und nicht linear auf der auf die near plane projizierten flaeche verteilt werden muss)
  • Muss man auf die perspektive nicht auch beim Shading aufpassen? (Eigentlich schon, macht aber keiner weil man den Fehler fast nicht sieht)
  • worauf muss man dann aufpassen wenn man ne grosse, extrem schraeg zur kamera gerichtete flaeche texturiert? (Aliasing)
  • Wie loest man das (Mipmapping, wie funktionierts usw.)
  • Warum macht man da ne trilineare interpolation? (Weil man natuerlich nur extremst selten exakt auf nem mipmap-level rauskommt als „ideal gesampelte“ version der textur und deswegen dazwischen noch interpoliert)
  • Jetzt texturieren wir mal beim Raytracing, wie laeuft das erstmal prinzipiell? (Halt primaerstrahl vom auge in die szene, sekundaerstrahlen am ersten schnittpunkt mit der szene)
  • Was macht man mit den sekundaerstrahlen? (Schattenbestimmung, Lichtbestimmung und so)
  • Wenn jetzt der Strahl irgendwo auf so ein Dreieck faellt, woher bekommt man die Normale? (Interpolation ueber baryzentrische Koordinaten)
  • Und die Texturkoordinaten? (Auch interpolation baryzentrische Koordinaten, und ob man da auf die Perspektive aufpassen muss? Natuerlich nicht, ist ja schon im richtigen space)
  • Wie bestimmt man denn beim Raytracing das Mipmap-Level? (Ueber die Laenge des Augstrahls und die Flaeche die der „nach hinten“ projizierte Pixel auf dem Objekt ueberdeckt)
  • Dann wollt er noch die Formel und welcher Winkel was beeinflusst beim Phong Shading. Bocksimpel, ich hatte aber da grade nen totalen Haenger und hab quasi alles falsch gesagt *g*
GlobIllum
  • Wenn wir schon beim Raytracing sind gehen wir gleich zur globalen Beleuchtung (Malt Kamera, Objekt und Flaechenlichtquelle). Wie sieht denn da jetzt die Formel aus um auf nem Punkt auf dem Objekt die Beleuchtung zu bekommen? (Gleich die Flaechenparameterisierte Variante der Rendering-Gleichung hingeschrieben)
  • Wenn man das auswertet macht man das natuerlich nicht direkt sondern nimmt lieber die Monte-Carlo-Integration. Wie schaut das dann aus? (Halt erklaert dass man zufaellige Abtastsamples auf der Lichtquelle nimmt (bei Standard-MC) und ueber die dann summiert)
  • Da bekommt man ja dann irgendein beliebiges Abtastmuster raus. Wie kann man das besser verteilen? (z.B. Poisson Disk Sampling, Quasi-MC)
  • Was macht man bei Quasi-MC? (Pseudo-Zufallszahlenfolge wie Halton-Sequenz zur Generierung der Abtastpunkte verwenden)
  • Und wenn man da jetzt ne stark glaenzende BRDF hat, was kann man dann noch besser machen? (Importance Sampling ueber BRDF)
  • Was wird dann aus der Rendering-Gleichung? (Nimmt man wieder die „normale“ Version statt der Flaechenparameterisierung und schmeisst die BRDF raus, weil man die als Verteilungsfunktion fuer die Samples benutzt und damit implizit drin hat)
InCG
  • Jetzt machen wir Spiegelungen und Schatten in Realtime. Welche Annahmen hat man da fuer Spiegelungen? (Gespiegelt wird immer nur von einem Punkt innerhalb des Objekts aus, Objekt muss also deutlich kleiner als der Rest der Szene sein und irgendwas anderes war noch was mir grad dank „es is vorbei“-Bier nicht mehr einfaellt)
  • Wie macht man da diffuse Spiegelungen? (Man interpoliert einige Werte um den getroffenen herum in der environment map)
  • Dann Schatten, wie kann man die so machen? (Planare Schatten: Simpel aber zu krasse Einschraenkungen –> Shadow Maps oder Shadow Volumes)
  • Also Shadow Maps, wie macht man die? (Rendern der Szene aus Sicht der Lichtquelle, kopieren des Z-Buffers in eine Textur, dann Schattenvergleich)
  • Was koennen da fuer unangenehme Effekte auftreten? (Aliasing halt)
  • Wie interpoliert man da dann um's wegzubekommen? (Nicht die Tiefenwerte in der Shadow Map sondern die Ergebnisse des Shadow Tests fuer die Pixel aussenrum, nennt sich dann Percentage Closest Filtering)
  • Wie macht man Flaechenlichtquellen in Realtime? (Da hat man halt dann auch weiche Schatten, entweder man approximiert ueber mehrere Punktlichtquellen die Flaeche (Aufwaendig –> Performance geht in den Keller) oder man macht Penumbra Maps)