RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Podobne dokumenty
RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Plan wykładu. Akcelerator 3D Potok graficzny

Animowana grafika 3D. Opracowanie: J. Kęsik.

Gry komputerowe: efekty specjalne cz. 2

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Efekty dodatkowe w rasteryzacji

Filtrowanie tekstur. Kinga Laurowska

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Julia 4D - raytracing

Zaawansowana Grafika Komputerowa

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Oświetlenie obiektów 3D

GRAFIKA KOMPUTEROWA. Plan wykładu. 1. Początki grafiki komputerowej. 2. Grafika komputerowa a dziedziny pokrewne. 3. Omówienie programu przedmiotu

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

Animowana grafika 3D. Opracowanie: J. Kęsik.

Śledzenie promieni w grafice komputerowej

Architektura Komputerów

WSTĘP DO GRAFIKI KOMPUTEROWEJ

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Synteza i obróbka obrazu. Algorytmy oświetlenia globalnego

WPROWADZENIE DO GRAFIKI KOMPUTEROWEJ

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

21. W STARYM KINIE ŚWIATŁO

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Transformacje. dr Radosław Matusik. radmat

GRK 4. dr Wojciech Palubicki

Algorytmy oświetlenia globalnego

Architektura systemów komputerowych Ćwiczenie 3

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

Wymagania programowe z matematyki na poszczególne oceny w klasie III A i III B LP. Kryteria oceny

Autodesk 3D Studio MAX Teksturowanie modeli 3D

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Jak tworzyć dobre wizualizacje? Porady do wykorzystania w programie KD Max. MTpartner s.c.

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

Gry komputerowe, Informatyka N1, III Rok

PLAN KIERUNKOWY. Liczba godzin: 180

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

Grafika komputerowa i wizualizacja

LUBELSKA PRÓBA PRZED MATURĄ 09 MARCA Kartoteka testu. Maksymalna liczba punktów. Nr zad. Matematyka dla klasy 3 poziom podstawowy

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Matematyka z plusem Klasa IV

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony

Metody Optyczne w Technice. Wykład 5 Interferometria laserowa

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VI wg podstawy programowej z VIII 2008r.

MATeMAtyka 3 Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych

Uczeń otrzymuje ocenę dostateczną, jeśli opanował wiadomości i umiejętności konieczne na ocenę dopuszczającą oraz dodatkowo:

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

10.3. Typowe zadania NMT W niniejszym rozdziale przedstawimy podstawowe zadania do jakich może być wykorzystany numerycznego modelu terenu.

Egzamin maturalny z matematyki Poziom podstawowy ZADANIA ZAMKNIĘTE. W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawną odpowiedź.

1. Prymitywy graficzne

Zatem standardowe rysowanie prymitywów wygląda następująco:

Plan wynikowy klasa 3

Algorytmy renderingu dla programowalnych jednostek graficznych. prof. dr hab. inż. Maria Pietruszka mgr inż. Dominik Szajerman

1. Potęgi. Logarytmy. Funkcja wykładnicza

Wymagania edukacyjne z matematyki

1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE DLA KLAS 4-6 SP ROK SZKOLNY 2015/2016

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

Grafika komputerowa. Dla DSI II

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI W KLASIE IV

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych (zakres rozszerzony)

Kształcenie w zakresie rozszerzonym. Klasa IV

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

Rendering sceny z modelem węzła

SPRAWDZIAN NR Na zwierciadło sferyczne padają dwa promienie światła równoległe do osi optycznej (rysunek).

Karty graficzne możemy podzielić na:

MATEMATYKA. klasa IV. Podstawa programowa przedmiotu SZKOŁY BENEDYKTA

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc

Obraz cyfrowy. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

ARKUSZ ĆWICZENIOWY Z MATEMATYKI MARZEC 2012 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50

Analiza obrazów - sprawozdanie nr 2

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2013 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

ARKUSZ ĆWICZENIOWY Z MATEMATYKI MARZEC 2012 POZIOM PODSTAWOWY

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

17. Który z rysunków błędnie przedstawia bieg jednobarwnego promienia światła przez pryzmat? A. rysunek A, B. rysunek B, C. rysunek C, D. rysunek D.

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Co należy zauważyć Rzuty punktu leżą na jednej prostej do osi rzutów x 12, którą nazywamy prostą odnoszącą Wysokość punktu jest odległością rzutu

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

I. Potęgi. Logarytmy. Funkcja wykładnicza.

OpenGL przezroczystość

Wyświetlanie terenu. Clipmapy geometrii

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2013 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Transkrypt:

RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski

Plan wykładu Rendering cieni wprowadzenie Cienie w grafice komputerowej Rendering off-line i rendering w czasie rzeczywistym Cienie rozmyte i ostre Mapy cieni dla różnych źródeł światła Zasada działania techniki Światła punktowe Światła kierunkowe Reflektory, latarki, itp.

Plan wykładu c.d. Filtrowanie map cienia Technika PCF (Percentage Closer Filtering) Mapy cienia oparte o wariancję Technika VSM (Variance Shadow Maps) Głębokie mapy cienia (ang. Deep Shadow Maps) Cienie od obiektów półprzeźroczystych Cienie wolumetryczne

Literatura L. Williams, Casting Curved Shadows on Curved Surfaces, SIGGRAPH 1978 W. Reeves i inni, Rendering Antialiased Shadows with Depth Maps, SIGGRAPH 1987 M. Bunnell, F. Pellacini, Shadow Map Antialiasing, GPU Gems, 2004 R. Fernando, Percentage-Closer Soft Shadows, NVIDIA R. Dimitrov, Cascaded Shadow Maps, NVIDIA 2007

Literatura c.d. W. Donnelly, A. Lauritzen, Variance Shadow Maps, SI3D 2006 T. Lokovic, E. Veach, Deep Shadow Maps, SIGGRAPH 2000 D. Filion, R. McNaughton, StarCraft II: Effects and Techniques, SIGGRAPH 2008 S. Rottger i inni, Shadow Volumes Revisited, WSCG 2002

Rendering cieni wprowadzenie Cienie pozwalają na zwiększenie realizmu oglądanych scen 3D Cienie stanowią też istotną wskazówkę odnośnie rozłożenia obiektów w przestrzeni Jest to szczególnie ważne gdy oglądamy obraz płaski, bez głębi To wszystko powoduje, że cienie są obowiązkowym elementem niemalże każdej aplikacji stosującej grafikę 3D, zarówno czasu rzeczywistego jak i offline

Cienie w grafice komputerowej W zaawansowanych algorytmach renderingu offline cienie są generowane automatycznie Cienie w śledzeniu promieni Cienie w metodzie energetycznej Istnienie cieni zakłada sam projekt algorytmów, ich usunięcie natomiast na ogół powoduje trudności, a często wręcz uniemożliwia poprawne działanie tych technik

Cienie w grafice komputerowej

Cienie w grafice komputerowej

Cienie w grafice komputerowej W grafice czasu rzeczywistego, opartej o schemat rasteryzacji trójkątów, w wersji podstawowej algorytmu cieni nie ma Algorytm ten można (i należy) rozszerzyć o rendering cieni Niestety jest to trudne, głównie ze względu na ograniczoną precyzję, i dość kosztowne obliczeniowo Kompromis: na scenie z kilkunastoma (kilkudziesięcioma) światłami tylko kilka z nich rzuca cienie

Cienie w grafice komputerowej

Cienie rozmyte i ostre Źródła światła w rzeczywistości mają pewne określone rozmiary i rozbieżność kątową Modele stosowane w grafice czasu rzeczywistego pomijają ten szczegół, który jest istotny z punktu widzenia poprawnego renderingu cieni Światła punktowe i reflektory zajmują punkt w przestrzeni Światła kierunkowe emitują promienie równoległe, bez rozbieżności kątowej

Cienie rozmyte i ostre c.d. Cienie rozmyte powstają w tych miejscach, w których światło jest częściowo zasłonięte Dokładnie: w tych punktach, w których rzut światła na sferę wokół punktu jest częściowo przesłonięty przez rzuty obiektów sceny na tą sferę Dotyczy to kąta bryłowego, pod jakim widać światło, więc nie ma to znaczenia, czy światło jest kierunkowe, czy znajduje się na scenie W obu przypadkach modele świateł w grafice czasu rzeczywistego generują rzut w postaci punktu

Cienie rozmyte i ostre c.d. Punkt nie może być częściowo zasłonięty, więc bez specjalnych chwytów i sztuczek wszystkie cienie miałyby ostre krawędzie Założenia uwzględniane przy różnych chwytach: Cienie powinny być ostre blisko obiektu rzucającego cień Wraz ze wzrostem odległości i wielkości rzutu światła na sferę cienie powinny być coraz bardziej rozmyte Ze względu na koszt obliczeniowy, często rozmycie jest niezależne od odległości od obiektu rzucającego cień

Cienie rozmyte i ostre c.d.

Cienie rozmyte i ostre c.d.

Mapy cieni Aby obliczyć stopień zacienienia danego punktu, oprócz danych źródła światła, potrzebne są jeszcze informacje o wszystkich innych obiektach na scenie Informacje takie są dostępne w renderingu off-line Niestety nie są one dostępne w grafice czasu rzeczywistego opartej o algorytm rasteryzacji Technika: minimalny zbiór danych potrzebny do renderingu cieni zapisywany jest w teksturze, tzw. mapie cienia, która jest następnie uwzględniana w trakcie renderingu

Mapy cieni generacja Teksele mapy cienia dla danego źródła światła przechowują odległości odpowiadających im punktów na scenie od tego źródła światła Aby wygenerować mapę cienia należy wykonać rendering sceny z punktu widzenia źródła światła Test głębi musi być aktywny Wyjściem programu fragmentów jest wyłącznie odległość od źródła światła Mapa cienia będzie zawierać odległości najbliższych obiektów licząc od źródła światła

Mapy cieni rendering Mapa cienia jest dodatkową teksturą na każde źródło światła uwzględniane w trakcie jednego przebiegu W czasie renderingu należy policzyć odległość cieniowanego w danej chwili punktu od źródła światła Jeżeli ta odległość jest większa niż odległość zapisana w mapie cienia, to punkt jest w cieniu W przeciwnym wypadku jest oświetlony

Mapy cieni projekcja Aby wygenerować mapę cienia należy odpowiednio dobrać macierz projekcji i teksturę do typu i parametrów źródła światła Te parametry trzeba też uwzględnić przy odczycie z mapy cienia Błędnie dobrane parametry projekcji mogą znacznie pogorszyć dokładność albo nawet uniemożliwić poprawne działanie tej techniki

Mapy cieni: światła punktowe Mapa cienia jest teksturą sześcienną Konieczne jest 6 przebiegów renderingu, po jednym na każdą ścianę Macierz widoku: Pozycja taka jak źródła światła, Kierunek do przodu wzdłuż jednej z 6 osi, Kierunek w górę ze specyfikacji mapy sześciennej Macierz projekcji: Kąty /2 w pionie i poziomie

Mapy cieni: światła kierunkowe Mapa cienia jest zwykłą teksturą 2D Macierz widoku: Pozycja dowolny punkt, np. środek sceny, najprościej punkt (0, 0, 0) Kierunek do przodu kierunek światła Kierunek do góry dowolny Macierz projekcji Projekcja ortogonalna Skala i przesunięcie dobrane tak, aby objąć całą scenę

Mapy cieni: światła kierunkowe Macierz projekcji obejmującej całą (potencjalnie bardzo dużą) scenę, wraz z mapą cienia o względnie małej rozdzielczości powoduje potencjalne problemy z precyzją metody Technika kaskadowych map cienia rozwiązanie trudności Temat jednego z projektów, metoda nie będzie omawiana na wykładzie

Mapy cieni: reflektory Światła punktowe, które świecą w ograniczonym stożku wokół kierunku światła Jeżeli rozwartość stożka jest wyraźnie większa niż /2 można traktować reflektor podobnie jak światło punktowe, z kierunkiem światła w macierzy widoku Poprawia to precyzję, jednak kosztem ilości obliczeń 5 przebiegów renderingu zamiast jednego 6. przebieg (tył) nie jest potrzebny

Mapy cieni: reflektory Mapa cienia jest zwykłą teksturą 2D Macierz widoku: Pozycja taka jak źródła światła, Kierunek do przodu kierunek światła Kierunek do góry dowolny Macierz projekcji: Kąty równe rozwartości kątowej stożka światła

Mapy cieni przesunięcie głębi Mapa cieni przechowuje dane wektorowe Dane te są zapisane w formacie rastrowym utrata precyzji ze względu na ograniczoną rozdzielczość map cienia Na skutek utraty precyzji renderowana powierzchnia może niepoprawnie rzucać cień sama na siebie Aby zminimalizować ten problem stosuje się tzw. przesunięcie głębi (ang. depth bias)

Mapy cieni przesunięcie głębi Dobranie wartości przesunięcia głębi Zbyt mała wartość nie usuwa niewłaściwego zacieniania Zbyt duża powoduje efekt oderwania cieni od obiektów, które je rzucają Może okazać się, że akceptowalne wartości są różne w różnych punktach sceny Wartości te można uzależnić od kąta padania światła na płaszczyznę mapy cienia może to nieco pomóc w ominięciu ww. trudności

Mapy cieni przesunięcie głębi

Mapy cieni przesunięcie głębi

Filtrowanie map cienia Sprawdzanie tylko i wyłącznie czy obiekt jest w cieniu czy nie powoduje ostre krawędzie cieni Zbyt duża rozdzielczość mapy cienia względem rozdzielczości ekranu powoduje aliasing Konieczne jest filtrowanie map cieni Niestety filtrowanie przez GPU nie daje oczekiwanych wyników GPU: result = threshold < filter(shadow_map) Potrzebne: result = filter(threshold < shadow_map)

Filtrowanie map cienia c.d. Technika PCF (Percentage Closer Filtering) jest stosowana w celu zgodnego z oczekiwaniami filtrowania map cienia W wersji podstawowej tworzy gładkie krawędzie cieni, jednak ich rozmycie nie zależy od odległości do obiektu rzucającego cień Uśrednianie wartości logicznych wyników porównania głębi dla sąsiednich tekseli Konieczne dużo odczytów z tekstury, koszt obliczeniowy

Technika PCSS Technika PCSS (Percentage Closer Soft Shadows) rozmycie zależne od odległości obiektu rzucającego cień od źródła światła Rozmycie cienia zależy od zasięgu filtrowania mapy cienia techniką PCF trzeba odpowiednio dobrać ten zasięg Algorytm wymaga takich samych map cienia jak PCF, różnica jest jedynie w cieniowaniu obiektów

Technika PCSS c.d. Algorytm cieniowania: Znalezienie odległości cieniowanego punktu od obiektu blokującego światło (d b ) uśrednianie (filtrowanie) wartości sąsiednich tekseli biorąc pod uwagę tylko odległości bliższe niż cieniowany punkt Oszacowanie wielkości rozmycia cienia (w r ) w r = (d c d b )w s / d b, gdzie w s rozmiar źródła światła, a d c odległość cieniowanego fragmentu od źródła Rozmycie techniką PCF stosując znormalizowane w r jako rozmiar filtru

Filtrowanie map cienia c.d.

Mapy cienia oparte o wariancję Użycie sprzętowego filtrowania tekstur map cienia zamiast programowego filtrowania wyników porównań z głębokością progową Przechowywanie uproszczonej informacji o rozkładzie głębi na każdym tekselu Potrzebne dwie liczby do zapisu głębi Wartość głębi (M 1 ) Wartość głębi podniesiona do drugiej potęgi (M 2 )

Mapy cienia oparte o wariancję Rendering cieni Działanie algorytmu aproksymacja na podstawie statystyki matematycznej Średnia: = M 1 Wariancja: 2 = M 2 M 1 2 Jeżeli odległość od światła bieżącego fragmentu jest mniejsza niż średnia ( ), to obiekt nie jest w cieniu W przeciwnym wypadku współczynnik zacienienia obliczany jest jako p = 2 /( 2 + ( d) 2 ), gdzie d jest odległością cieniowanego fragmentu od światła

Mapy cienia oparte o wariancję

Mapy cienia oparte o wariancję Działanie techniki opiera się na różnicy pomiędzy wartością filtrowaną podniesioną do kwadratu, a wartością podniesioną do kwadratu, a następnie filtrowaną Rozmycie cieni zależy od wielkości filtra Niestety, technika ta jest jedynie aproksymacją Wadą są tzw. Wycieki światła Bardziej skomplikowane implementację minimalizują tę wadę, ale jej nie usuwają całkowicie

Mapy cienia oparte o wariancję

Głębokie mapy cienia Użyteczne dla cieni od obiektów typu magła, dym oraz włosy, futro, itp. Dla tych obiektów kluczowe jest rzucanie cienia na samego siebie Przechowują widoczność poprzez teksele dla wszystkich wartości głębi Dla każdego teksela przechowywana jest linia łamana widoczność jako funkcja głębi Istotna jest kompresja informacji ograniczenie ilości wierzchołków linii łamanej

Głębokie mapy cienia

Głębokie mapy cienia

Cienie od obiektów półprzeźroczystych

Cienie od obiektów półprzeźroczystych Użycie drugiej mapy cienia i buforu koloru Rendering do pierwszej mapy cienia obiektów nieprzeźroczystych, tak samo jak bez tej techniki Rendering do drugiej mapy cienia obiektów półprzeźroczystych Bufor koloru czyszczony kolorem białym Rendering do buforu koloru obiektów półprzeźroczystych, używając pierwszej mapy cienia jako buforu głębi

Cienie od obiektów półprzeźroczystych Rendering cieni: Jeżeli obiekt jest w cieniu od obiektu nieprzeźroczystego, to oświetlenie mnożone jest przez odpowiednio wyliczony współczynnik zacienienia Jeżeli obiekt jest w cieniu od obiektów półprzeźroczystych, to oświetlenie mnożone jest przez kolor z buforu koloru związanego z mapą cienia mieszanego z kolorem białym, przy pomocy analogicznie wyliczanego współczynnika zacienienia

Cienie od obiektów półprzeźroczystych

Cienie wolumetryczne Potrzebny jest wypełniony bufor głębi Rendering oświetlenia i cieni wykonywany w drugim przebiegu Pozycja światła i wszystkie trójkąty sceny tworzą obcięte ostrosłupy trzy czworokąty na każdy trójkąt Rendering czworokątów cieni z zastosowaniem buforu szablonu oraz testem głębi

Cienie wolumetryczne Rendering ścian zwróconych przodem do obserwatora zwiększa licznik szablonu o 1 Rendering ścian zwróconych tyłem do obserwatora zmniejsza licznik szablonu o 1 Fragment jest zacieniony, jeżeli jego licznik szablonu jest równy jeden po zakończeniu renderingu czworokątów cienia

Cienie wolumetryczne

Cienie wolumetryczne Problem z przycinaniem geometrii bardzo blisko i bardzo daleko od kamery, istnieją rozwiązania Metoda mało wydajna bardzo dużo figur do renderingu, wąskim gardłem staje się prędkość wypełniania GPU Są opracowane pewne optymalizacje, Ale na ogół preferowane są metody oparte o mapy cienia, obecnie one wydaje sie być najlepsze

Dziękuję za uwagę