• Nie Znaleziono Wyników

Geometria obrazu

N/A
N/A
Protected

Academic year: 2021

Share "Geometria obrazu"

Copied!
30
0
0

Pełen tekst

(1)

Geometria obrazu

Wykład 10

Oświetlenie.

1. Śledzenie promieni.

2. Śledzenie ścieżek.

3. Metoda fotonowa.

4. Metoda energetyczna.

5. Cieniowanie.

(2)

Fotorealistyczne przedstawienie obrazu.

https://www.khanacademy.org/partner-content/pixar/rendering/rendering1 /v/overview-rendering

(3)

Ś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.

(4)

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).

[Wikipedia]

a - nieprzepuszczalny, nie odbija, b - przepuszczalny, odbija,

c - nieprzepuszczalny, odbija

(5)

Przykład (komentarz lekko przestarzały).

https://www.youtube.com/watch?v=SBepTLff4Ik

Zalety metody.

1.Łatwość zrównoleglenia programu – każdy piksel może być przetwarzany osobno.

2.Realistyczny obraz.

Wady.

1.Nie uwzględnia światła rozproszonego.

2.Nie może modelować dyfrakcji, interferencji, rozszczepienia.

3.Dopuszcza tylko punktowe źródła światła.

(6)

Różne rodzaje odbić światła.

http://informatyka.wroc.pl/node/415

(7)

Przykład (rodzaje światła).

https://www.youtube.com/watch?v=RjA_sC4bCAM

(8)

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.

Przykład.

https://www.youtube.com/watch?v=mYMkAnm-PWw

(9)

Forward ray tracing.

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 – np. w badaniach sprzętu optycznego.

Google

(10)

Przykład.

Odbicie promieni przy zmiennym kierunku wiązki.

https://www.youtube.com/watch?v=TKY5MnzrjQk

(11)

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.

(12)

Przykład (final gathering).

Progressive Photon Mapping:

https://www.youtube.com/watch?v=ZFSMCn-DSCo https://www.youtube.com/watch?v=lc93pVlewGM

http://sound.eti.pg.gda.pl/student/sdio/10-OswietlenieGlobalne.pdf

(13)

Zalety.

1. Realistyczne oświetlenie sceny.

2. Ł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.

(14)

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.

(15)

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

1 2

3 4

5 6

8 7

9 h

g

f e

d

c b

a

a

f b

c 7

e

1 2

g

9 6

h

3 4

d 5 8

(16)

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

then zwróć wszystkie liście pod- drzewa o korzeniu w rs(v) else if obszar(rs(v)) przecina R then SEARCHKD(rs(v),R)

a

f b

c 7

e

1 2

g

9 6

h

3 4

d 5 8

a b

c d

55 c

77 b

e 2

a

f g

9 g

f

h 3

h 1

8

h

g

f e

d

c b

a

2 3

4

5 6

7

9

(17)

Lemat.

Kd drzewo ma rozmiar liniowy względem rozmiaru zbioru i można je zbudować w czasie O(n log n).

Lemat.

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.

Konstrukcję kd drzewa możemy uogólnić również na wyższe wymiary.

Wtedy czas odpowiedzi na zapytanie o punkty należące do prostopadłościanu R w d wymiarowej przestrzeni wynosi O(k+n(d-1)/d), gdzie k jest liczbą znalezionych punktów.

k) n

O( 

(18)

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).

(19)

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.

(20)

Przykład.

https://www.youtube.com/watch?v=3lmQ4zSwmd8

[Wikipedia]

(21)

Natężenie światła.

Natężenie światła w punkcie obliczamy stosując funkcję BRDF (Bidirectional Reflectance Distribution Function), która charakteryzuje własności refleksyjne powierzchni odbijajacej. 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.

Wartość funkcji BRDF w pełni charakteryzuje własności refleksyjne powierzchni odbijającej.

Funkcja BRDF spełnia zasadę Helmholtza, tzn. jest symetryczna oraz zasadę zachowania energii (energia odbitej wiązki nie może być większa od energii wiązki padającej).

Jako pierwszy zdefiniował tę funkcję Fred Nicodemus w 1965.

(22)

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]

(23)

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 powierzchnią ściany a kie- runkiem ś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.

https://www.youtube.com/watch?

v=BXdHfeJrmCo

[Wikipedia]

(24)

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]

(25)

Przykład.

https://www.youtube.com/watch?v=PMgjVJogIbc

(26)

Oświetlenie Phonga.

Jest to model pozwalający opisać odbicia zwierciadlane dla obiektów pokrytych specjalną powłoką odblaskową (cienka warstwa

umożliwiająca 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),

gdzie  to kąt padania światła, a  - kąt obserwacji .

Po uwzględnieniu procentowych współczynników wpływu otrzymujemy wzór:

(27)

Cieniowanie Phonga.

Cieniowanie to polega na interpolacji dla każdego piksela wektorów

normalnych (a nie oświetlenia) na podstawie wektorów normalnych w wierzchołkach.

Daje lepszy efekt wizualny niż cieniowanie Gourauda, ale jest bardziej kosztowne.

[Wikipedia]

(28)

Przykład.

Cieniowanie Phonga przy rosnacym n (wykładniku cosinusa).

[wikipedia]

(29)

Problemy jakie mogą powstać podczas cieniowania z wykorzystaniem interpolacji.

1.Zauważalne są krawędzie siatki wielokątów.

2.Wynik zależy od kształtu wielokąta i jego położenia (najlepszy wynik otrzymujemy, gdy przybliżamy trójkątami).

3. Wektory normalne w wierzchołkach nie zawsze wskazują ten sam kierunek co wektory normalne powierzchni w tym punkcie.

Przykłady.

https://tr-cam.com/video/VRw3GuVdldo/flat-shading-vs-gouraud- shading-vs-blinn-phong-shading.html

https://www.youtube.com/watch?v=SE6U7HG36uU

(30)

Dziękuję za uwagę.

Cytaty

Powiązane dokumenty

Oblicz, ile

zyka niż człowieka, wtedy jednak powoływałoby się do istnienia nową total ­ ność, na gruncie której możliwa byłaby ciągła historia, historia dyskursu jako nauka

Wartość natężenia światła na tej płaszczyźnie określamy wzorem I = Iż* cos(alfa) gdzie I - natężenie światła na naszej płaszczyźnie, Iz - natężenie źródła światła,

zycja programu, w takim programie geometrii dla wszystkich powinno oczywiście znaleźć się więcej miejsca dla

Zbadać, czy funkcja f określona podanym wzorem ma ekstremum (jeśli tak, to jakie:. minimum czy maksimum lokalne) w podanym punkcie

(43.2) Rozmiary i budowę jąder można poznać, bombardując je wiązką wysokoener- getycznych elektronów i obserwując, jak jądra rozpraszają padające elektrony.. Elektrony

Metalowy stożek, którego tworząca ma 12cm i jest nachylona do płaszczyzny podstawy pod kątem 30 0 , przetopiono na 48 jednakowych kulek. Oblicz objętość jednej kulki oraz jej

Proszę rozwiązać te dwa zadania i do piątku 27 marca przesłać na mój adres e-mail:.. dorota_dowiatt@wp.pl albo