deferred shading jako wydajna technika o wietlenia
Download
Skip this Video
Download Presentation
Deferred shading jako wydajna technika oświetlenia

Loading in 2 Seconds...

play fullscreen
1 / 33

Deferred shading jako wydajna technika oświetlenia - PowerPoint PPT Presentation


  • 152 Views
  • Uploaded on

Deferred shading jako wydajna technika oświetlenia. Wojciech Toman. Omawiane zagadnienia. Dotychczasowe podejście do oświetlenia Idea deferred shadingu Typowe problemy wraz z propozycjami rozwiązania Optymalizacja wydajności Integracja z modułem renderującym Podsumowanie.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Deferred shading jako wydajna technika oświetlenia' - arne


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
omawiane zagadnienia
Omawiane zagadnienia
  • Dotychczasowe podejście do oświetlenia
  • Idea deferredshadingu
  • Typowe problemy wraz z propozycjami rozwiązania
  • Optymalizacja wydajności
  • Integracja z modułem renderującym
  • Podsumowanie
dotychczasowe podej cie
Dotychczasowe podejście
  • Renderowanie świateł z użyciem wielu przebiegów renderingu:
    • Duża złożoność czasowa: O(liczba_świateł * liczba_obiektów)
    • Brak możliwości uzyskania dobrego batchingu (sortowanie po światłach lub geometrii) – częste przełączanie shaderów i stanów urządzenia
  • Wniosek: na geometrię wpływa tylko część świateł
dotychczasowe podej cie1
Dotychczasowe podejście
  • Uniwersalne shadery:
    • 1 przebieg renderingu
    • Inne zachowanie shaderów dla 1, 2, …, n świateł i wszystkich przewidzianych kombinacji modeli oświetlenia
    • Długi, nieczytelny kod shadera
    • Konieczność stosowania branchingu bądź makr
    • Nieelastyczność – ciężko dodać nowe światło
    • Przyzwoity batching przy sortowaniu po materiałach
idea deferred shadingu
Idea deferredshadingu
  • Rozbicie renderingu na dwie fazy:
    • Geometrii
    • Oświetlenia
faza geometrii
Faza geometrii
  • Właściwości geometryczne sceny 3D są renderowane do kilku rendertargetów
    • Render-targety te noszą nazwę G-Bufora (ang. G-Buffer), bufora geometrii
    • Użycie mechanizmu MRT (ang. MultipleRender Target)
    • Zwykle duża głębia dla zachowania precyzji przechowywanych danych
faza geometrii1
Faza geometrii
  • Renderowane dane
    • Kolor rozpraszania
    • Wektory normalne
    • Informacje o położeniu pikseli
    • Specular
    • Glow
    • Ambient-term
    • Itd.
faza geometrii2
Faza geometrii
  • Wiele właściwości materiału jest stałych w ramach powierzchni
    • Zastosowanie bufora materiałów
      • Tekstura zawierająca potrzebne dane, w której każdy wiersz odpowiada innemu materiałowi
      • Tablica stałych shadera
    • Wniosek: jednym z atrybutów zapisywanych w G-Buforze jest indeks materiału
przyk ad zawarto ci g bufora1
Przykład zawartości G-Bufora

Wektory normalne w przestrzeni widoku

przyk ad zawarto ci g bufora2
Przykład zawartości G-Bufora

Odwrotność głębokości pikseli w przestrzeni widoku

faza o wietlenia
Faza oświetlenia
  • Dekodowanie danych zawartych w G-Buforze
  • Obliczenia zgodnie z przyjętym modelem oświetlenia
    • Dowolny, zależy tylko od użytego shadera
  • Rendering prostokąta z włączonym blendingiem addytywnym dla każdego światła
  • Wniosek: liczba źródeł światła teoretycznie jest nieograniczona
przyk ad o wietlonej sceny1
Przykład oświetlonej sceny

Kilka kolorowych świateł punktowych wykorzystujących specular

przyk ad o wietlonej sceny2
Przykład oświetlonej sceny

Kilka kolorowych świateł punktowych wykorzystujących specular oraz atmosphericscaterring

problemy anti aliasing
Problemy – Anti-aliasing
  • MRT nie wspiera sprzętowego anti-aliasingu
  • Wszystkie obliczenia wykonywane są w przestrzeni ekranu – brak informacji o krawędziach
  • Rozwiązania
    • Akceptacja problemu – kompromis pomiędzy jakością a wydajnością renderingu
    • Over-sampling – rendering obrazu do rendertargetów o rozdzielczości przekraczającej rozdzielczość widoku
    • Własny filtr post-process – wykrywanie krawędzi a później ich wygładzenie
    • W DirectX 10 możliwy dostęp bezpośrednio do próbek MSAA – możliwość przeprowadzenia anti-aliasingu w oparciu o dowolny wzorzec
anti aliasing w directx 9 0c
Anti-aliasing w DirectX 9.0c

Filtr wykrywający krawędzie

anti aliasing w directx 9 0c1
Anti-aliasing w DirectX 9.0c

Brak anti-aliasingu

Włączony anti-aliasing

anti aliasing w directx 9 0c2
Anti-aliasing w DirectX 9.0c

Brak anti-aliasingu

Włączony anti-aliasing

problemy alpha blending
Problemy – Alpha-blending
  • Alpha-blending jest koszmarem!
    • Standardowe podejście nie działa
    • Istniejące rozwiązania mają liczne wady
  • Rozwiązania
    • Rendering wszelkich półprzezroczystych obiektów po narysowaniu pozostałych
    • Depth-peeling lub A-Buffer (praktycznie tylko w przypadku DirectX 10)
problemy fill rate bound
Problemy – Fill-ratebound
  • Wszystkie rendertargety zwykle odpowiadają rozdzielczości ekranu
  • Wiele odczytów i zapisów do tekstur
  • Rozwiązanie
    • Nierysowanie całoekranowych prostokątów
      • Scissor-test – wykonywany dużo wcześniej niż na konceptualnym diagramie w DirectX SDK – możliwość odrzucenia całych fragmentów przed wykoniem pixel shadera
      • Stencil-test (uruchamiany później) – pixelshader musi być wykonany, a zatem test jest mniej przydatny
problemy fill rate bound1
Problemy – Fill–ratebound

Diagram konceptualny DirectX SDK 9.0c

problemy fill rate bound2
Problemy – Fill-ratebound
  • Scissor-test
    • Zwykła projekcja świateł do przestrzeni ekranu może wygenerować zbyt duże prostokąty oraz artefakty związane z umiejscowieniem kamery w bryle otaczającej światła
    • Alternatywa: zastosowanie algorytmu zaproponowanego przez Lengyela
problemy fill rate bound3
Problemy – Fill-ratebound
  • Algorytm Lengyela
    • Konstrukcja czterech płaszczyzn przechodzących przez punkt, w którym umieszczona jest kamera i stycznych do bryły otaczającej światła
    • Wyznaczenie przecięcia płaszczyzn z płaszczyzną obrazu
    • Punkty przecięcia to szukane współrzędne prostokąta dla scissor testu
optymalizacja wydajno ci
Optymalizacja wydajności
  • Sumowanie wpływu świateł
  • Odrzucanie świateł, które w małym stopniu wpływają na wygląd sceny
  • Pakowanie
    • Wektory normalne – jeśli obliczenia wykonywane są w przestrzeni widoku to wszystkie trójkąty front-faced mają ten sam znak, a back-faced – przeciwny
      • Możliwe jest zastosowanie twierdzenia Pitagorasa - przechowywanie tylko 2 współrzędnych
    • Zamiast całego wektora położenia przechowywanie jedynie długości wektora położenia w przestrzeni widoku (głębokości piksela)
optymalizacja wydajno ci1
Optymalizacja wydajności
  • Pakowanie wektora położenia

float3eyeVec = float3(IN.position.x * aspect, IN.position.y, invTanHalfFov);

float3P = normalize(eyeVec) * depth;

integracja z modu em renderuj cym
Integracja z modułem renderującym
  • Zwykle bezproblemowa
  • Zastosowanie HDRI
  • Efekty post-process można traktować jako światła globalne
    • Łańcuch renderingu upraszcza się do dwóch faz
  • Konieczność dobrego zaplanowania G-Bufora
    • Przeprojektowanie może się wiązać z koniecznością przerobienia większości shaderów
podsumowanie
Podsumowanie
  • Wydajne rysowanie bardzo dużej liczby świateł
  • Niemal doskonały batching - lepszy oferują jedynie bufory świateł
  • Wysoka elastyczność
  • Łatwa integracja z modułem renderującym
  • Duże zużycie pamięci karty graficznej (zwykle kilkadziesiąt MB)
  • Fill-ratebound
  • Problemy z anti-aliasingiem
  • Problemy z alpha-blendingiem
  • Bardzo wysokie wymagania sprzętowe

Zalety

Wady

ad