Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

Podobne dokumenty
Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

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

Intro 4kb. sphere tracing. Maciej Matyka (maq / floppy) Dla koła naukowego Voxel

Zaawansowana Grafika Komputerowa

Julia 4D - raytracing

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

Plan wykładu. Akcelerator 3D Potok graficzny

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

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

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

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

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Algorytmy oświetlenia globalnego

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

Podstawy 3D Studio MAX

Grafika 3D na przykładzie XNA 3.1

Oświetlenie obiektów 3D

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

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

a. Czym różni się sposób liczenia odbicia zwierciadlanego zaproponowany przez Phonga od zaproponowanego przez Blinna?

II. FUNKCJE WIELU ZMIENNYCH

Trójwymiarowa wizualizacja danych przestrzennych

Rozdział 2. Krzywe stożkowe. 2.1 Elipsa. Krzywe stożkowe są zadane ogólnym równaniem kwadratowym na płaszczyźnie

Rozdział VII. Przekształcenia geometryczne na płaszczyźnie Przekształcenia geometryczne Symetria osiowa Symetria środkowa 328

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

wymagania programowe z matematyki kl. III gimnazjum

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

Model odpowiedzi i schemat oceniania do arkusza I

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

GRK 4. dr Wojciech Palubicki

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY TRZECIEJ M. zakres rozszerzony

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

Wymagania edukacyjne z matematyki klasa IV technikum

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

HDR. Obrazy o rozszerzonym zakresie dynamiki

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 KOMPUTEROWA

i = [ 0] j = [ 1] k = [ 0]

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

1.1. Rachunek zdań: alternatywa, koniunkcja, implikacja i równoważność zdań oraz ich zaprzeczenia.

Kryteria oceniania z matematyki Klasa III poziom rozszerzony

Modelowanie i Animacja

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

Śledzenie promieni w grafice komputerowej

Podstawy elektromagnetyzmu. Wykład 1. Rachunek wektorowy

PDM 3. Zakres podstawowy i rozszerzony. Plan wynikowy. STEREOMETRIA (22 godz.) W zakresie TREŚCI PODSTAWOWYCH uczeń potrafi:

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM W ROKU SZKOLNYM 2015/2016 CZĘŚĆ 2. ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ

LUBELSKA PRÓBA PRZED MATURĄ 2018 poziom podstawowy

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

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

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Kryteria oceniania z matematyki Klasa III poziom podstawowy

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Grafika komputerowa Wykład 4 Geometria przestrzenna

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

Matematyka stosowana i metody numeryczne

WYMAGANIA WSTĘPNE Z MATEMATYKI

Model odpowiedzi i schemat oceniania do arkusza II

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Gry komputerowe: efekty specjalne cz. 2

Synteza i obróbka obrazu. Modelowanie obiektów 3D

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

LUBELSKA PRÓBA PRZED MATURĄ 2017 poziom podstawowy

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

Matematyka rozszerzona matura 2017

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

Wymagania edukacyjne z matematyki klasa II technikum

ANALIZA MATEMATYCZNA

Matematyka wykaz umiejętności wymaganych na poszczególne oceny

Z przedstawionych poniżej stwierdzeń dotyczących wartości pędów wybierz poprawne. Otocz kółkiem jedną z odpowiedzi (A, B, C, D lub E).

Dział I FUNKCJE I ICH WŁASNOŚCI

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Plan wynikowy matematyka w zakresie rozszerzonym w klasie 1b, 2016/2017r.

KLASA III LO Poziom podstawowy (wrzesień/październik)

MATEMATYKA WYKAZ UMIEJĘTNOŚCI WYMAGANYCH NA POSZCZEGÓLNE OCENY DLA KLASY DRUGIEJ

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

Wymagania edukacyjne matematyka klasa 1 zakres podstawowy 1. LICZBY RZECZYWISTE

Wymagania edukacyjne z matematyki

MATeMAtyka klasa II poziom rozszerzony

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

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

Wymagania edukacyjne z matematyki - klasa III (poziom rozszerzony) wg programu nauczania Matematyka Prosto do matury

Elementy rachunku różniczkowego i całkowego

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

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wymagania edukacyjne z matematyki w XVIII Liceum Ogólnokształcącym w Krakowie, zakres podstawowy. Klasa druga.

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

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

GRK 5. dr Wojciech Palubicki

Gry komputerowe, Informatyka N1, III Rok

Szczegółowy rozkład materiału dla klasy 3b poziom rozszerzny cz. 1 - liceum

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

ANALIZA MATEMATYCZNA Z ELEMENTAMI STATYSTYKI MATEMATYCZNEJ

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

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

CZAS I PRZESTRZEŃ EINSTEINA. Szczególna teoria względności. Spotkanie II ( marzec/kwiecień, 2013)

Transkrypt:

Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu IGK 2012 Michał Jarząbek

W skrócie Funkcje niejawne opisują powierzchnie niejawne Powierzchnie niejawne metoda reprezentacji "obiektów" trójwymiarowych Funkcje odległości pozbiór funkcji niejawnych Sphere tracing metoda bazująca na śledzeniu promieni, służy do wizualizacji powierzchni reprezentowanych przez funkcje odległości

Powierzchnie niejawne Reprezentowane przez funkcje postaci F(x, y, z) = 0 F to funkcja ciągła R3 R. Przykład: równanie kuli x2 + y2 + z2 - r2 = 0 dla każdego punktu poza powierzchnią kuli równanie nie jest prawdziwe Wartość funkcji określa czy punkt znajduje się wewnątrz, na, czy na zewnątrz powierzchni

Powierzchnie niejawne Reprezentowane przez funkcje postaci F(x, y, z) = 0 F to funkcja ciągła R3 R. Przykład: równanie kuli x2 + y2 + z2 - r2 = 0 Nie ma nic szczególnego w wartości 0 po prawej stronie równania

Powierzchnie niejawne Reprezentowane przez funkcje postaci F(x, y, z) = 0 F to funkcja ciągła R3 R. Przykład: równanie kuli (nie o promieniu r) x2 + y2 + z2 - r2 = T Zmieniając T otrzymamy inne powierzchnie tzw. izopowierzchnie (na pierwszy rzut oka będą one większe/mniejsze, ale nie tylko) Możemy zgeneralizować: x2 + y2 + z2 r2 T = 0 F(x, y, z) T = 0

Fajniejsze powierzchnie niejawne Pomyśl o środkach kuli jak o generatorach pola

Korekta! Poprzedni sjald obrazuje zachowanie funkcji postaci: f'(x, y, z) = 1 / ((x - sx)2 + (y - sy)2 + (z sz)2)

Korekta! Poprzedni sjald obrazuje zachowanie funkcji postaci: f'(x, y, z) = 1 / ((x - sx)2 + (y - sy)2 + (z sz)2) Aby otrzymać takie zachowanie, należy: 1. f' + g' 2. 1 / (f' + g') 3. 1 / (f' + g') + T to prawidłowa funkcja niejawna

Po zbliżeniu ich do siebie: blob!

Jak to wyrenderować?! Wygenerować siatkę np. algorytm Marching Cubes Ray tracing

Ray tracing Ukradziono z: wikipedia

Ray tracing Reprezentacja powierzchni musi umożliwiać znalezienie punktu przecięcia promienia powierzchnią Podstawić równanie promienia do równania powierzchni niejawnej Daje się rozwiązać tylko w przypadku prostych powierzchni

Ray marching

Ray marching Potrzebna możliwość sprawdzenia czy punkt na promieniu znajduje się na zewnątrz czy wewnątrz powierzchni OK!

Ray marching Potrzebny wektor normalny Gradient funkcji (wektor pochodnych cząstkowych) jest prostopadły do powierzchni Metoda różnic skończonych grad( func, p ) = normalize ( func(p+{eps,0,0}) - func(p-{eps,0,0}), func(p+{0,eps,0}) - func(p-{0,eps,0}), func(p+{0,0,eps}) - func(p-{0,0,eps}) );

Ray marching Mamy punkt przecięcia i wektor normalny Oh so slow

Funkcje odległości Zwraca odległość do najbliższego punktu na powierzchni niejawnej Funkcje odległości ze znakiem (signed distance function) podobnie, tylko dla punktów wewnatrz powierzchni zwraca wartość ujemną F.O. ze znakiem są podzbiorem powierzchni niejawnych Jednostajny wzrost

F = x 2 + y 2 + z 2 r 2 Przykład Nie jest prawidłową funkcją odległości d(x) = x - r, Gdzie: x = (x, y, z), (x, y, z) - norma euklidesowa To prawidłowa funkcja odległości dla kuli

Sphere tracing Dzięki informacji o odległości do najbliższej powierzchni w danym punkcie możemy wykonywać znacznie większe kroki! Kolejne 7 slajdów dzięki uprzejmości Inigo Quilez http://www.iquilezles.org

Sphere tracing Nie zawsze łatwo uzyskać idealną funkcję odległości Ograniczenie dolne na funkcję odległości też jest dobre! Trochę wolniej, ale poprawnie

Modelowanie przy użyciu funkcji odległości Prymitywy geometryczne Funkcje odległości z ogólnych funkcji niejawnych CSG Transformacje Deformacje Wzory na większość z poniższych znajdują się na stronie IQ: http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm

Prymitywy geometryczne Proste procedury obliczające odległość powierzchni prymitywu ustawionego w środku układu współrzędnych od danego punktu

d to ograniczenie dolne funkcji odległości powierzchni niejawnej opisanej przez f Funkcje odległości z ogólnych funkcji niejawnych Ciągłość Lipschitza ze stałą λ (globalnie lub na pewnym przedziale): f(x) f(y) <= λ x y Mówi o największej szybkości wzrostu funkcji na tym przedziale Porównaj: funkcje odległości mają dokładnie zdefiniowaną szybkość wzrostu funkcji (wielkość gradientu równa jeden) d = f / λ skalujemy f przez jej maks. wzrost

Constructive solid geometry (CSG) Łączenie kilku powierzchni w jedną przy użyciu operacji boolowskich Mamy powierzchnie A i B i ich funkcje fa fb Odległość od sumy A i B = min( fa(x, y, z), fb(x, y, z) ) Odległość od części wspólnej A i B = max( fa(x, y, z), fb(x, y, z) ) Odległość od różnicy A i B = max( fa(x, y, z), -fb(x, y, z) )

Transformacje Jak dotąd wszystko w środku układu współrzędnych Transformacja T = zastosowanie przekształcenia odwrotnego do dziedziny funkcji: FT(x, y, z) = F(T -1 (x, y, z)) Translacja, rotacja izometrie (zachowują odległość między punktami) Nie wszystkie interesujące przekształcenia to izometrie

Transformacje Przekształcenia nieizometryczne powodują, że funkcja przestaje być funkcją odległości Już widzieliśmy ten problem Należy znaleźć stałą Lipschitza odwrotności przekształcenia i podzielić przez nią funkcję FT Przykład: skalowanie jednorodne S ze współ. s Stała Lipschitza odwrotności = 1/s FS(x, y, z) = sf(s -1 (x, y, z))

Deformacje Do dziedziny funkcji można zastosować również przekształcenia nieliniowe Zdeformować można również wynik działania funkcji W obu przypadkach funkcja wynikowa może nie być funkcją odległości

Zalety użycia funkcji odległości Zapewniają globalną informację o geometrii sceny Mały koszt uzyskania miękkich cieni i ambient occlusion Kilka ewaluacji funkcji odległości wzdłuż promienia od punktu do światła dla cieni wektora normalnego powierzchni dla AO Agregacja wyników propozycje w "Rendering worlds with two triangles" I. Quileza http://www.iquilezles.org/www/material/nvscene2008/rwwtt.pdf

Ambient occlusion

Implementacja na GPU Full-screen quad / trójkąt Pixel shader: Śledzenie promienia w scenie Proceduralnie zdefiniowana funkcja odległości

Schemat pixel shadera

Funkcja odległości

Liczenie wektora normalnego

Integracja z rasteryzacją Renderowanie siatek trójkątów i obiektów które nie zyskują na wykorzystaniu pól odległości Takie same ustawienia kamery, świateł Problem głębi, więcej niż jedno rozwiązanie: Tekstura głębi tworzona w etapie sphere tracingu, używana podczas rasteryzacji Tekstura głebi tworzona w etapie rasteryzacji, używana podczas sphere tracingu Odległość punktu od oka Cienie

Cienie Spójność wizualizacji Kilka możliwości rozszerzenia Wybrana: stworzenie mapy cienia w procesie sphere tracingu Okrojony pixel shader (bez oświetlenia etc.) Zapis odleglości od światła do rendertargetu Użycie przy rasteryzacji jak w klasycznym shadow mappingu

Kolizje i fizyka Prosta symulacja tylko kulki z powierzchniami niejawnymi Funkcje odległości zapewniają naturalną informację do detekcji kolizji Aby znaleźć kolizję z kulą: Ewaluować funkcję odległości w środku kuli Sprawdzić czy wartość odległości jest mniejsza niż promień kuli

Kolizje i fizyka Wektor normalny kolizji Wektor normalny powierzchni w punkcie kolizcji Punkt kolizji nie jest znany Przybliżenie wektor normalny w środku kuli Rozwiązywanie kolizji Odbicie prędkości względem wektora normalnego "Wysunięcie" kuli z powierzchni o odległość p wzdłuż wektora normalnego (przydatne m.in. przy kolizjach spoczynkowych)

Symulacja w całości na GPU Dwa zestawy tekstur z aktualnymi danymi kulek w każdym pikselu W każdym zestawie dwie tekstury R32G32B32A32 W pierwszej: pozycja W drugiej prędkość Shader odczytuje wartości z jednego zestawu tekstur i zapisuje do drugiego Aktualizacja pozycji i prędkości (grawitacja) Detekcja i rozwiązywanie kolizji

Schemat wykonania programu