Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Light pre-pass renderer Marcin Korniluk. Plan prezentacji Podejście klasyczne i Z pre-pass Carmacka Deferred shading Light pre-pass renderer Demo Podsumowanie.

Podobne prezentacje


Prezentacja na temat: "Light pre-pass renderer Marcin Korniluk. Plan prezentacji Podejście klasyczne i Z pre-pass Carmacka Deferred shading Light pre-pass renderer Demo Podsumowanie."— Zapis prezentacji:

1 Light pre-pass renderer Marcin Korniluk

2 Plan prezentacji Podejście klasyczne i Z pre-pass Carmacka Deferred shading Light pre-pass renderer Demo Podsumowanie Marcin Korniluk - Light Pre-Pass Renderer 2

3 PODEJŚCIE KLASYCZNE To każdy zna Marcin Korniluk - Light Pre-Pass Renderer 3

4 Podejście klasyczne Opcja 1: Jeden przebieg Warianty shaderów dla różnych świateł Słaby batching Opcja 2: Wiele przebiegów Mało shaderów Dużo niepotrzebnej pracy Minimalizacja ilości przetwarzanych świateł Marnotrawstwo cykli Marcin Korniluk - Light Pre-Pass Renderer 4

5 Z Pre-Pass Carmacka Marcin Korniluk - Light Pre-Pass Renderer 5 Pierwszy przebieg rysuje tylko głębię Sortowanie od najbliższych Prosty shader Drugi przebieg rysuje resztę Kompletne shadery Minimalna nadmiarowość rysowania Nadal wiele wad Wykorzystane przez producentów GPU

6 DEFERRED SHADING Przypomnienie Marcin Korniluk - Light Pre-Pass Renderer 6

7 Deferred shading Pomysł padł na SIGGRAPH 88 Złożoność oświetlenia O(n+m) zamiast O(nm) Rozbicie renderowania na 2 etapy Geometrii Oświetlenia Marcin Korniluk - Light Pre-Pass Renderer 7

8 Deferred shading – cd. Obiekty lite Obiekty przezroczyste Marcin Korniluk - Light Pre-Pass Renderer 8 NormalneGłębokość Oświetlenie i rysowanie Rysowanie 2 IntensywnośćKolor

9 Deferred shading – etap geometrii Dane sceny zapisywane do kilku buforów Marcin Korniluk - Light Pre-Pass Renderer 9 R8G8B8A8 DepthStencil Lighting Accumulation RGBIntensity Normal.xNormal.y Motion.xMotion.ySpec-powerSpec-Intensity Diffuse Albedo RGBSun-Occlusion

10 Deferred shading – etap oświetlenia Światła jako bryły Parametry per pixel pobierane z G-Bufora Możliwa duża ilość świateł Marcin Korniluk - Light Pre-Pass Renderer 10

11 Deferred shading – wady Anti-aliasing Brak sprzętowego wsparcia MSAA Alpha blending Nie można zapisywać głębokości obiektów przezroczystych Fill rate bound Ograniczenia materiałów Materiały muszą być prawie jednakowe Marcin Korniluk - Light Pre-Pass Renderer 11

12 LIGHT PRE-PASS RENDERER Nowe podejście Marcin Korniluk - Light Pre-Pass Renderer 12

13 Light pre-pass renderer Wolfgang Engel – czerwiec 2007 Lekkie podejście do deferred shadingu 3 etapy renderowania Przygotowanie Oświetlenie Rysowanie Marcin Korniluk - Light Pre-Pass Renderer 13

14 Light pre-pass renderer – cd. Obiekty lite Obiekty przezroczyste Marcin Korniluk - Light Pre-Pass Renderer 14 NormalneGłębokość Oświetlenie Rysowanie Rysowanie 2

15 Light pre-pass – przygotowanie Do bufora zapisujemy normalne i głębokość Potrzebne do oświetlenia Wystarczy jeden RT RGBA8 Sortowanie od najbliższego Marcin Korniluk - Light Pre-Pass Renderer 15 R8G8B8A8 Normal.xNormal.yDepth

16 Pakowanie danych – normalna Trzecią współrzędną normalnej da się wyznaczyć Twierdzenie Pitagorasa Znak jest stały (w większości przypadków) Dla RT RGBA16F nie trzeba pakować Marcin Korniluk - Light Pre-Pass Renderer 16

17 Pakowanie danych – pozycja Wystarczy zapisać długość wektora Marcin Korniluk - Light Pre-Pass Renderer 17 float3 eyeVec = float3(x * aspect, y, 1/tan(fov/2)); float4 pixelPosView = float4(normalize(eyeVec) * depth;

18 Light pre-pass – przygotowanie, cd. Marcin Korniluk - Light Pre-Pass Renderer 18

19 Light pre-pass – oświetlenie Do bufora zapisywane oświetlenie Światła renderowane jako bryły Wystarczy jeden RT RGBA8 HDR Techniki optymalizacji jak w deferred shading Takie same zalety I wady Marcin Korniluk - Light Pre-Pass Renderer 19

20 Pakowanie danych – kolor RGB źle się pakuje Można pominąć kolor zwierciadlany Może YUV? Marcin Korniluk - Light Pre-Pass Renderer 20 R8G8B8A8 Diffuse.rDiffuse.gDiffuse.bSpecular

21 Light pre-pass – oświetlenie, cd. Marcin Korniluk - Light Pre-Pass Renderer 21

22 Light pre-pass – rysowanie Rysowanie od najbliższego Minimalna nadmiarowość Dowolność materiałów Obiekty przezroczyste rysowane klasycznie Podobnie jak w deferred shading Marcin Korniluk - Light Pre-Pass Renderer 22

23 Light pre-pass – rysowanie, cd. Przykładowy pixel shader Marcin Korniluk - Light Pre-Pass Renderer 23 float3 normal = normalize(psIn.normal); float3 light = normalize(psIn.light); float3 view = normalize(psIn.view); float3 diffuseLight = getDiffuseLight(normal,light); float3 specularLight = getSpecularLight(normal,light,view);

24 Light pre-pass – rysowanie, cd. Przykładowy pixel shader Marcin Korniluk - Light Pre-Pass Renderer 24 float3 diffuseLight = LightBuffer.Sample(sampler,psIn.position).xyz; float specularLight = LightBuffer.Sample(sampler,psIn.position).w;

25 Anti-aliasing Sprzętowy MSAA Nie jest tak różowo Marcin Korniluk - Light Pre-Pass Renderer 25

26 Rozmiar ramki obrazu Deferred shading Light pre-pass Marcin Korniluk - Light Pre-Pass Renderer 26

27 Light pre-pass – wady Efekty z VS Displacement mapping Redundantna transformacja sceny Koszt porównywalny z generacją SM Idealna nadmiarowość odrysowywania Marcin Korniluk - Light Pre-Pass Renderer 27

28 Light pre-pass – wady, cd. Alpha-blending Przezroczyste obiekty rysowane klasycznie Depth-peeling, A-Buffer, SRK-Buffer, PP Linked List … Wysoki fill rate Niższy niż dla DS. Ulepszenia takie jak dla DS. Rysowanie brył otaczających Algorytm Lengyela Marcin Korniluk - Light Pre-Pass Renderer 28

29 Light pre-pass – wady, cd. 2 Rekonstrukcja koloru Nagięcie reguł daje dobre rezultaty Marcin Korniluk - Light Pre-Pass Renderer 29

30 Demo Marcin Korniluk - Light Pre-Pass Renderer 30

31 PODSUMOWANIE 2 slajdy do końca Marcin Korniluk - Light Pre-Pass Renderer 31

32 Podsumowanie Brak ograniczeń MRT Sprzętowy anti-aliasing Niski fill-rate Dwukrotne transformacje Ale bez oświetlenia Bardzo dobry batching Marcin Korniluk - Light Pre-Pass Renderer 32


Pobierz ppt "Light pre-pass renderer Marcin Korniluk. Plan prezentacji Podejście klasyczne i Z pre-pass Carmacka Deferred shading Light pre-pass renderer Demo Podsumowanie."

Podobne prezentacje


Reklamy Google