Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

38
Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing

Transcript of Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Page 1: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele

Alexander Martin19. Juli 2010

Postprocessing

Page 2: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 2

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 3: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 3

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 4: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 4

1. Einführung

• Definition Postprocessing

• In der allgemeinen Datenverarbeitung:

Der Begriff Postprocessing bezeichnet die Nachbearbeitung und Aufbereitung von Ergebnissen einer Computersimulation.

• Im Bildsynthese-Prozess:

Der Begriff Postprocessing bezeichnet die Nachbearbeitung und Aufbereitung von gerenderten Bildern durch zusätzliche Bildberechnungen.

19. Juli 2010

Page 5: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 5

1. Einführung

• Überblick - Postprocessing generierte Bildeffekte

• Schatten - Deferred Shading, Screen Space Ambient Occlusion

• Kantenglättung - Anti-Aliasing

• Fokustiefe - Depth of Field, Sharpen-Filter, Unsharp-Filter

• Bewegungsunschärfe - Motion Blur

• Helligkeitsunterschiede - High Dynamic Range, Bloom Lighting

• Blendenflecke oder Linsenreflexionen - Lens Flares

• Lichtstreuung - Volumetric Light Scattering

• Kunsteffekte - Cel-Shading-Comic-Look, Schraffureffekte,…

• uvm.

19. Juli 2010

Page 6: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 6

1. Einführung

19. Juli 2010

Page 7: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 7

1. Einführung

• Einordnung in den Bildsyntheseprozess

19. Juli 2010

Postprocessing

gesammelte Informationen

zBsp. im OpenGL Pixel-Shader

Page 8: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 8

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 9: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 9

2. Deferred Shading

• Grundlagen

• Bisherige Probleme in der Licht- und Schattenberechnung- Aufwändig bei vielen Objekten, Lichtquellen- Für jede Lichtquelle wird jedes Objekt gezeichnet- Rendercall Worst-Case O(nO*nL)

• Idee ist Deferred Shading – „verzögertes Schattieren“- Trennung Geometrieverarbeitung, Lichtberechnung- Komplexe Szenen, viele Lichtquellen möglich- kein Aufwand für verdeckte Flächen- Rendercall Worst-Case O(nO+nL)

- Kein Hardware Anti-Aliasing- Keine Transparente Objekte

19. Juli 2010

Page 10: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 10

2. Deferred Shading

• Deferred Shading – grobes Prinzip – 2 Phasen +Bildraum-Pixel-Daten (3D-Position, Normale, etc.) sammeln Texturen in Mutliple Render Targets (G-Buffer,…)

Beleuchtungsberechnung der Szene mit Buffer-Daten- Globale Beleuchtung – bildschirmfüllendes Quadrat als Lichtquelle- Lokale Beleuchtung – Lokale Lichtquellen mit Lichtvolumen

Beleuchtungsmethode anwendenJedes Pixel beleuchtet/schattiert

19. Juli 2010

P

[Pseudo Code, Deferred Shading Technik]

1

2

Page 11: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 11

2. Deferred Shading

19. Juli 2010

[Deferred Shading, Geometrieverarbeitung, Architektur] [Deferred Shading, Beleuchtungsphase, Architektur]

1 2 P

[Architektur, Deferred Shading Technik]

Page 12: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 12

2. Deferred Shading

19. Juli 2010

Depth

Normal

Specular Intensity

Specular Roughness / Power

Motion Vector

Deferred Composition

Target Image with Postprocessing

Albedo

Fertig

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Beleuchtung

Beispiel – Killzone 2

Page 13: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 13

2. Deferred Shading

19. Juli 2010

[S.T.A.L.K.E.R, GSC Game World, 2007]

[Crysis, Crytek, 2008]

[Killzone 2, Guerrilla Games, 2009]

Page 14: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 14

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 15: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 15

3. Screen Space Ambient Occlusion & ähnliche

• Grundlage - Ambient Occlusion Technik• „Umgebungsverdeckung“ - Verschattung• Simuliert globale Beleuchtung

• In Engstellen viele diffuse Reflexionengeringere Beleuchtungsstärke

• Aufhellung durch Umgebungslicht, Verdunklung durch Objekte in Nähe

• Ungeeignet für bewegliche Geometrien

19. Juli 2010

Page 16: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 16

3. Screen Space Ambient Occlusion & ähnliche

• Ambient Occlusion-Funktion:

19. Juli 2010

SichtbarkeitsfunktionIntegral über Halbkugel

GewichtungVerdeckungswert

Page 17: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 17

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 18: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 18

3. Screen Space Ambient Occlusion & ähnliche

• Screen Space Ambient Occlusion – SSAO• „Ambient Occlusion“ in Echtzeit - Crytek 2007

• Lichtstrahlenverfolgung nicht im 3D-ObjektRaum• Berechnung im 2D-Bildraum mit Tiefen-Bild, Kernel

• Depth-Buffer als Approximation der Szenen

19. Juli 2010

Szenen-Geometrie

Tiefenwerte

Page 19: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 19

3. Screen Space Ambient Occlusion & ähnliche

• Funktionsweise – SSAO• Ziel: Verdeckungswert jedes Pixels im Bild Occlusion-Buffer

• Ideales Verfahren→ In Szene um P eine Kugel mit Radius r legen→ Über die Kugel integrieren, wie AO→ Volumen bestimmen, geschnitten mit der Szene→ Volumen approximieren zur Umgebungsverdeckung in P

• Ideales Vorgehen viel zu aufwändig

19. Juli 2010

P3D-Szene

Page 20: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 20

3. Screen Space Ambient Occlusion & ähnliche

• Funktionsweise – SSAO• Annäherung - Depth-Buffer und Abtast-Kernel

→ Pixel in Bildebene wählen Punkt in Objektebene→ Kugel um Pixel, Abtast-Punkte auf Kugeloberfläche (Kernel) → Jeder Abtast-Punkt hat eine errechnete Tiefe (Kernel)→ Vergleich mit Tiefenbild der Szene

→ Abtast-Punkte überdeckt oder nicht→ Verdeckungswert für Pixel anhand Verhältnis Überdeckungen

19. Juli 2010

Kernel

Pixel

Abtast-Punkt

Bildebene Tiefenbild

Page 21: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 21

3. Screen Space Ambient Occlusion & ähnliche

• SSAO - Pipeline

19. Juli 2010

Bildebene(Viewport)

Tiefenwerte

Bildebene(Viewport)

Page 22: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 22

3. Screen Space Ambient Occlusion & ähnliche

19. Juli 2010

[Crytek, CryEngine 3]

[Avalanche Studios, Just Cause 2]

SSAO - Beispiele

SSAO - AnSSAO - Aus

SSAO - Aus

SSAO - An

Page 23: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 23

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 24: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 24

Bildebene

P P

3. Screen Space Ambient Occlusion & ähnliche

• ähnliche Techniken• Hardwarebeschleunigtes AO – 2 Phasen (Shanmugamand, Arikan. 2007)

• 1. Phase - Image Space Ansatz (für hohe Detaildichte) Depth-Buffer benutzt Nachbarpunkte von P als „Verdeckungs“-Kugeln

→ Jeweils approximierter Verdeckungswert→ Abhängig von Position und Entfernung der Kugel zu P→ Verdeckungswerte auf Pixel der Bildebene projiziert → Verschattung von Pixel anhand Nachbar-Pixel-Werte (Kernel)

19. Juli 2010

P

Page 25: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 25

3. Screen Space Ambient Occlusion & ähnliche

• 2. Phase - Distant-Occluder Ansatz (für niedrige Detaildichte) Approximation der Szene in Kugeln Kugeln in Bildebene als Flächen Ambient Occlusion auf Flächen Verdeckungswerte auf Szene übertragen

19. Juli 2010

AO

Page 26: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 26

3. Screen Space Ambient Occlusion & ähnliche

• ähnliche Techniken• Image Enhancement by Unsharp Masking the Depth Buffer (Luft, 2006)

Angelehnt an Kunsttechnischen Effekt Schattenwurf/Aufhellung an Objektgrenzen

Tiefenwahrnehmung simuliert „Idee“ von Ambient Occlusion!

19. Juli 2010

[Dali] [Picasso] [Seurat]

Page 27: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 27

3. Screen Space Ambient Occlusion & ähnliche

• Bild-Kontrastverstärkung• Räumliche Abhängigkeiten von Objekten

Lokale Begrenzung in der Anwendung (an Konturen)

19. Juli 2010

Phong-ShadingTiefeninformation Verdunkelte Kontur

Funktionsweise - Unsharp Masking the Depth Buffer:

Verdunkelung

Page 28: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 28

3. Screen Space Ambient Occlusion & ähnliche

19. Juli 2010

Raum-Wichtigkeit Gewichtung

Funktionsweise - Unsharp Masking the Depth Buffer:

[Ergebnis]

Ableitungder Tiefenfkt.

AnAus

Page 29: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 29

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 30: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 30

4. Fokustiefe und Motion Blur

• Depth of Field - Fokustiefe

• Optische-Grundlagen der Schärfedefinition (Schärfentiefe etc.)• Circle of Confusion (CoC), der Zerstreuungskreis• Fokusebene• Objektebene• Linse

19. Juli 2010

BildebeneFocus-Linse

Circle of Confusion(Zerstreuungskreis)

FokuspunktObjektebeneBrennpunkt

Page 31: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 31

4. Fokustiefe und Motion Blur

• Depth of Field - Fokustiefe

• 5 Arten von DoF-Techniken:

Diffuses Raytracing über Fokus-Linse Accumualations-Puffer Techniken Layer-Basierte Techniken

Forward-Mapped Z-Buffer Techniken (Sprites Blending)- Punkte nicht in Fokusebene- Pixel unscharf (über Pixel-Tiefe)

Unschärfe-Bereich in Frame-Buffer schreiben

Reverse-Mapped Z-Buffer Techniken (Texture-Mapping)- Pixel-Unschärfe anhand Tiefen-Buffer-Differenz

19. Juli 2010

in Echtzeit

alsPostprocess

Page 32: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 32

4. Fokustiefe und Motion Blur

• Depth of Field - Fokustiefe

19. Juli 2010

DoF - ON

DoF - OFF

[Just Cause 2]

[Crysis]

Page 33: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 33

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 34: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 34

4. Fokustiefe und Motion Blur

• Motion Blur - Bewegungsunschärfe

Verfahren:

• Geschwindigkeitsbild der Szene notwendig

• Depth-Buffer, Viewport-Projektions-Matrix für jedes FramePixelpositionen der letzten Frames

• Differenz der Frame-PixelpositionenGeschwindigkeitsbild, GeschwindigkeitsvektorAbtasten und Mitteln von Pixel-Werten in Richtung des Vektors

Blur-Effekt

19. Juli 2010

Page 35: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 35

4. Fokustiefe und Motion Blur

• Motion Blur - Bewegungsunschärfe

19. Juli 2010

[Test Driver Unlimited 2]

[Speed Forge Extreme]

[Killzone 2]

[GTA 4]

Page 36: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 36

Inhaltsverzeichnis

1. Einführung• Definition Postprocessing• Überblick - Postprocessing generierte Bildeffekte• Einordnung in den Bildsyntheseprozess

2. Deferred Shading• Grundlagen

3. Screen Space Ambient Occlusion & ähnliche Techniken• Grundlage - Ambient Occlusion Technik• Screen Space Ambient Occlusion• ähnliche Techniken

4. Fokustiefe und Motion Blur• Depth of Field - Fokustiefe• Motion Blur - Bewegungsunschärfe

5. Fazit

19. Juli 2010

Page 37: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 37

5. Fazit

Zukünftige Entwicklung:

• Echtzeit-Berechnung von Effekten

• Auf Kosten physikalischer Korrektheit

• Postprocessing übernimmt mehr Aufgaben

• Neue Effekte können realisiert werden

• Bestehende Effekte können verlagert werden

• Entlastung der restlichen Grafik-Pipeline

19. Juli 2010

Page 38: Algorithmen für Computerspiele Alexander Martin 19. Juli 2010 Postprocessing.

Algorithmen für Computerspiele - Postprocessing 38

Fragen

Fragen?

19. Juli 2010