Computeranimation Flashcards
Welche Faktoren muss der Algorithmus zum Rastern von Linien erfüllen?
- gibt an welche Pixel „gefärbt werden
- effizient und einfach zu implementieren
- treffendes Ergebnis liefern und konstante Helligkeit, unabhängig von Steigung berechnen
Wie funktioniert der Basisalgorithmus?
Was sind seine Nachteile?
Anzahl der Schritte in X-Richtung wird mit Steigung pro Schritt multipliziert und y-Achsenabschnitt wird addiert. Der Wert wird anschließend gerundet:
y = m * x + B
Nachteile:
- Wenn Steigung größer als 1 oder -1 muss Fallunterscheidung stattfinden
- Bei Jedem Schritt ist Multiplikation und Addition nötig, Wert wird anschließend gerundet
Wie funktioniert der inkrementelle Algorithmus?
Was sind Vor-/ bzw. Nachteile?
Nächster Wert berechnet sich aus vorherigem Wert auf welchen Steigung pro Schritt addiert wird.
Yi+1 = Yi + m
Vorteil:
- keine Multiplikation mehr nötig
Nachteil:
- Fallunterscheidung zwischen m <= 1 und m>1 ist nötig, da dann nicht mehr Xi+1 = Xi +1 gilt.
(Nächstes Pixel muss dann möglicherweise direkt über dem vorigen gezeichnet werden.)
Wie funktioniert der Bresenham Algorithmus?
Was sind Vor-/ Nachteile?
Unterscheidet in jeder Spalte nur zwischen 2 Pixeln:
Ost-Pixel -> E
Nord-Ost-Pixel -> NE
Ergebnismöglichkeiten anhand der Entscheidungsvariable d:
Linie auf Mittelpunkt: d = 0 -> E
Linie über Mittelpunkt: d > 0 -> NE
Linie unter Mittelpunkt: d < 0 -> E
Wenn E gewählt wurde:
d neu = d alt + a
Wenn NE gewählt wurde:
d neu = d alt + (a+b)a + b = dy -dx
Vorteile:
- Nur ganzzahlige Addition nötig
- Keine Muliplikation, nur Rundung
- sehr effizient
Probleme aller Algorithmen:
- Intensität der Geraden je nacht Steigung unterschiedlich
Was ist Aliasing und wann tritt es auf?
Verfälschung von analogen Signalen, wenn bei Wandlung zu diskreten Signalen das Shannon`sche Abtasttheorem nicht eingehalten wird:
Abtastfrequenz >=
2 x max.Frequenz von Ausgangssignal
-> Lösung ist Low-Pass Filter, um die zu hohen Frequenzen im Ausgangssignal herauszufiltern.
Verschlechterung der Bildqualität
Wie äußert sich Unterabtastung beim Wandel von analogen zu diskreten Signalen?
Wie kann es verhindert werden?
Aliasing: Schwarz-Weiß-Schachbrett-Muster wird z.B. grau (Mittelwert)
Lösung:
- Bereichsmittelwerte ohne Gewichtung: Bestimmt durch einen Überlappungsbereich über die Intensität der Pixel. Dadurch entsteht ein geringerer Kontrast zwischen benachbarten Pixeln.
- Bereichsmittelwerte mit Gewichtung: Die Gewichtungsfunktion bzw. Filterfunktion ist ein Kegel, die Intensität eines Pixels hängt vom Teilvolumen des Kegelschnitts ab.
- Auflösung: Eine doppelte Auflösung führt zu einem besseren Ergebnis, ist jedoch vergleichsweise sehr teuer.
Welche Möglichkeiten gibt es bei der Approximation von Kurven?
Möglichkeiten für Approximation:
Polynome, Splines, kubische Splines, Bezierkurven, B-Splines, Nurbs
Welche Grade der Stetigkeit gibt es bei der Approximation von Kurven?
C0 Stetigkeit: Bei auftretenden Splines (selbe Funktionswerte zweier Kurven) ergeben sich harte Ecken
C1 Stetigkeit: Bei identischen Funktionsweiten gleicht sich die erste Ableitung, die 2. Ableitung unterscheidet sich jedoch.
C2 Stetigkeit: Bei identischen Funktionswerten gleicht sich sowohl die erste, als auch die zweite Ableitung
-> C1 Stetigkeit beim Zeichnen von Kurven wünschenswert
Wie lassen sich mit Polynomen Kurven approximieren
Durch n Stützpunkte lassen sich Polynome n-1-ten Grades legen.
Nachteil: die Kurve oszilliert um die Stützpunkte.
Was sind Splines?
Splines sind stückweise polynomielle Kurven.
Mit polynomen ersten Grades sind nur gerade Linien möglich
Mit Polynomen zweiten Grades (Parabeln) stoßen Splines in Ecken aufeinander:
C0 Stetigkeit
Mit Polynomen dritten Grades erzeugt man kubsiche Splines, diese liefern schöne Ergebnisse (C2 Stetigkeit), allerdings sind die Berechnungen zu aufwändig
Was sind Bezierkurven?
Jedes Kurvensegment besteht aus vier Punkten 2 Stützpunkte für Anfang und Ende, sowie 2 Kontrollpunkte für den Kurvenverlauf. Es kann jede beliebige Kurve dargestellt werden.
Kurve liegt innerhalb der Hülle der Kontrollpunkte:
- Im Anfangs- /Endpunkt ist die Kurve tangential zum Kontrollpolygon
- C1 Stetigkeit an den Verbindungspunkten der Kurvensegmente durch Ausrichtung der Tangenten
- Nur globale Kontrolle des Kurvensegments
Was sind B-Splines?
Verallgemeinerung von Bezier-kurven mit C(k-2 Stetigkeit, mit einem Ziel: Nicht alle Stützpunkte sollen Einfluss auf den gesamten Kurvenverlauf habenund der Grad der Polynome soll unabhängig von der Anzahl der Stützpunkte sein. (Lokale Kontrolle)
Werden berechnet wie Bezierkurven, die Punkte werden mit den zugehörigen Polynomen verrechnet und miteinander aufaddiert. k wird vom User gesetzt, bei Bezierkurven ist k gegeben.
Nurbs (non-uniform rational basis splines) sind eine Erweiterung der B-Splines. Mit ihnen sind genaue Abbildungen eines Kreises möglich.
Non-uniform: Der Abstand zwischen den Werten des Kontrollvektors ist ungleichmäßig
rational: Der EInfluss eines Kontrollpunktes wird über ein Gewicht gesteuert, welches durch den Quotienten (ratio) zweier Polynome gebildet wird.
Wie werden Punkte im Weltkoordinatensystem dargestellt?
Dazu werden Vektoren genutzt. Vektoren werden mithilfe von Matrizen verrechnet
Welche Grundtransformationen gibt es?
Translation:
einer neuer Vektor wird aus der Addition zweier Vektoren gebildet
Skalierung:
Skalierung eines Vektors um einen Streckfaktor, der sich aus zwei Teilstreckfaktoren Sx und Sy zusammensetzt.
Matrizenmultiplikation
Rotation:
Rotation eines Vektors zum Ursprung mit einem gewissen Winkel.
P` = R * P -> Matrizenmultiplikation
Welche Möglichkeiten gibt es bei der Kappung?
Analytisch:
Berechnung von Schnittpunkten eines Polygons mit einem Kappungsrechteck
Während der Rasterung:
Punkte außerhalb des Kappungsrechtecks werden erst gar nicht gerastert.
Kappen am Window:
Gekappt wird erst bei der Window-Viewport-Transformation
Welche Möglichkeiten gibt es, um 3D Objekte darzustellen?
Drahtmodell (Gitter)
Flächenmodell (Polygone)
Körpermodell (Volumen)
Wie funktioniert das übersetzen von 2D zu 3D?
Möglichkeit A:
Translationskörper mit
- Rotationsachse
- oder Translationslinie
Möglichkeit B:
- Modellierung durch Zusammenfügen von Raumprimitiven (geometrische Grundformen)
- Boolesche Operationen wie Vereinigungsmenge, Schnittmenge etc. von mehreren Objekten möglich
Was sind Polygonflächen?
Was ist zu beachten?
Was muss geprüft werden?
3D Objekte werden durch ebene Flächen dargestellt. Bei krummen Flächen nur Annäherung.
Polygonflächen benötigen eine Punktliste, Kantenliste und eine Flächenliste.
Mit einem Normalvektor wird angezeigt, welche Seite des Polygons außen liegt.
Integritätsprüfung:
Jeder Punkt ist Endpunkt min. zweier Kanten
Jede Kante ist min. Teil eines Polygons
Jedes Polygon ist geschlossen
Jedes Polygon teilt mindestens eine Kante mit einem weiteren Polygon
Wie lassen sich gekrümmte Oberflächen darstellen?
Mit Bezierflächenelementen
Sie sind das Produkt zweier Bezier-Kurven. Jede Fläche besteht aus 16 Punkten. 4 Stützpunkte (Eckpunkte) und 12 Kontrollpunkte ( Stützpunkte, welche die Fläche nicht berühren).
Was versteht man unter Projektionen in der CG?
Welche Probleme treten auf?
Abbildung von Objekten aus dem dreidimensionalen Weltkoordinatensystem auf eine Projektionsebene (Bildschirm oder Viewport)
Probleme:
- Verlust der Tiefeninformation
- Mehrdeutigkeiten (Drahtmodell)
- Unmögliche Objekte (Escher Bilder)
Welche Projektionsarten gibt es?
Zentralprojektion/ perspektivische Projektion: - entfernte Objekte werden kleiner - mit Fluchtpunkt: 1-/2-/3-Punkt Perspektive möglich. - entspricht im Grunde einer Skalierung
Parallelprojektion:
- entfernte Objekte verändern Größe nicht
- rechtwinklig (bsp.Grundriss), Normale der Projektionsebene ist parallel zu einer Hauptachse
- axonometrisch, Normale nicht parallel zu einer Hauptachse: Isometrisch (Gleicher Winkel mit jeder Hauptachse); Dimetrisch (mit zwei Hauptachsen); Trimetrisch (mit jeder Hauptachse anderer Winkel)
schiefwinklig-Projektionsrichtung ist nicht senkrecht zur Projektionsebene, Normale der Projektionsebene ist parallel zu einer Hauptachse
Kavaliersprojektion; 45° keine Verkürzung
Kabinettprojektion; 45° Verkürzung um 1/2
Erkläre: Projektionszentrum Fluchtpunkt Viewlplane Kappungsebene
Projektionszentrum entspricht der Kameraposition
Fluchtpunkt - an der Projektionsebene gespiegeltes Projektionszentrum
Viewplane - Projektionsebene im Bildraum
Kappungsebene - zwischen vorderer und hinterer Kappungsebene liegt Schärfebereich der Kamera
Wie funktioniert der Kappungsalgorithmus (Cohen-Sutherland-Algorithmus)?
Ebene wird in 9 Bereiche unterteilt, wobei das Sichtfenster in der Mitte liegt und mit 0000 beziffert ist.
- Überprüfung der Örtlichkeit der Polygonkantenenden:
- Polygonkante ist sichtbar, wenn beide Endpunktcodes = 0000 sind
- Polygonkante nicht sichtbar, falls das „logische Und“ beider Endpunktcodes ungleich 0000 ist.
- Polygonkante ist Kappungskandidat, falls „logisches Und“ beider Entpunktcodes = 0000 ist. - Berechnung der Schnitte zwischen Polygonkanten und begrenzungsflächen des Bildraums (Front Plane, Back Plane)
Erkläre das entfernen von verdeckten Kanten und Flächen mit Hilfe des z-Puffer-Algorithmus.
- z-Puffer Z wird mit 0 initialisiert (Wert der hinteren Kappungsebene)
- z-Puffer enthält nach Durchlauf des Algorithmus für jedes Pixel den z-Wert des in diesem Punkt dem Betrachter am nächsten liegenden Objekts.
- Der Bildwiederholspeicher enthält Farbwerte
- z-Puffer+Bildwiederholspeicher= 2D Bild
Vorteile:
- einfache Implementierung
- unabhängig von der Anzahl der Polygone
Nachteile:
-benötigt genug Speicherplatz auf der Grafikkarte
Erkläre den Scan-line Algorithmus zur Entfernung verdeckter Kanten.
- Bild wird zeilenweise durchgegangen
- In Datenstruktur eines Polygons befindet sich eine Betrachtungsflagge, die bei jedem Schnitt zwischen Rasterzeile und Polygonkante auf sichtbar/unsichtbar eingestellt wird.
- Zwischen 2 Polygonkantenschnitten gibt es nur 2 Möglichkeiten:
Eine Betrachtungsflagge ist gesetzt ->In diesem Fall war nur ein Polygon im „Span“ und dieses ist sichtbar
Mehrere Betrachtungsflaggen sind gesetzt -> Aus den Flächengleichungen der Polygone wird das sichtbare Polygon berechnet.
Problem:
Bei Durchdringungen ändert sich die Sichtbarkeit zwischen 2 Polygonkantenschnitten. Durchdringungstest teilt, wenn nötig den Span nochmal
Kohärenzeigenschaft:
Ändert sich die Reihenfolge der Kanten in der nächsten Zeile nicht, müssen keine neuen Berechnungen zur Sichtbarkeit durchgeführt werden.
Vorteil:
-geringer Speicherplatzbedarf
Nachteil:
Laufzeit steigt mit steigender Polygonanzahl
Von welchen Faktoren hängt die Farbe eines Objektes ab?
Absorption, Reflektion und Transmission
Welche Beleuchtungsmodelle gibt es? (Nur Aufzählung, nicht erklären)
Ambientes Licht, Diffuse Reflektion, Spiegelnde Reflektion (Highlight, Transmittiertes Licht
Was ist Ambientes Licht?
oder auch Grundhelligkeit/Hintergundbeleuchtung:
- unabhängig der Blickrichtungen überall gleich stark
- enthält alle indirekten Beleuchtungen
- meist 10-20% der maximalen Helligkeit
Was ist Diffuse Reflektion?
oder Gestreute Reflexion:
-einfallendes Licht wird in alle Richtungen gleichmäßig reflektiert
-Parameter: Intensität der diffusen Reflektion Intensität der Lichtquelle Einfallswinkel Materialkonstante
- Alle nicht direkt beleuchteten Objekte sind hier „schwarz“
- nimmt mit der Entfernung ab
Was ist Spiegelnde Reflexion
Oder Highlight:
-Berechnet mit Phong-Modell
3 Vektoren - Lichtrichtung, Flächennormale, Blickrichtung
-Einfallender Strahl und reflektierter Strahl bilden beim Highlight denselben Winkel
-Parameter:
Intensität des spiegelnd reflektierten Lichts
Intensität der Lichtquelle
Winkel zwischen den Vektoren R und A
für Aussehen: Materialkonstante; Streuung
-In der Praxis besitzen die meisten Objekte eine Mischung aus diffuser und spiegelnder Reflexion
Was ist Transmittiertes Licht?
Wenn Licht ein transparentes Objekt durchdringt und nur zu einem Teil reflektiert wird. Berechnung der hinten liegenden Objekte müssen miteinbezogen werden.
- gerichtet(Klarglas)
- diffus(Milchglas)
-Parameter: Intensität des abgestrahlten Lichts Intensität des reflektierten Lichts Transmissiongrad Reflektionsgrad
Was sind inkrementelle Algorithmen? (Bei den Beleuchtungsmodellen)
Die Lichtanteile für jeden Punkt werden aufaddiert. Mit inkrementellen Algorithmen sind ambiente Beleuchtung und diffuse Reflexion mit konstanter Schattierung, sowie highlights möglich
erkläre die Gouraud Schattierung.
Inkrementelle Algorithmen
Oder auch Intensitätsinterpolation.
Lösung gegen Mach-Band-Effekt(sprunghafte Farbunterschiede):
Variable Schattierung innerhalb einer Polygonfläche wird berechnet.
Für jedes Polygon:
-Berechnung des Normalenvektoer für jeden Eckpunkt des Polygons
-Berechnung des Beleuchtungsmodells an den Eckpunkten des Polygons.
-Für alle Scan-Linien:
Berechnung des interpolierten Farbwerts an der linken und rechten Kante des Polygons.
Für jedes im Inneren des Polygons liegende Pixel der Scanlinie: Berechnung des interpolierten Farbwert des Pixels
Gouraud Schattierung lässt sich sowohl auf diffuse als auch auf spiegelnde Reflexion anwenden.
Problem:
Mach-Band-Effekt wird zum Teil beseitigt, spiegelnde Reflexionen in der Mitte des Polygons gehen ganz verloren.
Erkläre die Phong Schattierung.
Inkrementelle Algorithmen
Um das Problem der fehlenden Highlights in der Mitte zu beseitigen, werden bei der Phong-Schattierung auch die Normalenvektoren der Eckpunkte interpoliert. Dadurch können auch im Inneren des Polygons Normalenvektoren gebildet werden.
Berechnung für jedes Polygon:
-Berechnung des Normalenvektor an den Eckpunkten jedes Polygons
-Für alle Scanlinien:
Interpolierung des Normalenvektors an der linken sowie rechten Kante des Polygons
Für jedes im Inneren des Polygons liegende Pixel der Scan-Linie:
Interpolierung des Normalenvektor
Berechnung Beleuchtungsmodell
Problem: Mach-Band-Effekt immernoch nicht vollständig beseitigt.
Schattierungen:
Was ist die Grundidee von Raytracing?
Idee: Lichtstrahlen, die die Lichtquelle verlassen werden bis zum Auge verfolgt.
Problem: Nur ein geringer Anteil aller Lichtstrahlen trifft letztendlich auch das Auge.
Lösung: Die Sehstrahlen des Auges werden verfolgt und wenn diese auf ein Objekt fallen wird überprüft, ob Licht auf diese Stelle fällt. Darauf basierend wird Transmission, Reflexion und spiegelnde Reflexion berechnet. Vorgang wird beendet, wenn die Strahlen auf Hintergrund treffen, oder wenn vorgegebene Tracetiefe erreicht ist (meistens +-3)
Vorteile: Beeindruckende Effekte wie Transparenz mit Brechung, nur sichtbare Flächen werden berechnet.
Nachteile: Großer Rechenaufwand, große Fehler bei begrenzter Laufzeit (Rundungsfehler), Anfällig für Aliasing, keine diffusen Reflexionen
Erkläre Distributed Raytracing (Vray, Mentalray)
reguläres Raytracing ist physikalisch unkorrekt, da es keine diffuse Reflexion berechnet. Diffuse Reflexion würde unendlich viele Lichtstrahlen in die Szene werfen, welche weiterverfolgt werden müssten.
Beim Distributed Raytracing werden die Sehstrahlen für ein Pixel eines Objekts stochastisch innerhalb des Pixels verteilt und weiterverfolgt. Es wird eine begrenzte Anzahl an Strahlen verfolgt, wodurch auch diffuse Reflexion simmuliert werden kann.
Erkläre Das Path Tracing (Arnold, PR-man, Maxwell)
Beim Path Tracing wird jeder Lichtstrahl, der in die Szene geschossen wird entweder absorbiert, reflektiert oder gebrochen. Der Lichtstrahl sucht sich seinen Weg durch die Szene. Je mehr Anfangsstrahlen verwendet werden, desto näher kommt die Abbildung an das Ideal.
Erkläre das Radiosity-Verfahren
Beim Radiosityverfahren wird ausschließlich diffuse Reflexion simmuliert, indem die Lichtstrahlung einem virtuellen Modell nachberechnet wird.
Welche Probleme treten bei Texturen auf?
-Unterabtastung -> die Textur nimmt nur Teile eines Pixels ein
Lösung: hochskalieren der Textur
-Verzerrungen entstehen, wenn man Texturen um ein 3D Modell legen will.
Lösung: 3D Objekt wird aufgefaltet, erst dann die Textur daraufgelegt.
Welche Arten von Texturen gibt es?
3D Texturen:
Erwecken den Eindruck, dass Objekte aus einem bestimmte Material bestehen.
Bump Maps:
täuschen eine unebene Oberfläche vor. Simulieren unterschiedliche Oberflächenstrukturen. Störfunktion verändert Richtung des Normalenvektors, bevor er im Beleuchtungsmodell eingesetzt wird.
Displacement Maps:
Über Textur wird auf die Geometrie des Objektes tatsächlich eingegriffen.
Reflection Map:
Spiegelnde Projektion der Szene, die als 2D texturemap verwendet wird.