Deferred shading jako wydajna technika o wietlenia
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

Deferred shading jako wydajna technika oświetlenia PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Deferred shading jako wydajna technika oświetlenia

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


Deferred shading jako wydajna technika o wietlenia

Deferredshading jako wydajna technika oświetlenia

Wojciech Toman


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


Deferred shading jako wydajna technika o wietlenia1

Deferredshading jako wydajna technika oświetlenia

Dotychczasowe podejście


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


Deferred shading jako wydajna technika o wietlenia2

Deferredshading jako wydajna technika oświetlenia

Idea deferredshadingu


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 bufora

Przykład zawartości G-Bufora

Kolor rozpraszania


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 sceny

Przykład oświetlonej sceny

światło


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


Deferred shading jako wydajna technika o wietlenia3

Deferredshading jako wydajna technika oświetlenia

Problemy


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


Deferred shading jako wydajna technika o wietlenia4

Deferredshading jako wydajna technika oświetlenia

Optymalizacja wydajności


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


Deferred shading jako wydajna technika o wietlenia5

Deferredshading jako wydajna technika oświetlenia

Podsumowanie


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


  • Login