Light pre-pass renderer

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Klasyfikacja roczna w roku szkolnym 2012/2013
ZARZĄDZANIE ZAPASAMI.
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Modele oświetlenia Punktowe źródła światła Inne
Przetwarzanie i rozpoznawanie obrazów
WYKŁAD 6 ATOM WODORU W MECHANICE KWANTOWEJ (równanie Schrődingera dla atomu wodoru, separacja zmiennych, stan podstawowy 1s, stany wzbudzone 2s i 2p,
TERMO-SPRĘŻYSTO-PLASTYCZNY MODEL MATERIAŁU
Czym jest i czym nie jest fala?
Filtracja obrazów cd. Filtracja obrazów w dziedzinie częstotliwości
Implementacja algorytmów na procesory kart graficznych
Przekształcenia afiniczne
Pracownia Gier w OpenGL
Grafika komputerowa Wykład 8 Wstęp do wizualizacji 3D
Materiały pochodzą z Platformy Edukacyjnej Portalu
KONKURS WIEDZY O SZTUCE
Zagadnienie transportowe
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
Pojęcia podstawowe, historia komputera, rodzaje komputerów.
Rozpoznawanie obrazów
Proces analizy i rozpoznawania
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Linear Methods of Classification
Wstęp do geofizycznej dynamiki płynów. Semestr VI. Wykład
Wstęp do geofizycznej dynamiki płynów. Semestr VI. Wykład
Karolina Danuta Pągowska
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Przykładowe zastosowania równania Bernoulliego i równania ciągłości przepływu 1. Pomiar ciśnienia Oznaczając S - punkt spiętrzenia (stagnacji) strugi v=0,
Jaki jest następny wyraz ciągu: 1, 2, 4, 8, 16, …?
Dyskretny szereg Fouriera
Transformacja Z (13.6).
Przedstawienie Raportu z badań satysfakcji klientów i Jakości wody w opinii mieszkańców Gdańska i Sopotu.
Tytuł prezentacji Warszawa, r..
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Technika Mikroprocesorowa 1
Projektowanie Stron WWW
Rok 2013 jeszcze trwa, rozpoczął się ostatni kwartał tego roku, ale jaki wspaniały. Od malowanej brązem i złotem jesieni, pełnej koszy pachnących grzybów.
Wyrażenia algebraiczne
Produkcja skojarzona w systemie elektroenergetycznym
Kalendarz 2011 Real Madryt Autor: Bartosz Trzciński.
Kalendarz 2011 Oto ciekawy kalendarz, który zaprojektował
KALENDARZ 2011r. Autor: Alicja Chałupka klasa III a.
Rendering realistycznej wody jako efekt post-process
Michał Drobot Technical Art Director Reality Pump
Projektowanie i produkcja nowoczesnych hal stalowych za pomocą
Grafika komputerowa Wykład 11 Analiza widoczności
Karty graficzne Karta graficzna, często określana też mianem akcelerator grafiki, to element komputera tworzący sygnał dla monitora. Podstawowym zadaniem.
Rozwiązania informatyczne dla przedsiębiorstw
1/34 HISTORIA BUDOWY /34 3/34 6 MAJA 2011.
Plan prezentacji Zarys projektu Geneza tematu
Zaawansowane techniki renderingu
Zwiększenie wykorzystania energii z OZE w budownictwie
Analiza wpływu regulatora na jakość regulacji (1)
Analiza wpływu regulatora na jakość regulacji
Tanzania: między tradycją a nowoczesnością
Wykład 22 Modele dyskretne obiektów.
Lekcja 13 Strona 15. Lekcja 13 Strona 16 Lekcja 13 Strona 17 Vertical primary and secondary Tesla coil Jacobs ladder.
Kalendarz 2011r. styczeń pn wt śr czw pt sb nd
Innowacyjne metody napawania
Wojciech Toman. Dotychczasowe podejście do oświetlenia Idea deferred shadingu Typowe problemy wraz z propozycjami rozwiązania Optymalizacja wydajności.
1 Jak by tu po-współpracować z innymi ? a może coś jeszcze… Word 2007.
Matematyka i system dwójkowy
(C) Jarosław Jabłonka, ATH, 5 kwietnia kwietnia 2017
EcoCondens Kompakt BBK 7-22 E.
6 CZERWIEC 2014 r PIECZĘĆ z 1236 r. 10.
Algorytm Z-Bufora (bufora głębokości)
Kalendarz 2020.
Wyniki Ankiety odnośnie zdrowego odżywiania
Elementy geometryczne i relacje
Draver/GRK/cw3_result.jpg. Grafika 3D Wprowadzenie.
Zapis prezentacji:

Light pre-pass renderer Marcin Korniluk

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

Podejście Klasyczne To każdy zna Marcin Korniluk - Light Pre-Pass Renderer

Podejście klasyczne Opcja 1: Jeden przebieg Opcja 2: Wiele przebiegów 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

Z Pre-Pass Carmacka 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 Marcin Korniluk - Light Pre-Pass Renderer

Deferred Shading Przypomnienie Marcin Korniluk - Light Pre-Pass Renderer

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

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

Deferred shading – etap geometrii Dane sceny zapisywane do kilku buforów R8 G8 B8 A8 Depth Stencil Lighting Accumulation RGB Intensity Normal.x Normal.y Motion.x Motion.y Spec-power Spec-Intensity Diffuse Albedo RGB Sun-Occlusion Marcin Korniluk - Light Pre-Pass Renderer

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

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

Light Pre-Pass Renderer Nowe podejście Light Pre-Pass Renderer Marcin Korniluk - Light Pre-Pass Renderer

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

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

Light pre-pass – przygotowanie Do bufora zapisujemy normalne i głębokość Potrzebne do oświetlenia Wystarczy jeden RT RGBA8 Sortowanie „od najbliższego” R8 G8 B8 A8 Normal.x Normal.y Depth Marcin Korniluk - Light Pre-Pass Renderer

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

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

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

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

Pakowanie danych – kolor RGB źle się pakuje Można pominąć kolor zwierciadlany Może YUV? R8 G8 B8 A8 Diffuse.r Diffuse.g Diffuse.b Specular Marcin Korniluk - Light Pre-Pass Renderer

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

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

Light pre-pass – rysowanie, cd. Przykładowy pixel shader 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); Marcin Korniluk - Light Pre-Pass Renderer

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

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

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

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

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

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

Demo Marcin Korniluk - Light Pre-Pass Renderer

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

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