Special Effects Realistischeres Rendern einer Scene
Special Effects Heutige Themen: PartikelsystemePartikelsysteme Motion BlurMotion Blur TiefenschärfeTiefenschärfe Lens FlaresLens Flares AntialiasingAntialiasing
Partikelsysteme
Partikelsysteme
Partikelsysteme Einfachste Form: bestehend aus beliebig kleinen Punkten Einfachste Form: bestehend aus beliebig kleinen Punkten Punkte können Eigenschaften haben Punkte können Eigenschaften haben Gebilde sollen wachsen, schrumpfen, sich bewegen und Form verändern können Gebilde sollen wachsen, schrumpfen, sich bewegen und Form verändern können
Partikelsysteme viele Partikel, kein individuelles Skript viele Partikel, kein individuelles Skript allgemeines Skript mit integriertem Verhalten allgemeines Skript mit integriertem Verhalten Partikel ändern Position auf Basis eines beliebigen Algorithmus Partikel ändern Position auf Basis eines beliebigen Algorithmus
Partikelsysteme Bilderzeugung ist Prozess mit 5 Schritten: 1. Neue Partikel erzeugen und einbringen 2. Individuelle Eigenschaften zuweisen 3. Am Ende der Lebensdauer Partikel löschen 4. Aktuelle Partikel bewegen 5. Aktuelle Partikel rendern
Partikelsysteme Steuerung der Population z.B. in Abhängigkeit von der Zeit: Steuerung der Population z.B. in Abhängigkeit von der Zeit: N(t) = M(t) + rand(r) * V(t) Wobei: N: Anzahl Wobei: N: Anzahl M: Mittelwert V: Varianz M: Mittelwert V: Varianz Funktion muss nicht linear zeitabhängig sein Funktion muss nicht linear zeitabhängig sein Anzahl der Partikel kann auch von Bildschirmgröße des Objekts abhängen Anzahl der Partikel kann auch von Bildschirmgröße des Objekts abhängen
Partikelsysteme Partikelscripting basiert auf: Partikelscripting basiert auf: 1.Anfangsposition 2.Anfangsgeschwindigkeit und Richtung 3.Anfangsgröße 4.Anfängliche Transparenz 5.Form 6.Lebensdauer
Partikelsysteme Effekt mit Punkten eingeschränkt Effekt mit Punkten eingeschränkt Erweiterung: kurze Linien Erweiterung: kurze Linien Vertexfarben an Endpunkten Vertexfarben an Endpunkten besserer Effekt, kann aber noch eingeschränkt sein besserer Effekt, kann aber noch eingeschränkt sein
Partikelsysteme Lösung: Quadrate, parallel zum Bildschirm ausgerichtet Lösung: Quadrate, parallel zum Bildschirm ausgerichtet Eigenschaften: Farbe, Normalenvektor, Textur Eigenschaften: Farbe, Normalenvektor, Textur Textur mit Alpha-Kanal Textur mit Alpha-Kanal
Motion Blur
direkt modellieren und rendern mit Polygonen mit Alpha-Kanal pro Vertex direkt modellieren und rendern mit Polygonen mit Alpha-Kanal pro Vertex mit Hilfe von Accumulation Buffer modellieren mit Hilfe von Accumulation Buffer modellieren
Accumulation Buffer Bilder werden vermischt Bilder werden vermischt Buffer hat RGBA – Werte Buffer hat RGBA – Werte dieselbe Auflösung, größere Bit-Tiefe dieselbe Auflösung, größere Bit-Tiefe Bilder von Color-Buffer in Accumulation Buffer Bilder von Color-Buffer in Accumulation Buffer Ergebnis zurück in Color-Buffer Ergebnis zurück in Color-Buffer
Motion Blur Nutzung des Accumulation Buffer: Objekt zu unterschiedlichen Positionen bewegen, die während eines Frames angenommen werden Objekt zu unterschiedlichen Positionen bewegen, die während eines Frames angenommen werden diese Bilder in Accumulation Buffer rendern diese Bilder in Accumulation Buffer rendern
Motion Blur Billigere Nutzung: immer acht Frames in Accumulation Buffer immer acht Frames in Accumulation Buffer nur zwei mal rendern pro Frame nur zwei mal rendern pro Frame
richtiges Motion Blurfalsches Motion Blur
Ohne Depth of Field
Mit Depth of Field
Tiefenschärfe auch hier: Accumulation Buffer auch hier: Accumulation Buffer Bilder mit leicht unterschiedlicher Blickrichtung aber gleichem Fokus werden gemittelt Bilder mit leicht unterschiedlicher Blickrichtung aber gleichem Fokus werden gemittelt
Echte Lens Flares
Lens Flares Bestehen aus: ringförmige Bereiche hellen Lichts ringförmige Bereiche hellen Lichts sternförmiges Gebilde (ciliary corona) sternförmiges Gebilde (ciliary corona)
Lens Flares Texturen für Komponenten auf Quadrat Texturen für Komponenten auf Quadrat Textur hat Alpha-Kanal Textur hat Alpha-Kanal Quadrat bekommt Farbe zugeordnet Quadrat bekommt Farbe zugeordnet Quadrate werden vermischt, neue Farben entstehen Quadrate werden vermischt, neue Farben entstehen Quadrate mit Texturen werden als screen-aligned Billboards behandelt Quadrate mit Texturen werden als screen-aligned Billboards behandelt
Screen-aligned Billboards orientieren der Polygone basierend auf view-direction orientieren der Polygone basierend auf view-direction Oberflächen-Normale soll Negation der view-direction sein Oberflächen-Normale soll Negation der view-direction sein rotieren des Billboards um Achse bis richtige Position erreicht rotieren des Billboards um Achse bis richtige Position erreicht Achse = v dir x n Achse = v dir x n
Billboards
Screen-aligned Billboards jedes Billboard startet mit Mittelpunkt am Ursprung jedes Billboard startet mit Mittelpunkt am Ursprung alle auf gleiche Weise rotieren alle auf gleiche Weise rotieren auf endgültige 3-dimensionale Position verschieben auf endgültige 3-dimensionale Position verschieben
Aliasing und Antialiasing Kanten von Polygonen und Linien gezackt Kanten von Polygonen und Linien gezackt Kanten werden in Pixel-Gitter gezwungen Kanten werden in Pixel-Gitter gezwungen Behebung: Antialiasing Behebung: Antialiasing Problemfelder: Polygonkanten, Linien, Texturen Problemfelder: Polygonkanten, Linien, Texturen
Antialiasing Supersampling: mehrere Proben pro Pixel mehrere Proben pro Pixel Farben aus Proben werden gemittelt Farben aus Proben werden gemittelt
Antialiasing 1.Supersampling-Methode: Scene in seperatem Buffer mit höherer Auflösung rendern Samples auf Bild verteilen Benachbarte Samples mitteln und Pixel Farbwert zuordnen
Antialiasing 2. Supersampling-Methode: Accumulation Buffer nutzen Accumulation Buffer nutzen mehrere Bilder mit unterschiedlicher Blickrichtung mitteln mehrere Bilder mit unterschiedlicher Blickrichtung mitteln ein Bild pro Sample ein Bild pro Sample
Antialiasing 3. Supersampling-Methode: Carpenters A-Buffer, Multisampling Carpenters A-Buffer, Multisampling coverage mask für grid-Zelle wird angelegt coverage mask für grid-Zelle wird angelegt mask, Schattierung der Zelle, z-Tiefe bilden Fragment mask, Schattierung der Zelle, z-Tiefe bilden Fragment Fragmente die verdeckt sind werden aussortiert Fragmente die verdeckt sind werden aussortiert Farbe der Zelle wird nach Sichtbarkeit berechnet Farbe der Zelle wird nach Sichtbarkeit berechnet
Antialiasing No AntiAliasingGeForce3 2x AntiAliasingGeForce3 4x AntiAliasing
Antialiasing Andere Methoden: Stochastic Sampling: Samples werden zufällig positioniert Stochastic Sampling: Samples werden zufällig positioniert Kanten-Antialiasing: geeignete Kanten als verschwommene Linien zeichnen Kanten-Antialiasing: geeignete Kanten als verschwommene Linien zeichnen Full-Scene Antialiasing: Polygone sortieren und Antialiasing der Kanten on the fly durchführen Full-Scene Antialiasing: Polygone sortieren und Antialiasing der Kanten on the fly durchführen