Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | sigmund-lecker |
View: | 109 times |
Download: | 1 times |
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