Wojciech Toman. Dotychczasowe podejście do oświetlenia Idea deferred shadingu Typowe problemy wraz z propozycjami rozwiązania Optymalizacja wydajności.

Slides:



Advertisements
Podobne prezentacje
Monitory i systemy graficzne
Advertisements

Modele oświetlenia Punktowe źródła światła Inne
Krzysztof Skabek, Przemysław Kowalski
Podstawy grafiki komputerowej
Implementacja algorytmów na procesory kart graficznych
Przekształcenia afiniczne
Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych.
Grafika komputerowa Wykład 8 Wstęp do wizualizacji 3D
Interaktywny edytor terenu
Interaktywny edytor terenu
Obliczenia równoległe w grafice komputerowej
Obróbka konwencjonalnych zdjęć RTG
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Oprogramowanie rejestratora pikosekundowych przebiegów elektrycznych
Renderowanie oceanu Źródło: „Procedural Ocean Effects” László Szécsi Khashayar Arman Budapest University of Technology.
Geometria obrazu Wykład 11
Geometria obrazu Wykład 13
Geometria obrazu Wykład 11
wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Zarządzanie innowacjami
Dalsze elementy metodologii projektowania. Naszym celem jest...
Modele (graficznej reprezentacji) danych przestrzennych
Wstęp do programowania urządzeń z systemem. Windows Phone 7
GEOMETRIA PROJEKT WYKONALI: Wojciech Szmyd Tomasz Mucha.
Rzut równoległy Rzuty Monge’a - część 1
Instytut Tele- i Radiotechniczny WARSZAWA
Podstawowe pojęcia i problemy związane z przetwarzaniem plików graficznych.
KINECT – czyli z czym to się je?. O czym będziemy mówić? Obecna oferta rynkowa. Co to jest i jak działa Kinect? Jak przygotować komputer do pracy z Kinectem?
Symulacje komputerowe Detekcja kolizji brył sztywnych Fizyka w modelowaniu i symulacjach komputerowych Jacek Matulewski (
Rendering realistycznej wody jako efekt post-process
PRZEDSTAWIENIE ZA POMOCĄ METOD GRAFICZNYCH OPERACJI PIONOWANIA MECHANICZNEGO W SZYBIE Opracowali Paulina Lewińska Maciej Włodarczyk.
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.
Programowanie gier komputerowych Tomasz Martyn
1.Z ogólnego, niezależnego od implementacji punktu widzenia, dane stanowiące opis geometrii modelu zorganizowane są w skończoną sekwencję (lub grupę sekwencji)
Light pre-pass renderer
Rzut cechowany dr Renata Jędryczka
Zaawansowane techniki renderingu
Konfiguracja systemu Windows
Przygotowała Patrycja Strzałka.
Buforowanie D e f i n i c j a.
Zapis graficzny płaszczyzn
Algorytm Z-Bufora (bufora głębokości)
Aplikacje internetowe
Metody odszumiania sygnałów
Grafika i komunikacja człowieka z komputerem
Informatyka +.
Grafika Komputerowa i wizualizacja
Grafika i komunikacja człowieka z komputerem
Teksturowanie obiektów z wykorzystaniem reprogramowalnych modułów do obliczania cieniowania Daniel Kos promotor: dr inż. Radosław Mantiuk Wydział Informatyki,
Grafika i komunikacja człowieka z komputerem
Teksturowanie oraz algorytmy cieniowania
Geometria obrazu Wykład 6
Teksturowanie w grafice komputerowej
WYKŁAD 11 ZJAWISKA DYFRAKCJI I INTERFERENCJI ŚWIATŁA; SPÓJNOŚĆ
Grafika rastrowa - parametry
Podsumowanie omówionych zagadnień
Draver/GRK/cw3_result.jpg. Grafika 3D Wprowadzenie.
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
Informatyka Zakres rozszerzony. GEOMETRIA - (gr. γεωμετρία; geo – ziemia, metria – miara) dział matematyki badający figury i zależności między nimi.gr.
S KANER TĘCZÓWKI OKA Praca dyplomowa inżynierska – Maciej Stępski
Akademia ETI 2016 LABORATORIUM 2 – OBSŁUGA WYŚWIETLACZA GRAFICZNEGO.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Grafika wektorowa Konrad Janiszewski, kl. 2 . Co to jest? jeden z dwóch podstawowych rodzajów grafiki komputerowej, w której obraz opisany jest za pomocą.
Figury geometryczne.
Struktury i algorytmy wspomagania decyzji
Opracowała: Iwona kowalik
ZASTOSOWANIA Systemów wizyjnych
Zapis prezentacji:

Wojciech Toman

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

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ł

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

Rozbicie renderingu na dwie fazy: Geometrii Oświetlenia

Właściwości geometryczne sceny 3D są renderowane do kilku render targetów Render-targety te noszą nazwę G-Bufora (ang. G- Buffer), bufora geometrii Użycie mechanizmu MRT (ang. Multiple Render Target) Zwykle duża głębia dla zachowania precyzji przechowywanych danych

Renderowane dane Kolor rozpraszania Wektory normalne Informacje o położeniu pikseli Specular Glow Ambient-term Itd.

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

Kolor rozpraszania Przykład zawartości G-Bufora

Wektory normalne w przestrzeni widoku Przykład zawartości G-Bufora

Odwrotność głębokości pikseli w przestrzeni widoku Przykład zawartości G-Bufora

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

światło

Kilka kolorowych świateł punktowych wykorzystujących specular Przykład oświetlonej sceny

Kilka kolorowych świateł punktowych wykorzystujących specular oraz atmospheric scaterring Przykład oświetlonej sceny

Problemy

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 render targetó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

Filtr wykrywający krawędzie Anti-aliasing w DirectX 9.0c

Brak anti-aliasinguWłączony anti-aliasing

Brak anti-aliasinguWłączony anti-aliasing

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)

Wszystkie render targety 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) – pixel shader musi być wykonany, a zatem test jest mniej przydatny

Diagram konceptualny DirectX SDK 9.0c

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

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

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)

Pakowanie wektora położenia float3 eyeVec = float3(IN.position.x * aspect, IN.position.y, invTanHalfFov); float3 P = normalize(eyeVec) * depth;

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

ZaletyWady 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-rate bound Problemy z anti- aliasingiem Problemy z alpha- blendingiem Bardzo wysokie wymagania sprzętowe