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

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

Embed Size (px)

Citation preview

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