Geometria obrazu Wykład 10

Slides:



Advertisements
Podobne prezentacje
Sympleksy n=2.
Advertisements

Modele oświetlenia Punktowe źródła światła Inne
Geometria obrazu Wykład 2
Obrazy otrzymywane za pomocą zwierciadła wklęsłego
Podstawy grafiki komputerowej
Temat: WIELOŚCIANY KLASA III P r.
Przekształcenia afiniczne
Grafika komputerowa Wykład 8 Wstęp do wizualizacji 3D
Geometria obliczeniowa Wykład 1
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 2 ZWIERCIADŁA (płaskie, wypukłe i wklęsłe)
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Geometria obrazu Wykład 11
Geometria obrazu Wykład 12
Geometria obrazu Wykład 10
Geometria obrazu Wykład 9
Geometria obrazu Wykład 13
Geometria obrazu Wykład 12
Geometria obrazu Wykład 11
Bryły geometryczne Konrad Wawrzyńczak kl. IIIa Bryły obrotowe
Rzut równoległy Rzuty Monge’a - część 1
Symulacje komputerowe
Geometria obliczeniowa Wykład 8
Geometria obliczeniowa Wykład 3
Figury przestrzenne.
Figury płaskie I PRZESTRZENNE Wykonała: Klaudia Marszał
Geometria obliczeniowa Wykład 4
FIGURY GEOMETRYCZNE.
Zaawansowane techniki renderingu
ZASTOSOWANIE RENDERINGU W GRAFICE KOMPUTEROWEJ
Dane INFORMACYJNE (do uzupełnienia)
Rzuty Monge’a cz. 1 dr Renata Jędryczka
Geometria obliczeniowa Wykład 7
Przygotowała Patrycja Strzałka.
Bryły geometryczne Wielościany Wielościany_foremne Bryły obrotowe
Geometria obliczeniowa Wykład 5
ŚWIAT Z BRYŁ KATARZYNA MICHALINA
MECHANIKA 2 Wykład Nr 10 MOMENT BEZWŁADNOŚCI.
Bryły ostrosłupy graniastosłupy bryły obrotowe.
Bryły.
Geometria obliczeniowa Wykład 13 Planowanie ruchu 1.Znajdywanie ścieżki między dwoma punktami. 2.Ruch postępowy robota wielokątnego na płasz- czyźnie.
Grafika i komunikacja człowieka z komputerem
Geometria obrazu Wykład 3
Grafika i komunikacja człowieka z komputerem
Geometria obliczeniowa Wykład 5 Geometryczne struktury danych 1. Drzewa odcinków 2. Drzewa czwórkowe 3. Drzewa BSP.
Teksturowanie oraz algorytmy cieniowania
Vademecum: Bryły Zagadnienia.
BRYŁY.
Geometria obrazu Wykład 6
Geometria obrazu Wykład 6
Grafika komputerowa Dr inż. Piotr Gronek
WYKŁAD 11 ZJAWISKA DYFRAKCJI I INTERFERENCJI ŚWIATŁA; SPÓJNOŚĆ
Wykład Rozwinięcie potencjału znanego rozkładu ładunków na szereg momentów multipolowych w układzie sferycznym Rozwinięcia tego można dokonać stosując.
Rozpoznawanie brył przestrzennych
IFS, IFSP I GRA W CHAOS ZBIORY FRAKTALNE I WYBRANE SPOSOBY ICH GENEROWANIA.
Urządzenia wyjściowe.
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
Geometria obliczeniowa Wykład 13 Algorytmy randomizowane 1.Lokalizacja punktu w siatce trapezów. 2.Znajdywanie średnicy zbioru punktów w R 3. Algorytmy.
PODSTAWY STEREOMETRII
Grafika komputerowa Dr inż. Michał Kruk. Reakcja ś wiat ł a z materi ą : – Odbicie ś wiat ł a – Przenikanie ś wiat ł a Zale ż ne od w ł a ś ciwo ś ci.
Matematyka przed egzaminem czyli samouczek dla każdego
Geometria obrazu Wykład 9
Zbiory rozłączne.
Geometria obrazu Wykład 10
Geometria obliczeniowa Wykład 7
Wiktoria Dobrowolska. Grafika komputerowa - dział informatyki zajmujący się wykorzystaniem komputerów do generowania obrazów oraz wizualizacją rzeczywistych.
Geometria obliczeniowa Wykład 1
Geometria obliczeniowa Wykład 8
Reprezentacja (opis) obiektów graficznych
Zapis prezentacji:

Geometria obrazu Wykład 10 Renderowanie cd. CSG. Śledzenie promieni. Śledzenie ścieżek. Metoda fotonowa. Metoda energetyczna. Cieniowanie.

Regularyzowany operator ma postać: domknięcie(wnętrze(A op B)), gdzie CSG (Constructive Solid Geometry) jest technika definiowania nowych brył poprzez łączenie innych brył z pomocą regularyzowanych operatorów boolowskich (sumy, iloczynu i różnicy). Regularyzowany operator ma postać: domknięcie(wnętrze(A op B)), gdzie op oznacza dany operator. Wynikiem takich działań jest zawsze niezdegenerowana (posiadająca objętość) bryła lub zbiór pusty (ćwiczenia). [Wikipedia]

Algorytm znajdywania różnicy. Dane: Dwa wielościany wypukłe A, B. Wynik: A-B. Sprawdź, czy A  B. Jeśli tak – KONIEC (wynik jest zbiorem pustym). 2. Sprawdź, czy dana ściana B przecina A: Nie – zbadaj kolejną ścianę, Tak – podziel A płaszczyzną zawiera-jącą daną ścianę; zachowaj część A w półprzestrzeni rozłącznej z B; A:= A  półprzestrzeń zawierająca B; zbadaj kolejną ścianę B; http://warsztat.gd/wiki/text/Constructive%20Solid%20Geometry%20(CSG)%20part%20I

Algorytm znajdywania przecięcia. Dane: Dwa wielościany wypukłe A, B. Wynik: A  B. Sprawdź, czy A  B. Jeśli tak – KONIEC (przecięciem jest A). 2. Sprawdź, czy dana ściana B przecina A: Nie – zbadaj kolejną ścianę, Tak – podziel A płaszczyzną zawiera-jącą daną ścianę; odrzuć część A w półprzestrzeni rozłącznej z B; A:= A  półprzestrzeń zawierająca B; zbadaj kolejną ścianę B; http://warsztat.gd/wiki/text/Constructive%20Solid%20Geometry%20(CSG)%20part%20I

Zastosowania CSG. Tworzenie obiektów o prostym kształcie (będących kompozycją obiektów bazowych tzw. prymitywów – np. prostopadłościan, kula, stożek, ostrosłup itp.). Konstrukcja portali. Usuwanie niewidzialnych powierzchni.

Śledzenie promieni (ray tracing). Jest to technika generowania fotorealistycznych obrazów trójwymiarowych scen. Opiera się na analizowaniu tylko tych promieni światła, które trafiają bezpośrednio do obserwatora.W ray tracingu rekursywnym dodatkowo bada się promienie odbite lustrzanie oraz załamane w przezroczystych ośrod-kach. Ray tracing stosuje się dla wszystkich pikseli obrazu. Aby uniknąć aliasingu (np. schodki na skośnych liniach lub brzegu) prowadzi się wiele promieni przez jeden piksel. Algorytm jest kosztowny. Jego złożoność zależy od rozmiaru obrazu, prędkości obliczania przecięcia promienia z najbliższym obiektem i rozmiaru sceny.

przez każdy piksel obrazu poprowadź promień od obserwatora; Algorytm. przez każdy piksel obrazu poprowadź promień od obserwatora; znajdź najbliższy punkt sceny; dla każdego źródła światła sprawdź, czy istnieje promień odbijający się w danym punkcie w kierunku obserwatora, jeśli tak, to oblicz parametry odbicia; jeśli promień trafia na obiekt przezroczysty lub odbijający, to poprowadź promień z punktu odbicia i powtórz powyższe punkty algorytmu traktując punkt odbicia jako obserwatora (rekursywny ray tracing). a - nieprzepuszczalny, nie odbija, b - przepuszczalny, odbija, c - nieprzepuszczalny, odbija [Wikipedia]

Różne rodzaje odbić światła. http://informatyka.wroc.pl/node/415

Zalety metody. Łatwość zrównoleglenia programu – każdy piksel może być przetwarzany osobno. Łatwa realizacja CSG. Realistyczny obraz. Wady. Nie uwzględnia światła rozproszonego. Nie może modelować dyfrakcji, interferencji, rozszczepienia. Dopuszcza tylko punktowe źródła światła.

Podobnie do ray tracingu działa path tracing - śledzenie ścieżek (Kajiya 1986). Algorytm bazuje na metodzie Monte Carlo - zamiast jednego promienia obserwator wypuszcza dużo promieni w losowych kierunkach. Dzięki temu znacznie lepiej aproksymuje globalny rozkład światła. Po napotkaniu obiektu promień jest propagowany w losowych kierunkach. Rekursja kończy się po osiągnięciu ustalonej głębokości. Wadą jest większa złożoność obliczeniowa. Każdy obiekt może pochłaniać lub emitować światło. Światło emitowane jest pochłaniane na ścieżce do obserwatora.

W tej metodzie podążamy za promieniem emitowanym przez źródło światła. Forward raytracing. W tej metodzie podążamy za promieniem emitowanym przez źródło światła. Daje to znacznie lepszy efekt wizualny niż zwykły ray tracing, ale wymaga znacznie większej mocy obliczeniowej. Ma głównie specjalistyczne zastosowanie – głównie w optyce. Google

Metoda fotonowa (photon mapping). Algorytm Metoda fotonowa (photon mapping). Algorytm. Pierwsza faza (tworzenie mapy fotonowej). Z obszaru, w którym znajduje się źródło światła wysyłane są fotony. Po zderzeniu fotonu z obiektem sceny określa się prawdopodobieństwo odbicia (pochłonięcia, przepuszczenia) oraz jego kierunek, a następnie zapisuje się informację w tzw. mapie fotonowej. Druga faza. Na podstawie mapy fotonowej określa się oświetlenie danej powierzchni. Dodatkowa faza (final gathering). Interpolacja na zbiorze odpowiednio wybranych punktów mapy fotonowej.

Przykład (final gathering). http://sound.eti.pg.gda.pl/student/sdio/10-OswietlenieGlobalne.pdf

Zalety. Realistyczne oświetlenie sceny. Łatwość przedstawiania efektów specjalnych – odbić zwierciadlanych, dyfrakcji, refrakcji itp. Wady. Duża złożoność obliczeniowa (konieczność tworzenia mapy fotonowej). Rozkład fotonów na scenie przechowywany jest w postaci kd-drzewa.

Metoda energetyczna (radiosity). Metoda ta uwzględnia wyłącznie odbicia rozproszone, tzn. intensywność światła odbitego jest niezależna od kierunku. Dlatego uzyskane wyniki są niezależne od obserwatora, co pozwala na wielokrotną, dowolną wizualizację sceny bez ponawiania obliczeń. Metoda nie uwzględnia jednak rozbłysków, lustrzanych odbić, załamań światła itp. Scena jest podzielona na skończoną liczbę płatów (trójkątów lub prostokątów). Od sposobu i jakości podziału zależy czas obliczeń. Z płatami związane są współczynniki pochłaniania światła (pochłania – dodatni, emituje – ujemny).

Dla każdej pary płatów określony jest współczynnik sprzężenia optycznego sij, który informuje, ile energii świetlnej może zostać przekazane z jednego płata do drugiego (współczynniki zależą od wzajemnego położenia płatów – odległości i kąta). Iteracyjnie obliczamy jasność płatów: Et(i) = Et-1(i) + j sij Et(j), gdzie Et(i), Et(j) określają energię odpowiednio i-tego i j-tego płata. Równania mają tendencję do stabilizacji – energia emitowana z płata równoważy się z energią otrzymywaną z pozostałych płatów.

Przykład. [Wikipedia]

Natężenie światła. Natężenie światła w punkcie obliczamy stosując funkcję BRDF (Bidirectional Reflectance Distribution Function). Jest to stosunek luminancji energetycznej mierzonej w kierunku obserwatora do natężenia napromieniowania badanego w kierunku padania promieniowania). Dokładniej: gdzie i , 0 są parami kątów płaskich opisujących kierunek padania i odbicia promienia, L oznacza promieniowanie oddawane, E – promieniowanie przyjmowane, a i jest kątem miedzy kierunkiem padania a normalną płata. Jako pierwszy zdefiniował tę funkcję Fred Nicodemus w 1965.

Cieniowanie. Powierzchnie matowe rozpraszają światło w jednakowy sposób we wszystkich kierunkach i dlatego wydają się jednakowo jasne niezależnie od kąta patrzenia. Prawo cosinusów Lamberta (1760). Intensywność odbitego światła jest wprost proporcjonalna do cosinusa kąta między kierunkiem padania światła a wektorem normalnym do powierzchni odbijającej. I = Is + Idkdcos , gdzie Is oznacza natężenie światła otoczenia, Id natężenie światła punktowego źródła, a kd określa procent światła odbitego. [Wikipedia]

Cieniowanie płaskie (flat shading) Cieniowanie płaskie (flat shading). Dla każdego wielokąta siatki, jego barwa jest obliczana tylko raz i używana do cieniowania całego wielokąta. Kolor wielokąta obliczany jest w oparciu o kąt między powierzchnia ściany a kierunkiem światła, kolor ściany i oświetlenia oraz intensywność światła. Zaletą cieniowania płaskiego jest jego szybkość i prostota obliczeń. Wadą jest to, że ściana ma jednolitą barwę, co sprawia wrażenie występowania kantów i płaskich powierzchni. [Wikipedia]

Cieniowanie Gourauda (cieniowanie na zasadzie interpolowania jasności) Cieniowanie Gourauda (cieniowanie na zasadzie interpolowania jasności). Cieniowanie to polega na przypisaniu punktom cieniowanego wielokąta jasności obliczonej przez interpolację wartości przypisanych każdemu wierzchołkowi. Algorytm. Na podstawie wektorów normalnych sąsiadujących ścian ścian określ wektor normalny w danym wierz-chołku (aby móc zdefiniować kąt padania światła). Oblicz jasność każdego wierzchołka. Interpoluj liniowo krawędzie wielokątów. Interpoluj liniowo ściany (zamiatając). Cieniowanie może być nieprawidłowe, gdy wnę-trza wielokątów różnią się jasnością od brzegów. [Wikipedia]

Oświetlenie Phonga. Jest to model pozwalający opisać odbicia zwierciadlane obiektów pokrytych specjalną powłoką odblaskową (cienka warstwa umożliwiajaca odbicie zwierciadlane, pod którą następuje odbicie rozproszone). Do obserwatora docierają trzy rodzaje światła: odbite (Iif()cosn), rozproszone (Iicos ), stałe (otoczenia – Ia). Po uwzględnieniu procentowych współczynników wpływu otrzymujemy wzór:

Cieniowanie Phonga. Cieniowanie to polega na interpolacji wektorów normalnych na podstawie wektorów normalnych w wierzchołkach. Daje lepszy efekt wizualny niż cieniowanie Gourauda, ale jest bardziej kosztowne. [Wikipedia]

Problemy jakie mogą powstać podczas cieniowania z wykorzystaniem interpolacji. Zauważalne są krawędzie siatki wielokątów. Wynik zależy od kształtu wielokąta i jego położenia (najlepszy wynik jeśli przybliżamy trójkątami). Wektory normalne w wierzchołkach nie zawsze wskazują ten sam kierunek co wektory normalne powierzchni w tym punkcie.

Dziękuję za uwagę.

Ćwiczenia. Udowodnij, że wynikiem działań regularyzowanych operatorów boolowskich jest zawsze niezdegenerowana (posiadająca objętość) bryła lub zbiór pusty. Jak znaleźć przecięcie dwóch czworościanów ? Czy zawsze warto usuwać ukryte powierzchnie ? Oszacuj liczbę iteracji, po których wartości Et(i) = Et-1(i) + j sij Et(j) powinny się ustabilizować. Kd-drzewo.

Kd drzewo Kd drzewo to drzewo binarne, którego liśćmi są punkty z P a węzłami wewnę-trznymi - proste równoległe do osi układu współrzędnych. Synami węzła odpowiada-jącego prostej pionowej są węzły odpowia-dające prostym poziomym i vice versa. Jako korzeń wybieramy prostą pionową przechodzącą przez punkt z danego zbioru będący jego medianą względem współ-rzędnych x-owych. Dzielimy dany zbiór na dwa podzbiory, do których należą punkty odpowiednio niewiększe od mediany i wię-ksze od niej, itd. (operujemy na liczbach złożonych). Przyjmijmy, że pionowa (pozioma) prosta będzie dzielić zbiór punktów P na zbiór P2 punktów leżących na prawo (powyżej) od tej prostej i zbiór P1 := P – P2.

procedure BUILDTREE(P,depth) if P zawiera tylko jeden punkt then return liść pamiętający ten punkt else if depth jest parzyste then podziel P pionową prostą l na zbiory P1 i P2 else podziel P poziomą prostą l na zbiory P1 i P2; vl  BUILDTREE(P1,depth+1); vp  BUILDTREE(P2,depth+1); stwórz węzeł v – ojca vl i vp oraz zapamiętaj w nim l; return v e a h 1 2 3 4 b 5 f 6 c 7 g d 8 9 a b f g 9 6 c 7 e 1 2 h 3 4 d 5 8

Niech ls(v) (rs(v)) oznacza lewego (prawego) syna wierzchołka v, a obszar(l) jest obszarem, który dzieli prosta l. procedure SEARCHKD(v,R) if v jest liściem then if v  R then zwróć v else if obszar(ls(v))  R then zwróć wszystkie liście pod- drzewa o korzeniu w ls(v) else if obszar(ls(v)) przecina R then SEARCHKD(ls(v),R) if obszar(rs(v))  R drzewa o korzeniu w rs(v) else if obszar(rs(v)) przecina R then SEARCHKD(rs(v),R) 1 8 h g f e d c b a 2 3 4 5 6 7 9 b b 2 e a a h f 3 h f d 5 c c 7 g 9 g a b f g 9 6 c 7 e 1 2 h 3 4 d 5 8 7 5

Lemat. Kd drzewo ma rozmiar liniowy względem rozmiaru zbioru i można je zbudować w czasie O(n log n). Dowód. Czas potrzebny na stworzenie kd drzewa jest opisany przez następujące równania rekurencyjne: T(n) = O(1) dla n =1 oraz T(n) = O(n) + 2T(n/2) dla n > 1, czyli T(n) = O(n log n). Wykorzystując kd drzewa, znalezienie wszystkich punktów z n-elementowego zbioru P należących do danego prostokąta R wymaga czasu , gdzie k jest liczbą znalezionych punktów. Policzmy, ile obszarów może zostać przeciętych przez brzeg prostokąta R. Rozważmy jedną z prostych zawierających jego bok i stwórzmy równania rekurencyjne na liczbę przecinanych obszarów po wykonaniu dwóch kroków wyszukiwania. Mają one postać: Q(n) = O(1) dla n = 1 oraz Q(n) = 2+2Q (n/4) dla n > 1, a ich rozwiązaniem jest .

Konstrukcję kd drzewa możemy uogólnić również na wyższe wymiary. Dla n-elementowego zbioru punktów P trzymamy wtedy drzewo rozmiaru O(n), które można skonstruować w czasie O(n log n). Czas odpowiedzi na zapytanie o punkty należące do prostokąta R wynosi O(k+n(d-1)/d), gdzie k jest liczbą znalezionych punktów, a d – wymiarem przestrzeni. (ćwiczenia)