Übungen: Gemischt & Grundlagen
Gemischte Aufgaben quer durch den Kurs, mit Schwerpunkt auf den Grundlagen aus Kapitel 1 (Einfuehrung: Computergrafik vs. Bildverarbeitung, Rasterisierung, Raytracing) und Kapitel 2 (Grafische Objekte: Punkte/Kanten/Dreiecke, Koordinatensysteme, Primitive, Szenengraph). Dazu einige kapiteluebergreifende Items, die Farbe (color), Transformationen (transformations) und Bildverarbeitung (image processing) verknuepfen. Multiple-Choice, Verstaendnisfragen und kleine Rechnungen. Jede Loesung nennt die volle Begruendung, einen Kapitelverweis und typische Fehler.
Beginner
Aufgabe 1 (Beginner) - Synthese vs. Analyse (MC)
Welche Aussage beschreibt die Computergrafik / Bildsynthese (computer graphics / image synthesis) korrekt?
- A) Sie geht vom (realen) Bild aus und erzeugt eine Beschreibung des Bildinhalts.
- B) Sie geht von einer Bildbeschreibung aus und faerbt algorithmisch die Pixel ein.
- C) Sie macht ein vorhandenes Bild lediglich heller (einfache Manipulation).
- D) Sie zaehlt Objekte in einem Mikroskopbild.
Lösung anzeigen
Richtig: B.
Computergrafik ist die Richtung Bildbeschreibung -> Bild, also das algorithmische Einfaerben der Pixel (Synthese). Die umgekehrte Richtung, Bild -> Beschreibung, ist die Bildverarbeitung / Bildanalyse (image processing / image analysis).
- A) beschreibt die Bildverarbeitung (Analyse), nicht die Synthese.
- C) beschreibt die Bildbearbeitung (image editing, z. B. ein Bild heller machen), die klar von der informationsextrahierenden Bildverarbeitung abzugrenzen ist.
- D) (Bakterien/Objekte zaehlen) ist eine Analyseaufgabe, also Bildverarbeitung.
Verbindendes Element beider Richtungen ist stets das Pixel (picture element).
Typischer Fehler: Synthese und Analyse (bzw. deren Richtungen) verwechseln. Merke: Grafik faerbt ein, Verarbeitung wertet aus.
Kapitelverweis: Kapitel 1 - Einfuehrung
Aufgabe 2 (Beginner) - Haendigkeit der Koordinatensysteme (MC)
In einem rechtshaendigen Koordinatensystem (right-handed coordinate system) mit nach rechts und nach oben: Wohin zeigt die positive -Achse, und welches Grafik-API nutzt diese Konvention standardmaessig?
- A) In den Bildschirm hinein; OpenGL.
- B) Aus dem Bildschirm zum Betrachter heraus; OpenGL.
- C) Aus dem Bildschirm zum Betrachter heraus; DirectX.
- D) In den Bildschirm hinein; DirectX.
Lösung anzeigen
Richtig: B.
Rechtshaendig bedeutet: zeigt zum Betrachter heraus (aus dem Bildschirm). Das ist der Standard in OpenGL. Ein linkshaendiges Koordinatensystem (left-handed) hat in den Bildschirm hinein (weg vom Betrachter) und ist z. B. der Standard in DirectX.
Die Haendigkeit legt neben der -Richtung auch den Drehsinn fest.
Typischer Fehler: Haendigkeit und -Richtung vertauschen. Eselsbruecke: rechts = z kommt zu dir heraus.
Kapitelverweis: Kapitel 2 - Grafische Objekte
Aufgabe 3 (Beginner) - Deprecated OpenGL-Primitive
Nenne die drei Basisbausteine, aus denen jedes grafische Objekt letztlich aufgebaut wird. Welche der folgenden OpenGL-Primitive sind seit OpenGL 3.0/3.1 deprecated bzw. removed: Triangle Strip, Quad, Triangle Fan, Polygon, Quad Strip?
Lösung anzeigen
Basisbausteine: Punkte (points), die mit Kanten (edges) zu Dreiecken (triangles) verbunden werden. Aus dieser Kette Punkte -> Kanten -> Dreiecke werden alle Formen (Wuerfel, Kugel, Torus, Schachfiguren ...) approximiert (Dreiecksgitter / triangle mesh).
Deprecated/removed: Polygon, Quad und Quad Strip. Sie sind in OpenGL 3.0 deprecated und ab OpenGL 3.1 entfernt (removed). Modernes OpenGL baut alles aus Dreiecken auf.
Weiterhin gueltig (nicht deprecated): Triangle, Triangle Strip, Triangle Fan (sowie Points, Lines, Line Strip, Line Loop).
Tipp: Merke dir die Faustregel "alles Vierecke/Vielecke raus, Dreiecke rein". Wer noch
GL_QUADSoderGL_POLYGONals "modern" ansieht, tappt in die Falle.
Kapitelverweis: Kapitel 2 - Grafische Objekte
Fortgeschritten
Aufgabe 4 (Fortgeschritten) - Rasterisierung vs. Raytracing
Erklaere den grundlegenden Richtungsunterschied zwischen Rasterisierung (rasterization) und Raytracing (ray tracing). Wer geht von wo aus? Nenne je einen charakteristischen Effekt/Zusatzschritt.
Lösung anzeigen
Rasterisierung (vertex-/objektbasiert, vorwaerts): Geht von den Objekt-Eckpunkten (vertices) aus. Zwei Schritte:
- Projektion: die Eckpunkte des 3D-Dreiecks werden ueber ein Projektionszentrum auf Pixel der Bildebene (viewplane) abgebildet.
- Fuellen (fill): aus den Eckpixeln werden die uebrigen Dreieckspixel bestimmt und eingefaerbt.
Charakteristischer Nebeneffekt: Aliasing (Treppeneffekt) an schraegen Kanten.
Raytracing (pixel-/bildbasiert, rueckwaerts): Geht vom Auge/der Kamera aus. Von der virtuellen Kamera werden Sehstrahlen (view rays) durch die Bildebene in die Szene verfolgt. Trifft ein View Ray ein Objekt, wird ein Shadow Ray (Schattenstrahl) zur Lichtquelle geschickt, um Schatten zu bestimmen.
Merksatz: Rasterisierung: Objekt-Eckpunkte -> Pixel (vorwaerts). Raytracing: Pixel/Auge -> Szene (rueckwaerts). Raytracing (und die Variante Path Tracing) liefert physikalisch realistischere Beleuchtung (Spiegelungen, indirekte Beleuchtung), ist aber rechenintensiver.
Typischer Fehler: Glauben, Raytracing gehe von den Objekt-Eckpunkten aus. Falsch: die Strahlen gehen von der Kamera aus; die eckpunktbasierte Methode ist die Rasterisierung.
Kapitelverweis: Kapitel 1 - Einfuehrung
Aufgabe 5 (Fortgeschritten) - Rechteck aus Koordinaten (Rechnung)
Gegeben sind vier Eckpunkte (vertices) eines Rechtecks in der /-Ebene:
a) Berechne Breite und Hoehe. b) Wo liegt der Mittelpunkt? c) Ist der Umlauf im oder gegen den Uhrzeigersinn, und was bedeutet das in OpenGL?
Lösung anzeigen
a) Breite und Hoehe:
b) Mittelpunkt: Das Rechteck ist symmetrisch um den Ursprung. Kontrolle ueber den Durchschnitt gegenueberliegender Ecken:
Der Mittelpunkt liegt im Ursprung .
c) Umlaufrichtung: (unten-links) -> (unten-rechts) -> (oben-rechts) -> (oben-links) laeuft gegen den Uhrzeigersinn (counter-clockwise, CCW). In OpenGL ist CCW die Standard-Orientierung der Vorderseite (front face).
Tipp: Fuer Breite/Hoehe immer die Differenz der jeweiligen Koordinate gegenueberliegender Ecken nehmen, nicht den absoluten Zahlenwert einer einzelnen Ecke.
Kapitelverweis: Kapitel 2 - Grafische Objekte
Aufgabe 6 (Fortgeschritten) - Szenengraph: Knoten und DAG-Vorteil
Der Szenengraph (scene graph) verwaltet komplexe Szenen. a) Nenne die mindestens drei Knotentypen. b) Was unterscheidet einen Baum (tree) von einem gerichteten azyklischen Graphen (DAG)? c) Worin liegt der zentrale Vorteil des DAG?
Lösung anzeigen
a) Knotentypen (node types):
- Gruppen (group nodes),
- Geometrien (geometry, inkl. Materialeigenschaften),
- Transformationen (transformation nodes).
Weitere Eigenschaften: der Szenengraph ist gerichtet, azyklisch, heterogen; die darstellbaren Primitive (Geometrie) liegen in den Blaettern (leaves).
b) Baum vs. DAG:
- Baum: jeder Knoten hat genau einen Elternknoten.
- DAG (directed acyclic graph): ein Knoten darf mehrere Eltern haben, aber es gibt keine Zyklen (azyklisch).
c) Vorteil des DAG: Instanzierung (instancing / reuse). Eine Geometrie wird nur einmal erzeugt (eingelesen) und ueber verschiedene Transformationen mehrfach verwendet. Das spart Speicher und Ladezeit. Beispiel Pinguin: dasselbe Dreieck-Primitiv wird fuer Fluegel und Fuesse mehrfach mit unterschiedlichen Transformationen instanziert.
Typischer Fehler: Baum und DAG gleichsetzen oder den Instanzierungs-Vorteil nicht nennen koennen. Der springende Punkt ist "einmal einlesen, mehrfach verwenden".
Kapitelverweis: Kapitel 2 - Grafische Objekte
Anspruchsvoll
Aufgabe 7 (Anspruchsvoll) - Faltung am Bildrand (Rechnung)
Ein Mittelwertoperator / Box blur (mean filter) mit normiertem -Kernel wird angewendet. Betrachtet wird ein einzelnes weisses Pixel mit Wert , das direkt am Bildrand liegt, sodass nur 8 der 9 Kernelpositionen im Bild liegen (die 9. faellt aus dem Bild). Die restlichen abgedeckten Pixel sind schwarz .
a) Welchen Ergebniswert liefert die Faltung an dieser Stelle? b) Warum tritt dieses Randproblem ueberhaupt auf, und warum verwendet man ueblicherweise ungerade Kernelgroessen?
Lösung anzeigen
a) Rechnung. Von den 8 im Bild liegenden Positionen traegt nur das weisse Zentrum () bei, die uebrigen sind . Der Kernel normiert dennoch mit :
Liegt das weisse Pixel dagegen so, dass es selbst mit acht weissen Nachbarn erfasst wird und nur eine Position aus dem Bild faellt, ergibt sich
Entscheidend: der Normierungsfaktor bleibt fest, obwohl nur 8 Positionen tatsaechlich im Bild liegen. Dadurch wird der Rand systematisch zu dunkel, wenn man die fehlende Position einfach als zaehlt.
b) Randproblem und ungerade Kernelgroesse. Am Bildrand ragt der Kernel ueber das Bild hinaus, es fehlen Nachbarpixel (moegliche Abhilfen im Kurs: Rand ignorieren, mit Konstante auffuellen usw.). Ungerade Kernelgroessen (, , ) waehlt man, weil es dann genau ein Zentrum (central pixel) gibt, das eindeutig durch das Ergebnis ersetzt wird. Bei gerader Groesse laege das Zentrum zwischen vier Pixeln und das Bild wuerde sich um einen halben Pixel verschieben.
Typischer Fehler: Die Kernel-Normierung an die Zahl der tatsaechlich abgedeckten Pixel anpassen (also durch 8 statt durch 9 teilen), ohne dass die Aufgabe das vorgibt. Standard ist der feste Normierungsfaktor der Blur-Kernel (Summe = 1 fuer Helligkeitserhalt).
Kapitelverweise: Kapitel 1 - Einfuehrung und Kapitel 12 - Lokale Operatoren
Aufgabe 8 (Anspruchsvoll) - 90-Grad-Rotation eines Vertex (Rechnung)
Ein Vertex soll um um die -Achse gedreht werden (mathematisch positiver Drehsinn). a) Stelle auf und berechne . b) Wieso wirkt diese Rotation nur "richtig", wenn der Punkt bezueglich des Ursprungs gedreht werden soll, und was tut man sonst?
Lösung anzeigen
a) Rotationsmatrix und Rechnung. Mit und :
Also . Kontrolle: eine -Drehung um bildet die -Richtung auf die -Richtung ab, also : . Passt.
b) Bezug zum Ursprung. Rotation (und Skalierung) wirken immer relativ zum Ursprung. Soll ein Objekt um einen anderen Referenzpunkt (reference point) gedreht werden, nutzt man den dreistufigen Algorithmus: erst in den Ursprung verschieben, dann rotieren, dann mit zurueckschieben:
Typischer Fehler: Beim (und ) steht oben rechts. Vor allem bei ist es umgekehrt ( oben rechts, unten links) - hier kommt es haeufig zu Vorzeichenfehlern.
Kapitelverweis: Kapitel 5 - Transformationen
Aufgabe 9 (Anspruchsvoll) - RGB nach HSV (Rechnung)
Gegeben eine Farbe im Wertebereich : (also , , ). Berechne Value , Saturation und den ungefaehren Hue .
Lösung anzeigen
Schritt 1 - Extremwerte: (das ist ), (hier ).
Schritt 2 - Value (groesste Komponente):
Schritt 3 - Saturation:
Schritt 4 - Hue: Das Maximum liegt im gruenen Kanal. Der Farbwinkel fuer reines Gruen ist
Da Rot und Blau exakt gleich gross sind (), liegt der Farbton genau auf der Gruen-Achse, ohne Verschiebung Richtung Gelb () oder Cyan ().
Ergebnis: - ein kraeftiges, aber nicht voll gesaettigtes Gruen.
Typischer Fehler: als Mittelwert der Kanaele berechnen. Falsch: . Und nutzt das --Verhaeltnis, nicht die Summe.
Kapitelverweis: Kapitel 10 - Farbraeume
Klausur-Niveau
Aufgabe 10 (Klausur-Niveau) - Cross-Topic: Farbe, Grauwert und Kantenfilter
Ein kleines Bild enthaelt eine gelbe Flaeche. a) Ein Pixel leuchtet mit , , - welche Farbe entsteht, und warum (additive Mischung)? b) Rechne diesen Pixel (Werte im Bereich ) in seinen Grauwert ueber die YCbCr-Helligkeitsgewichtung um. c) Wird nun ein Laplace-Kantenfilter auf eine homogene (gleichfarbige) Region dieses Grauwertbildes angewandt - welches Ergebnis erhaelt man dort, und warum?
Lösung anzeigen
a) Additive Mischung. RGB ist additiv (Licht/Display). Blau fehlt (), nur Rot und Gruen leuchten in gleicher, hoher Intensitaet. Rot + Gruen ergibt additiv Gelb. Der Pixel ist also gelb.
b) Grauwert (Y-Kanal). Mit , , :
Der Grauwert betraegt (auf skaliert etwa ). Die hohe Gruen-Gewichtung () traegt am staerksten bei, weil das menschliche Auge fuer Gruen am empfindlichsten ist.
c) Laplace auf homogener Flaeche. Die Laplace-artigen Kantenfilter haben eine Kernel-Summe von 0 (hier ). In einer homogenen Region sind alle Nachbarwerte gleich (nennen wir sie ):
Das Ergebnis ist 0 (dunkel). Erst an Kanten (starke Wertunterschiede) liefert der Filter stark positive/negative Werte und hebt sie hervor. So verbindet sich die Kette Farbe -> Grauwert -> Kantendetektion.
Typischer Fehler: Bei den Blur-Kerneln ist die Summe 1 (Helligkeitserhalt), bei den Laplace-Kantenfiltern jedoch 0. Wer beide verwechselt, erwartet in homogenen Flaechen ein falsches Ergebnis.
Kapitelverweise: Kapitel 1 - Einfuehrung, Kapitel 10 - Farbraeume und Kapitel 12 - Lokale Operatoren
Aufgabe 11 (Klausur-Niveau) - Cross-Topic: CMY-Negation und Skalierung abseits des Ursprungs
a) Ein Bildschirmfarbwert ist . Rechne ihn in CMY um und nenne, ob RGB additiv oder subtraktiv ist und wozu CMY dient. b) Ein achsenparalleles Objekt reicht auf der -Achse von bis und wird mit dem Faktor skaliert. Wo liegt es danach, und welches typische Problem zeigt sich? Wie behebt man es?
Lösung anzeigen
a) CMY-Umrechnung. CMY ist das negierte RGB (Wertebereich ): , , .
Also . RGB ist additiv (Licht, selbstleuchtende Displays: mehr Licht = heller). CMY ist subtraktiv (Pigment/Druck: mehr Pigment = dunkler) und dient der Ausgabe auf Druckern.
b) Skalierung abseits des Ursprungs. Skalierung ist nur gegenueber dem Nullpunkt invariant. Sie multipliziert alle Koordinaten mit , also auch die Positionskoordinaten:
Das Objekt reicht danach von bis . Es ist zwar dreimal so breit geworden (vorher Breite , nachher Breite ), hat aber zugleich seine Position geaendert - es ist vom Ursprung weggewandert.
Behebung: Objekt zuerst in den Ursprung translieren, dann skalieren, dann zuruecktranslieren (), oder Objekte gleich um den Ursprung modellieren.
Typischer Fehler: Vergessen, dass Skalierung (und Rotation) auf den Ursprung bezogen sind. Ein nicht im Ursprung definiertes Objekt "wandert" ungewollt mit.
Kapitelverweise: Kapitel 10 - Farbraeume und Kapitel 5 - Transformationen (Grundlage bereits in Kapitel 2)
Aufgabe 12 (Klausur-Niveau) - Gemischte Zuordnung (MC, mehrere richtig)
Welche der folgenden Aussagen sind korrekt? (Mehrfachauswahl moeglich.)
- A) Das verbindende Element von Computergrafik und Bildverarbeitung ist das Pixel.
- B) Path Tracing ist eine Variante des Ray Tracing und liefert realistische Spiegelungen und indirekte Beleuchtung, ist aber rechenintensiv.
- C) Im Szenengraphen liegen die Transformationsknoten in den Blaettern und die Geometrie in der Wurzel.
- D) Ein Convolutional Neural Network (CNN) besteht aus gelernten Faltungsmatrizen; der Convolution/Pooling-Teil ist die Feature Extraction, der Fully-Connected-Teil die Classification.
- E) Modernes OpenGL (3.1+) baut Objekte aus Dreiecken auf; Quad und Polygon sind entfernt.
Lösung anzeigen
Richtig: A, B, D, E. Falsch: C.
- A) Richtig. Der Kern der Vorlesung lautet "(fast) immer um Pixel"; das Pixel verbindet Synthese und Analyse.
- B) Richtig. Path Tracing ist eine Ray-Tracing-Variante. Vorteile: realistische Spiegelungen (reflections), indirekte Beleuchtung (indirect illumination). Nachteile: verfahrensbedingte Unschaerfe (Sampling-Rauschen) und hoher Hardware-Anspruch.
- C) Falsch. Umgekehrt: Die Geometrie (bzw. die darstellbaren Primitive) liegt in den Blaettern (leaves). Die Wurzel steht fuer die Gesamtszene; Transformations- und Gruppenknoten liegen dazwischen.
- D) Richtig. Ein CNN ist ein Netzwerk aus gelernten Faltungsmatrizen. Convolution + ReLU + Pooling = Feature Extraction; Fully Connected = Classification.
- E) Richtig. Ab OpenGL 3.1 sind Polygon, Quad und Quad Strip entfernt; modernes OpenGL nutzt Dreiecke.
Typischer Fehler: Beim Szenengraphen die Ebenen vertauschen. Merke: Geometrie in den Blaettern, Szene in der Wurzel.
Kapitelverweise: Kapitel 1 - Einfuehrung und Kapitel 2 - Grafische Objekte