Deferred shading jako wydajna technika o wietlenia
Download
1 / 33

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


  • 140 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.

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

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 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


ad
  • Login