Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 9 » Prüfungsprotokoll CG, 17. März 2010   (Übersicht)

Prüfungsprotokoll CG, 17. März 2010

Hier auch von mir eine kurze Zusammenfassung über die mündliche Prüfung im Fach Computer Graphics (7,5 ECTS Variante). Die genaue Reihenfolge der Fragen weiss ich nicht mehr, ich werd einfach alles aufschreiben, was mir noch einfällt :-)

Prüfer: Dr. Grosso

Beisitzer: Prof. Greiner

Ergebnis: 1.0

Anmerkungen: Prüfer und Beisitzer sind beide super faire Prüfer und die Atmosphäre war sehr angenehm. Die Nervosität ist sehr schnell verflogen. In meinem Fall war es so, dass Herr Grosso die Fragen gestellt hat und mir eher selten geholfen hat, Herr Greiner dagegen mehr „auf meiner Seite“ war… Ach ja, es liegen Blätter und Stifte da. Zeichnet so viel wie möglich auf, erstens geht dabei Zeit drauf und zweitens hilft es einem selbst wirklich sehr. Manchmal waren Sie nach einer einfachen Zeichnung schon zufrieden und ich musste gar nichts mehr erklären.


  • Was ist Raytracing? Ich habe erstmal erklärt, wie es in der Realität abläuft, also Photonen werden von Lichtquellen (Sonne) ausgesandt und nur ein sehr geringer Teil landet letztendlich in unserem Auge. Deswegen macht mans in der Computergrafik effizienter, „backward“, d.h. man verfolgt den Strahl, der im Auge ankommt zurück. Also Start beim Auge, pro Pixel auf dem Bildschirm (mindestens) ein Strahl, Schnittpunkt mit erstem Objekt berechnen, Sekundärstrahlen: Schattenstrahl zur Lichtquelle (bzw zu den Lichtquellen), wenn dieser Strahl ein Objekt schneidet, bevor er bei der Lichtquelle ist heißt das: Objekt ist im Schatten, ansonsten muss man die Beleuchtung berechnen (hier sind wir zu Phong Lighting übergegangen, dazu später). Dann gibts noch den Reflektionsstrahl (Einfallswinkel gleich Ausfallswinkel) und den Transmissionsstrahl (nur falls Objekt transparent (Glaskugel z.B.)). Hier sollte ich dann noch die Refraktion erklären, d.h. ich hab kurz die Fresnel-Terme genannt und diese „Snells-Descartes-Law“ oder wie auch immer das heißt. Also ich den Namen gesagt hatte meinte Herr Grosso, das ist schon OK ;-) Ach und Raytracing ist rekursiv. Das war auch noch wichtig! Abbruchbedingungen: entweder eine maximale Rekursionstiefe festlegen oder ab einer bestimmte „Intensität“ abbrechen, also falls der Sekundärstrahl die Farbe am aktuellen Pixel nur noch um wenige Prozent ändern würde kann mans auch gleich sein lassen. Sieht trotzdem fast realistisch aus.
  • Raytracing-„Optimierungen“: Das große Problem beim Raytracing sind die vielen (seeeehr vielen) Schnittpunktberechnungen. Da wollte er erstmal drauf hinaus, was der Primärstrahl eigentlich ist, also einfach eine Gerade, die durch das Auge A geht, z.b. Primärstrahl = A + t*richtungsvektor, eine Geradengleichung eben. Nächste Frage war dann: Wie schneidet man eine Gerade mit einer Ebene. Das hab ich in dem Moment irgendwie nicht auf die Reihe gekriegt ;-) War aber scheinbar nicht so schlimm. Dann gings um Bounding Boxes, Hierarchical Bounding Boxes, Space Partitioning (uniform, bzw. octree), und Kd-Bäume. Es wäre sinnvoll gewesen, den Algorithmus zu kennen, wie Octrees aufgebaut werden, am besten dazu mal die Folien im Skript durchlesen, dachte eigentlich das kommt eh nicht dran, hab mich wohl getäuscht.. Wusste nur, das ein Objekt o in mehreren Blättern vorkommen kann.
  • Line Clipping: Über uniform space partitioning sind wir irgendwie zu line clipping gekommen. Wie genau die Überleitung war hab ich vergessen, war auf jeden Fall ne relativ knifflige Denkfrage. Erstmal die beiden Standardverfahren: Cohen-Sutherland und alpha-Clipping. Bei Cohen-Sutherland eben erklären, wie man auf die outcodes von einem Punkt kommt, trivial accept (outcode(A) ODER outcode(B) == 0) und trivial reject (outcode(A) UND outcode(B) != 0) kurz genannt usw.. Bei alpha clipping sind wir ganz kurz und nur sehr oberflächlich den Algorithmus zusammen durchgegangen.
  • Phong Lighting: Zunächst habe ich die allgemeine Formel hingeschrieben. Also L = Lamb + Ldiff + Lspec. Dann wollte ich anfangen zu erzählen, für was die Summanden stehen. Herr Grosso hat mich hier unterbrochen, die Formel selbst noch einmal hingeschrieben: L = kamb*Iamb + … und wollte von mir wissen, was jeweils das k und das I bedeuten. k ist Eigenschaft der Oberfläche, I ist Eigenschaft des Lichts. k ist immer zwischen 0 und 1, usw. Sachen wie nshiny (Phong Keule), Lambert's Cosine Law, usw. haben ihn bei mir in der Prüfung gar nicht interessiert ;-) Aber das war sicher nicht bei allen so.
  • Farbmodelle: Am Ende gings noch kurz um Farbmodelle. Hab gesagt es gibt z.B. RGB und CMY, da hat er mich unterbrochen und gemeint ich soll den RGB-Würfel malen. Dann auch noch den CMY-Würfel. (Übt vorher 3D-Würfel zu zeichnen!!! ;-))
  • RGB-Farbmodell: Ich sollte dann sagen wo die Regenbogenfarben und Graustufen sind (im RGB-Würfel): Graustufen: die Diagonale von Schwarz nach Weiss, d.h. die Werte für R, G und B sind immer gleich! Regenbogenfarben: Entlang der Kanten des Würfels laufen, Schwarz und Weiss allerdings NICHT passieren. Es ist also eher kompliziert, mit dem RGB Farbmodell die Regenfarben algorithmisch „auszulesen“ → Überleitung zu…
  • HSB/HSV-Farbmodell: Hier kriegt man die Regenbogenfarben ganz leicht, einfach Saturation und Brightness/Value auf 1, das einzige was sich ändert ist der „hue-Winkel“, … Ich hab kurz diesen Hexa-dings aufgezeichnet und Hue, Saturation und Brightness/Value auf dem Bild gezeigt: Hue ist der Winkel, Saturation … (steht ganz gut im Skript)

Also man muss schon gut vorbereitet sein und alles verstanden haben wenn man eine gute Note will. Dann sollte bei diesen Prüfern auf jeden Fall die 1 vorm Komma möglich sein. Immer viel zeichnen und beim Zeichnen auch immer (auch die trivialen Sachen) sagen, was man eigentlich zeichnet und dann gehen die 30 Minuten auch sehr schnell vorbei. Viel Erfolg!