Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.

Ähnliche Präsentationen


Präsentation zum Thema: "Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm."—  Präsentation transkript:

1 Stefan Röttger Universität Stuttgart (VIS)

2 Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm

3 Motivation Shadow Volumes: + dynamische Schattenberechnung in Echtzeit + Nutzung der Grafikhardware (Stencil Buffer) Problem: Einschränkung auf neuste PC Grafikkarten (z.B. kein Stencil Buffer auf der Voodoo 3) NEU: Benutzung des Screen Buffers als Ersatz DAMIT: Lauffähig z.B. ab Voodoo 1 !

4 Shadow Volumes Schritt 1: Szene rendern  Z-Werte

5 Shadow Volumes Vorderseite: +1 Schritt 2: Shadow Volume Seiten rendern Rückseite: -1

6 Shadow Volumes Vorderseite: ±0 (Tiefentest) Rückseite:±0 (Tiefentest)  =±0

7 Shadow Volumes Vorderseite: +1 Rückseite:±0 (Tiefentest)  =+1 ±0

8 Shadow Volumes Vorderseite: +1 Rückseite:-1  =±0 ±0 +1

9 Shadow Volumes ±0 +1 ±0

10 Shadow Volumes Wiederholung mit allen schattenwerfenden Objekten Pixel mit Stencil Buffer Wert > 0 schwarz färben Szene erneut rendern um ambienten Beleuchtungsanteil hinzuzufügen Oder Helligkeitswerte im Schatten halbieren

11 Verfahren ohne Stencil Buffer Idee: Die Schattenmaske wird im Screen Buffer (RGB- oder Alpha-Kanal) berechnet, anstatt im Stencil Buffer Problem:dstColor = dstColor -1 nicht realisierbar Lösung:Anstatt +1 :*2 (verdopple Farbwert) Anstatt -1 :/2 (halbiere Farbwert)

12 Blendingfunktionen für *2, /2 weiss Farbwerte: 0  schwarz1  weiss Blendingfunktionen: c dst =f*c src + g*c dst *2: f=c dst, c src =1, g=1  c dst = c dst *1 + 1*c dst /2: f=0, g=0.5  c dst = 0 + c dst *0.5

13 Zustand eines Pixels Initialisiere alle Pixel mit Farbwert 1/4 1/41/21 *2 /2 *2 /2 *2 (Clamping!) „Eingabefolgen“: Punkt in Shadow Volume:*2 Punkt vor Shadow Volume:  Punkt hinter Shadow Volume:*2, /2

14 „Normierung“ auf 0/1 Nach dem Rendern aller Shadow Volumes: 1/41/21 *2 1/2 1 1 0 0 *2 LichtSchatten Invert (c:=1-c)

15 Anwendung der Schattenmaske Multipliziere s/w Schattenmaske mit Bild: Rendern der Szene, mit c dst = c dst * c src Szene erneut rendern um ambienten Beleuchtungsanteil hinzuzufügen mit c dst = c dst + c src Oder alternativ die Werte im Schatten halbieren mit Normierung auf 0.5/1 und c dst = c dst * c src

16 Beispiel: Shadow Volumes

17 Beispiel: *2, Inv, *2

18 Beispiel: Fertiges Bild

19 Berechnung im Alpha Kanal Alternativ kann kann die Schattenmaske auch im Alpha Kanal berechnet werden Angewendet wird die Schattenmaske durch Umkopieren des Alpha Kanals in eine gleich große Textur Vorteil: Berechnung der Schattenmaske mit niedrigerer Auflösung möglich  Schattenmaske wird schneller rasterisiert Szene muss bei Halbierung der Schattenwerte nicht noch einmal gerendert werden

20 Demonstrationsfilm

21 Zusammenfassung Effiziente Schattenberechnung auch ohne Stencil Buffer möglich Schattenmaske wird im Screen Buffer (oder im Alpha Kanal) aufgebaut Verwende *2, /2 anstatt +1, -1 Durch anschließendes Umkopieren in eine Textur kann die Schattenmaske auch in kleineren Auflösungen berechnet werden Wende die Schattenmaske nach Normalisierung an: ambiente Beleuchtung, schwarze Schatten, Helligkeit halbieren

22 Fin Fragen?


Herunterladen ppt "Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm."

Ähnliche Präsentationen


Google-Anzeigen