VL
-
- 1 / 382
-
Flashcards
Was ist komplexes Compositing was gilt es zu beachten?
- Komplexes Compositing mit Chroma-Keying
- Vordergrund: Aufnahme neutralen Hintergrund
- Ersetzen der Hintergrundfarbe durch transparenten Alphakanal
- Hintergrund: Aufnahme Hintergrund wird hinter die erste Videospur gesetzt
- Beachte:
- Wahl der Hintergrundfarbe (Blue-/Greenscreen)
- Wahl der Accessoires (≠ Farbe Hintergrund)
- Konsistenz: Szenen gleich beleutet, Perspektive, Anordnung und co. muss konsistent sein
- keinen Yellowscreen (weil gelb keine Grundfarbe = schwieriger zu filtern)
- keine Redscreens (weil rot in menschlicher Hautfarbe zentral ist)
Was ist Video-Rendering?
- Zusammenfügen verschiedener Elemente:
- Videospure(n)
- Tonspure(n)
- Titel
- Überblendungen
- Parameter abhängig von späterer Darbietungsform
- Auflösung
- Framerate (z.B. 25 fps)
- Codec (z.B. H.265)
- Dateiformat (z.B. MP4)
- Ton Codec: z.B. MP3, Anzahl: z.B. Stereo)
Was sind Einsatzgebiete der 3D-Computergrafik?
- Animationsfilme
- keine physikalische Einschränkungen
- Bilder aus 3D Umgeung herausrendern und Objekte hinein animieren
- erster Film: Tron (1982), Jurassic Parc hat alle Dinos animiert (1993) und Toy Story erster komplett computeranimierter Film (1995)
- Computerspiele
- Medizinische Visualisierung (medizinische Ausbildung und in Chirurgie)
- rechnerunterstützes Konstruieren (computer-aided design: z.B. Autoteile werden vorab erstellt)
Was sind Grundbegriffe der 3D-Grafik?
- KOOS inkl. z-Achse (vorne: positive Werte = rechtsorientiertes KOOS)
- Polygone
- beliebige zweidimensionale Figur, die aus geraden Linien besteht
- ergeben zusammen einen geschlossenen Streckenzug: d.h. ist geschlossen, wenn Endpunkt auch Startpunkt ist (P = (x0, y0, z0) = (xn, yn, zn))
- Planarität bei Polygonen:
- Polygon = planar, wenn alle Knoten in einer Ebene liegen
- erst ab 3D relevant, weil dann erst dritte Dimension
- bsp. Tischplatte = planares Objekt
- Flächennormale
- Normale (Normalenvektor) einer Fläche = Vektor, der orthogonal zu seiner Oberfläche
- planares Polygon: Flächennormale ist an jeder Stelle gleich (Polygonnormale)
- nicht-planares Polygon: Normale ist verschieden an unterschiedlichen Punkten
- Polygonnetze
- Sammlung von zusammenhängenden Knoten, Kanten und Flächen
- müssen geschlossen sein (geschlossene Hülle, die ein Objekt darstellt)
- oft: Dreieck- und Vierecksnetze
- Bsp.: Utah Teapot
Wie wird ein Objekt i.d.R. unterteilt?
- in Dreiecke, da diese immer planar sind
- Utah-Teapot:
- Übungsprojekt
- komplexer Gegenstand, der durch viele verschiedene Formen, Materialien, Schatten etc. modelliert wird
Welche Transformationen sind in der 3D-Grafik zu finden?
- Transformationen bewegen einzelne Punkte
- Ganze Objekte transformiert, indem Transformation auf alle Punkte des Objektes angewandt werden
- Transformationen:
- Translation: Verschiebung
- Skalierung: Vergrößerung, Verkleinerung, Verzerrung
- Rotation: Drehung
Wie wird translatiert?
- Vektoraddition: alte Punkte addieren Punkte des Vektors inzu
Wie wird skaliert?
- Matrizenmultiplikation
- Wert > 1: Vergrößerung
- Wert < 1: Verkleinerung
Wie wird rotiert?
- Matrizenmultiplikation
- Diagonale immer 1
- Rest = Winkel
- Siehe Beispielbild
Was ist das Problem bei Matrizenrechnungen?
- Vektoraddition und Matrizenmultiplikation kann man nicht zusammenfassen
- d.h. bei mehreren Rechenschritten pro Pixel: Schritte müssen einzeln durchgeführt werden (uff)
- Lösung: Homogenisierung
- Hinzunahme einer Einheitsmatrix (4. Dimension) zur Darstellug in homogenen Koordinaten
- Vektoren und Matrizen mit homogenen Koordinaten berechnen
- Reihenfolge wichtig: man kann nicht in beliebigen Reihenfolgen die Matrizen zusammenfassen
Wie werden 3D Modelle aufgebaut?
- Polygonnetze: Wireframes
- Objekt inkl. Material und Farbe
Was sind typische Herausforderungen bei dem Aufbau von 3D-Modellen?
- komplexe Objekte setzen sich aus mehreren Teilen zusammen
- manche Einzelteile sollen mehrfach verwendet werden
- Transformationen (und Aninationen) sollen effizient auf mehrere Teile angewandt werden
- mühsam, jeden einzelnen Punkt in Polygonnetze zu erstellen
- lieber: Punkte kopieren und einfügen
Bsp.: Erstellung eines GoCarts, dafür Räder einfach kopieren und ggf. Rückräder etwas größer skalieren und verschieben
Was ist die hierarchische Modellierung?
- erlaubt Mehrfachverwendung von Geometrien und Vererbung von Transformationen (= Objekte, die zu anderem Objekt gehören, bekommen gleiche Transformation)
- Szenengraph
- gerichteter, azyklischer Graph
- gerichtet = Pfeile, die in eine Richtung gegen
logisch, was Elternelement, was Kinderelement ist - azyklisch: immer Richtungen, keine Kreise
- gerichtet = Pfeile, die in eine Richtung gegen
- gerichteter, azyklischer Graph
Was sind Elemente des Szenengraphs?
- logische Elemente (Zusammenfassen mehrerer Elemente)
- Geometrien (Quader, Zylinder, ...)
- Attribute (z.B. Material)
- Transformation (Skalierung, Translation, Rotation)
Was sind Materialien?
- (Oberflächen-) Eigenschaften
- Farbe, Material (bestimmt durch Transparenz, Spiegelung etc.)
- oft unterschiedliche Materialeigenschaften je nach Element
Was sind Texturen?
- Darstellung "natürlicher" Oberflächen
- Oberflächen, die man nicht modellieren möchte
- auf modellierte Fläche kann man Textur (= Bild) legen und so Oberflächenstruktur simulieren
- hoher Detaillierungsgrad möglich
- Texturen sind 2D Rastergrafiken
- über 3D Geometrie legen
- mit Materialeigenschaften von 3D Geometrie verbinden
Wie kann man Objekte positionieren?
- Objektkoordinatensystem
- Objekt in Objekt-KOOS
- Lokales KOOS
- Ursprung des KOOS liegt im Schwerpunkt des Objekts (Pivot-Punkt)
- dadurch: Skalierung und Rotation unkritisch
- Weltkoordinatensystem
- in Szene liet Objekt im Welt-KOOS
- Anwenden von Transformationen wird Objekt vom lokalen ins globale KOOS überführt
- im globalen KOOS: oft mehrere Objekte
Was kann die Kamera in der 3D Umgebung?
Kamera kann unterschiedlich gesetzt werden
Szene ist jeweils eine ander (Blickwinkel unterscheiden sich)
Welche Kameras gibt es?
- Editorkamera
- Blick des Modellierers in 3D Szene
- mehrere Ansichten möglich, z.B. frontal/oben
- Szenenkamera
- Blick auf 3D Szene, wie sie später aussehen soll
- mehrere Kameras für Kamersprünge möglich
- Kamerafahrten:
- mittels Positionsveränderung über Zeit entlang von Kurvenzügen
- durch Anhängen an bewegte Objekte
- Sicht-KOOS
- aus Sicht der Kamera liegt Objekt in Sicht-KOOS
- Urpsrung des KOOS = Kameraposition
- up- und look-Vektoren bestimmen Orientierung
Was sind die Lichtquellen in der 3D-Umgebungen?
- Licht in der 3D-Computergrafik durch Cornellbox modelliert
- Cornellbox dient der Einstellung komplexer Beleuchtung
- Lichtquellen = konzeptionelle Objekte, keine geometrischen Elemente
- verfügen nciht über Oberfläche
- reflektieren kein Licht
Welche Lichtquellen gibt es?
- Ambientes Licht
- gerichtetes Licht
- Lokale Lichtquellen
- Punktlicht
- Spotlicht
- Flächenlicht
Was ist ambientes Licht?
- simuliert allgemeine Raumhelligkeit (Grundhelligkeit)
- ungerichtete Lichtstrahlen
- gleichmäßig verteilt
- Lichtintensität = konstant, unabhängig von Entfernung
Was ist gerichtetes Licht?
- wie weit entferne Lichtquelle (z.B. Sonnenlicht)
- Lichtstrahlen = parallel und gleichmäßig
- Lichtintensität = konstant, unabhängig von Entfernung (da Lichtquelle so weit weg ist, dass minimale Entfernungsunterschiede keine Auswirkungen haben)
Was sind lokale Lichtquellen?
- zusätzlich lokale Lichtquellen positionieren
- Position
- Lichtfarbe
- Intensität (lineare Abnahme der Intensität mit Entfernung)
- Punktlicht
- Ausstrahlung von Licht gleichmäßig in alle Richtungen
- Spotlicht
- Ausstrahlung von Licht restringiert auf kegelförmigen Bereich
- Abnahme der Intensität mit Nähe zum Rand des Lichtkegels (falloff)
- Flächenlicht:
- Licht mit geometrischer Ausdehnung
- oft Annäherung durch über die Fläche verteilte Punktlichtquellen
Somit: was sind Grundelemente in einer 3D Szene?
- Modelle (GoCart, Bodenfläche): Geometrie, Material, Textur, Position
- Kamera
- Lichtquelle
daraus: Szenengraph
Was ist Rendering und was ist dessen Ziel?
- Rendern = Ausgangsdaten werden auf Rasterbildschirm dargestellt
- Ziel:
- beschreibt Erstellung einer 2D Repräsentation von 3D Modellen
- 2D Bilder müssen für Betrachter nach 3D Raum aussehen
Was sind notwendige theoretische Anforderungen beim Rendering?
- Blickpunkt festlegen
- Kameraeigenschaften festlegen (Bildformat, Öffnungswinkel, ...)
- Beleuchtung: Farbverläufe, Reflexionen
- Bestimmung sichtbarer Objekte
- Perspektivische Verzerrungen
Beachte:
es werden mehrere Bilder pro Sekunde gerendert (ca. 60 fps bei 3D Spielen mit schnellen Bewegungen)
Echtzeitanforderung bei interaktiven Anwendungen (innerhalb Sekunden muss decoded werden)
-> Berechnungen werden ausgelagert auf die GPU (Graphic Processing Unit = Grafikkarte)
Wie verläuft die 3D-Rendering Pipeline?
- Modellierung der Geometrie
- Modellierung von Kamera und Lichtquellen
- Positionierung in der Szene
- Bestimmung der Sichtbarkeit
- Beleuchtung
- Projektion
- Rasterung (auf Pixel abbilden)
- 2D Bild
Beachte: oft nicht so sequentiell, sondern eingebaute Shader
Was sind Shader?
- kleine Programme, die parallel auf GPU ausgeführt werden
- Berechnen, wie Pixel eingefärbt werden sollen
- können an unterschiedlichen Stellen der Grafikpipeline aufgerufen werden
- je nach Stelle anderer Shader
- z.B. Wortex-Shader bearbeitet Wirtices (Ecken und Knoten der 3D Modelle) - geht nur vor Rasterung
- Geometrie-Shader: fügen neue Konten in Geometrie ein, z.B. Fell bei Hunden als kleine geometrische Dreiecke statt Textur, um Haare detaillierter zu simulieren
- Shader führen zu realistischeren optischen Darstellungen
Was ist mit der Sichtbarkeitsermittlung gemeint?
- Objekte und aktive Kamers = positioniert
> Objekte liegen im Sicht-KOOS der Kamera- zu jedem Zeitpunkt nur Bruchteil der Polygone sichtbar
- nicht sichtbare Polygone nicht weiter durch Pipeline verarbeiten
Was für Möglichkeiten der Entfernung von Polygonen gibt es?
- Culling gegen das Sichtvolumen (View Frustum Culling)
- Polygone, die außerhalb des Kamerabildes liegen, werden ausgeschlossen
- Sichtvolumen bestimmt durch Kameraposition, Bildränder, vordere und hintere Schnittebene
- erhebliche Optimierungen möglich
- Back Face Culling
- Polygone, deren Nomale von Kamera wegzeigt (liegen auf Rückseite von Objekten), werden verworfen
- wichtig: planare Polygone
- geht nur bei geschlossenen Polygonnetzen
- i.d.R. wird dadurch zu verarbeitende Polygonanzahl halbiert
Welche Beleuchtungsmodelle gibt es?
- Ziel: Berechnung realistischer Lichtinteraktion (Approxaimation mit Modellen)
- Lokale Beleuchtungsmodelle
- nur Beleuchtung durch Lichtquelle wird berücksichtigt, die auf direktem Weg auf Szenenobjekt trifft
- globale Beleuchtungsmodelle
- zusätzlich wird indirekte Beleuchtung berücksichtigt
Was sind Einflussfaktoren für lokale Beleuchtungen?
- für jeden zu beachtenden Knoten der Szenenobjekte wird Lichtintensität berechnet
- Einflussfaktoren
- Position des Punktes P
- Orientierung der zugehörigen Fläche (Normale, N; Normalenvektor auf planarem Objekt
- physikalische Eigenschaften der Fläche (Materialkoeffizienz k)
- Lage und Art der Lichtquelle
- Position des Betrachters (Kamerarichtung V)
- Reflexionsvektor R:
Einfallswinkel = Ausfallswinkel- Vektor wird an Normale gespiegelt
Was ist das Beleuchtungsmodell nach Phong?
- einfaches, bekanntes, lokales Beleuchtungsmodell
- Beschreibung von Interaktionen des Lichts einer Lichtquelle und der Oberflächen
- empirisches Modell: nur Approximation an physikalischen Grundlagen
- Berechnung durch Addition von Reflexionen:
- ambiente Reflexion
- diffuse Reflexion
- spekulare Reflexion
Was ist die ambiente Reflexion?
- Simulation einer Grundhelligkeit
- Annahme:
- konstante Lichteinwirkung auf alle Punkte unabhängig von deren Ausrichtung und Position
- jeder Punkt = konstant beleuchtet
- somit kein 3D Effekt
- Ia*ka
- Ia = Intensität des ambienten Lichtanteils (konstant)
- ka = ambienter Reflexionskoeffizient (abhängig vom Objekt)
Was ist die diffuse Reflexion?
- Simulation von Streulicht
- Matte Oberflächen = stark diffus reflektierend (z.B. Papier, Holz)
- Annahme: auf einem Punkt einfallendes Licht wird in alle Richtungen reflektiert
- Id*kd*{L,N}
- Id = Intensität diffusen Lichtanteils
- kd = diffuser Reflexionskoeffizient (Objektbeschaffung)
- {L,N} = Skalarprodukt der Normalen des Punktes N und des Vektors zur Lichtquelle L
- entspricht cos(Theta) = Winkel, der für jeden Vektor aussagt, wie stark diffus er ist
Was ist das Lambertsche Gesetz?
- Die Intensität des reflektierten Lichts einer Fläche ist proportional um Kosinus des Winkels Theta zwischen der Lichtrichtung L und der Normane N
- Winkel Theta zwischen L und N kleiner, nimmt Intensität des reflektierten Lichts zu
- je größer der Winkel, desto kleiner der Wert des Cosinus
- Bsp.: jeder Punkt des Objekts wird unabhängig von seiner Orientierung zur Lichtquelle beleuchtet und Krümmungen werden so sichtbar
Was ist die spekulare Reflexion?
- Simulation von Spiegellicht (Glanzreflexion)
- glatte, glänzende Oberflächen sind meist stark spekular reflektierend (z.B. Metall)
- Annahme: eintreffendes Licht wird besonders konzentriert in Spiegelrichtung reflektiert
- für Spiegelrichtung gilt Reflexionsgesetz: Einfallswinkel = Reflexionswinkel
- Intensität spekularer Reflexion ist abhängig von Betrachterrichtung V
- Bsp. Jemand trägt Uhr am Arm - Reflexion ist abhängig vom Betrachterstandpunkt
- Intensität ist abhängig vom Cosinus des Winkels delta zwischen Spiegelrichtung R und Betrachtungsvektor V (= Betrachter/Kamerastandpunkt)
- Ia*ks*{V,R}n
- Is = Intensität spekularen Lichtanteils
- ks = spekularer Reflexionskoeffizienz
- {V,R}n = n-te Potenz des Skalarprodukts zwischen Betrachtungsvektor V und Reflexionsvektor R (cos(delta)n
- je kleiner der Winkel, desto stärker die Reflexion
- n = spekularer Exponent (bestimmt Glänzung)
- n = 0 > kein Glanzpunkt
- n = 10 > Objekt erscheint schwach glänzend
- n = 150 > Objekt erscheint stark glänzent
Was muss bei Projektionen von 3D zu 2D beachtet werden?
- Anwendungen geometrischer Projektionen (Projektionsmatrix) zur Projektion jedes Punktes einer 3D Szene auf eine Projektionsfläche (Canvas)
- Objekte liegen in Sichtkoordinaten vor
- Ziel: Objekte in Bildkoordinaten umwandeln
Was ist mit Verdeckung gemeint?
- manche Objekte liegen näher an Kamera und verdecken so andere
- einfache Lösung: Polygone nach Lage im Raum sortieren und von hinten nach vorne zeichnen
- Problem: Welches Objekt/Polygon wird zuerst gerendert - z.T. nicht eindeutig
- Lösung: z-Buffer Algorithmus