Special Effects Realistischeres Rendern einer Scene

Preview:

Citation preview

Special EffectsSpecial Effects

Realistischeres Rendern einer Realistischeres Rendern einer SceneScene

Special EffectsSpecial Effects

Heutige Themen:Heutige Themen:

• PartikelsystemePartikelsysteme

• Motion BlurMotion Blur

• TiefenschärfeTiefenschärfe

• Lens FlaresLens Flares

• AntialiasingAntialiasing

PartikelsystemePartikelsysteme

PartikelsystemePartikelsysteme

PartikelsystemePartikelsysteme

Einfachste Form:Einfachste Form: bestehend aus beliebig kleinen Punkten bestehend aus beliebig kleinen Punkten

Punkte können Eigenschaften habenPunkte können Eigenschaften haben

Gebilde sollen wachsen, schrumpfen, sichGebilde sollen wachsen, schrumpfen, sich bewegen und Form verändern können bewegen und Form verändern können

PartikelsystemePartikelsysteme

viele Partikel, kein individuelles Skript viele Partikel, kein individuelles Skript

allgemeines Skript mit integriertemallgemeines Skript mit integriertem Verhalten Verhalten

Partikel ändern Position auf Basis einesPartikel ändern Position auf Basis eines beliebigen Algorithmus beliebigen Algorithmus

PartikelsystemePartikelsysteme

Bilderzeugung ist Prozess mit 5 Schritten:Bilderzeugung ist Prozess mit 5 Schritten:1. Neue Partikel erzeugen und einbringen1. Neue Partikel erzeugen und einbringen

2. Individuelle Eigenschaften zuweisen2. Individuelle Eigenschaften zuweisen

3. Am Ende der Lebensdauer Partikel3. Am Ende der Lebensdauer Partikel löschen löschen

4. Aktuelle Partikel bewegen4. Aktuelle Partikel bewegen

5. Aktuelle Partikel rendern5. Aktuelle Partikel rendern

PartikelsystemePartikelsysteme Steuerung der Population z.B. inSteuerung der Population z.B. in Abhängigkeit von der Zeit: Abhängigkeit von der Zeit:

N(t) = M(t) + rand(r) * V(t)N(t) = M(t) + rand(r) * V(t)

Wobei: N: AnzahlWobei: N: Anzahl

M: MittelwertM: Mittelwert V: Varianz V: Varianz

Funktion muss nicht linear zeitabhängigFunktion muss nicht linear zeitabhängig sein sein

Anzahl der Partikel kann auch vonAnzahl der Partikel kann auch von Bildschirmgröße des Objekts abhängen Bildschirmgröße des Objekts abhängen

PartikelsystemePartikelsysteme

Partikelscripting basiert auf:Partikelscripting basiert auf:1.1. AnfangspositionAnfangsposition

2.2. Anfangsgeschwindigkeit und RichtungAnfangsgeschwindigkeit und Richtung

3.3. AnfangsgrößeAnfangsgröße

4.4. Anfängliche TransparenzAnfängliche Transparenz

5.5. FormForm

6.6. LebensdauerLebensdauer

PartikelsystemePartikelsysteme

Effekt mit Punkten eingeschränktEffekt mit Punkten eingeschränkt

Erweiterung: kurze LinienErweiterung: kurze Linien

Vertexfarben an EndpunktenVertexfarben an Endpunkten

besserer Effekt, kann aber noch besserer Effekt, kann aber noch eingeschränkt seineingeschränkt sein

PartikelsystemePartikelsysteme

Lösung: Quadrate, parallel zumLösung: Quadrate, parallel zum Bildschirm ausgerichtet Bildschirm ausgerichtet

Eigenschaften: Farbe, Normalenvektor,Eigenschaften: Farbe, Normalenvektor, Textur Textur

Textur mit Alpha-KanalTextur mit Alpha-Kanal

Motion BlurMotion Blur

Motion BlurMotion Blur

direkt modellieren und rendern mitdirekt modellieren und rendern mit Polygonen mit Alpha-Kanal pro Vertex Polygonen mit Alpha-Kanal pro Vertex

mit Hilfe von Accumulation Buffermit Hilfe von Accumulation Buffer modellieren modellieren

Accumulation BufferAccumulation Buffer

Bilder werden vermischtBilder werden vermischt

Buffer hat RGBA – WerteBuffer hat RGBA – Werte

dieselbe Auflösung, größere Bit-Tiefedieselbe Auflösung, größere Bit-Tiefe

Bilder von Color-Buffer in AccumulationBilder von Color-Buffer in Accumulation Buffer Buffer

Ergebnis zurück in Color-BufferErgebnis zurück in Color-Buffer

Motion BlurMotion Blur

Nutzung des Accumulation Buffer:Nutzung des Accumulation Buffer:

Objekt zu unterschiedlichen PositionenObjekt zu unterschiedlichen Positionen bewegen, die während eines Frames bewegen, die während eines Frames angenommen werden angenommen werden

diese Bilder in Accumulation Bufferdiese Bilder in Accumulation Buffer rendern rendern

Motion BlurMotion Blur

Billigere Nutzung:Billigere Nutzung:

immer acht Frames in Accumulationimmer acht Frames in Accumulation Buffer Buffer

nur zwei mal rendern pro Framenur zwei mal rendern pro Frame

                                 

„richtiges“ Motion Blur „falsches“ Motion Blur

Ohne Depth of FieldOhne Depth of Field

Mit Depth of FieldMit Depth of Field

TiefenschärfeTiefenschärfe

auch hier: Accumulation Bufferauch hier: Accumulation Buffer

Bilder mit leicht unterschiedlicherBilder mit leicht unterschiedlicher Blickrichtung aber gleichem Fokus Blickrichtung aber gleichem Fokus werden gemittelt werden gemittelt

„„Echte“ Lens FlaresEchte“ Lens Flares

Lens FlaresLens Flares

Bestehen aus:Bestehen aus:

ringförmige Bereiche ringförmige Bereiche hellen Lichts hellen Lichts

sternförmigessternförmiges Gebilde (ciliary corona) Gebilde (ciliary corona)

Lens FlaresLens Flares

Texturen für Komponenten auf QuadratTexturen für Komponenten auf Quadrat Textur hat Alpha-KanalTextur hat Alpha-Kanal Quadrat bekommt Farbe zugeordnetQuadrat bekommt Farbe zugeordnet Quadrate werden vermischt, neue FarbenQuadrate werden vermischt, neue Farben entstehen entstehen Quadrate mit Texturen werden als Quadrate mit Texturen werden als screen-aligned Billboards behandelt screen-aligned Billboards behandelt

Screen-aligned BillboardsScreen-aligned Billboards

orientieren der Polygone basierend auforientieren der Polygone basierend auf view-direction view-direction

Oberflächen-Normale soll Negation derOberflächen-Normale soll Negation der view-direction sein view-direction sein

rotieren des Billboards um Achse bisrotieren des Billboards um Achse bis richtige Position erreicht richtige Position erreicht

Achse = vAchse = vdirdir x n x n

BillboardsBillboards

Screen-aligned BillboardsScreen-aligned Billboards

jedes Billboard startet mit Mittelpunkt amjedes Billboard startet mit Mittelpunkt am Ursprung Ursprung

alle auf gleiche Weise rotierenalle auf gleiche Weise rotieren

auf endgültige 3-dimensionale Positionauf endgültige 3-dimensionale Position verschieben verschieben

Aliasing und AntialiasingAliasing und Antialiasing

Kanten von Polygonen und Linien gezacktKanten von Polygonen und Linien gezackt

Kanten werden in Pixel-GitterKanten werden in Pixel-Gitter „gezwungen“ „gezwungen“

Behebung: Antialiasing Behebung: Antialiasing

Problemfelder: Polygonkanten, Linien,Problemfelder: Polygonkanten, Linien, Texturen Texturen

AntialiasingAntialiasing

Supersampling:Supersampling:

mehrere Proben pro Pixelmehrere Proben pro Pixel

Farben aus Proben werden gemitteltFarben aus Proben werden gemittelt

AntialiasingAntialiasing

1.1. Supersampling-Methode:Supersampling-Methode:

Scene in seperatem Buffer mit höherer Scene in seperatem Buffer mit höherer Auflösung rendernAuflösung rendern

Samples auf Bild verteilenSamples auf Bild verteilen

Benachbarte Samples mitteln und Pixel Benachbarte Samples mitteln und Pixel Farbwert zuordnenFarbwert zuordnen

AntialiasingAntialiasing

2. Supersampling-Methode:2. Supersampling-Methode:

Accumulation Buffer nutzenAccumulation Buffer nutzen

mehrere Bilder mit unterschiedlicher mehrere Bilder mit unterschiedlicher Blickrichtung mitteln Blickrichtung mitteln

ein Bild pro Sampleein Bild pro Sample

AntialiasingAntialiasing

3. Supersampling-Methode:3. Supersampling-Methode:

Carpenters A-Buffer, MultisamplingCarpenters A-Buffer, Multisampling coverage mask für grid-Zelle wird coverage mask für grid-Zelle wird angelegt angelegt mask, Schattierung der Zelle, z-Tiefemask, Schattierung der Zelle, z-Tiefe bilden Fragment bilden Fragment Fragmente die verdeckt sind werdenFragmente die verdeckt sind werden aussortiert aussortiert Farbe der Zelle wird nach SichtbarkeitFarbe der Zelle wird nach Sichtbarkeit berechnet berechnet

AntialiasingAntialiasing

No AntiAliasing GeForce3 2x AntiAliasing GeForce3 4x AntiAliasing

AntialiasingAntialiasing

Andere Methoden:Andere Methoden:

Stochastic Sampling: Samples werdenStochastic Sampling: Samples werden zufällig positioniert zufällig positioniert

Kanten-Antialiasing: geeignete KantenKanten-Antialiasing: geeignete Kanten als verschwommene Linien zeichnen als verschwommene Linien zeichnen

Full-Scene Antialiasing: PolygoneFull-Scene Antialiasing: Polygone sortieren und Antialiasing der Kanten on the fly sortieren und Antialiasing der Kanten on the fly durchführen durchführen

Recommended