Geometria obrazu Wykład 9

17
Geometria obrazu Wykład 9 Renderowanie. Usuwanie niewidocznych powierzchni. 1. Z-bufor (bufor głębokości). 2. Algorytm malarza. 3. Binary Space Partition 4. Niezgodność półpłaszczyznowa.

description

Geometria obrazu Wykład 9. Renderowanie. Usuwanie niewidocznych powierzchni. Z-bufor (bufor głębokości). Algorytm malarza. Binary Space Partition Niezgodność półpłaszczyznowa. - PowerPoint PPT Presentation

Transcript of Geometria obrazu Wykład 9

Page 1: Geometria obrazu Wykład 9

Geometria obrazuWykład 9

Renderowanie.

Usuwanie niewidocznych powierzchni.

1. Z-bufor (bufor głębokości).

2. Algorytm malarza.

3. Binary Space Partition

4. Niezgodność półpłaszczyznowa.

Page 2: Geometria obrazu Wykład 9

Renderowanie (rendring, obrazowanie) - to w grafice trójwymiarowej komputerowa analiza modelu danej sceny i utworzenie na jej podstawie dwuwymiarowego obrazu wyjściowego w formie statycznej lub w formie animacji.

Renderowanie może przprowadzić większość programów do grafiki 3D, np. 3D Studio Max, Cinema 4D, Lightwave 3D, Cobalt, Blender, POV-Ray.

[http://en.wikipedia.org/wiki/Cobalt_(CAD_program)] [http://en.wikipedia.org/wiki/POV-Ray]

Page 3: Geometria obrazu Wykład 9

Usuwanie niewidocznych powierzchni.

Aby stworzyć dwuwymiarowy obraz odpowiadający trójwymiarowej scenie, przede wszystkim musimy określić w każdym pikselu obrazu obiekt, który ma być widoczny w tym pikselu.

W tym celu musimy znaleźć obiekt, który znajduje się najbliżej obserwatora wzdłuż prostej przechodzącej przez dany piksel (zakładamy, że możemy jednoznacznie przypisać obiekt pikselowi).

[de Berg et al.. „Geometria obliczeniowa. Algorytmy i zastosowania.”]

Page 4: Geometria obrazu Wykład 9

Z-bufor.

przekształć scenę tak, aby kierunek patrzenia był dodatnim kierunkiem osi z;

{Nadaj wszystkim komórkom bufora B (odpowiadającym pikselom obrazu) wartość +}

B[x,y] := +;

for każdy obiekt O sceny do

if z-owa współrzędna punktu obiektu

z[O] jest mniejsza od wartości

przechowywanej w odpowiedniej

komórce bufora B[x,y]

then B[x,y] := z[O];

z

y

x

Page 5: Geometria obrazu Wykład 9

W z-buforze przechowujemy informacje na temat położenia najbliższych punktów sceny dopowiadających poszczególnym pikselom obrazu.

W pomocniczym buforze ramki trzymamy informacje o intensywności barwy danego obiektu.

Złożoność algorytmu dla n obiektów wynosi O(n|S|).

W celu przyspieszenia obliczeń można zastosować odcinanie tylnych powierzchni (pomijamy analizę ścian, których wektor normalny skierowany jest przeciwnie do obserwatora).

Page 6: Geometria obrazu Wykład 9

Przykład.

W przypadku bliskich lub przecinających się powierzchni mogą pojawić się zaburzenia obrazu (z-fighting).

[http://en.wikipedia.org/wiki/z-fighting]

Page 7: Geometria obrazu Wykład 9

Algorytm malarza.

uporządkuj elementy sceny względem ich odległości od obserwatora;

for najdalszy obiekt to najbliższy do

każdemu pikselowi odpowiadającemu

punktowi analizowanego obiektu

przypisz ten obiekt;

Złożoność algorytmu dla n obiektów i obrazu rozmiaru |S| wynosi O(n log n + n|S|).

z

y

x

Page 8: Geometria obrazu Wykład 9

Niestety nie zawsze daje się uporząd-kować elementy sceny.

Wtedy rozwiązaniem jest podział elementów sceny na mniejsze kawałki, które można już uporządkować.

Page 9: Geometria obrazu Wykład 9

6

6

5

5

4

4

3

3

2

2Binary Space Partition.

Załóżmy, że obiektami sceny są trójkąty a h(t) oznacza płaszczyznę zawierającą t.Algorytm 3DBSP(S);

Dane: zbiór S={t1, ..., tn} trójkątów w R3.Wynik: drzewo BSP dla S.if card(S) 1 then stwórz drzewo T, w którym pamiętamy S; return T

else S+{t h(t1)+: t S}; T+ 3DBSP(S+);

S-{t h(t1)-: t S}; T- 3DBSP(S-); Stwórz drzewo T z korzeniem v, poddrzewami T+ i T- oraz S(v) = {t T : t h(T)};return(T);

1

1

Page 10: Geometria obrazu Wykład 9

76

8 76

8

4 5

5

4

3

3

2

2Możemy nieco zmodyfikować poprzedni algorytm.

Algorytm 3DRANDOMBSP(S);

Dane: zbiór S={t1, ..., tn} trójkątów w R3.

Wynik: drzewo BSP dla S.

Wygeneruj losową permutację t1, ..., tn;

for i := 1 to n do

użyj h(ti) do podziału każdej komórki,

na której podział wpływa;

1

1

Page 11: Geometria obrazu Wykład 9

Twierdzenie.

Oczekiwana liczba obiektów tworzonych przez algorytm 3DRANDOMBSP wynosi O(n2).

Dowód.

Oszacujmy oczekiwaną liczbę fragmentów, na które jest rozcinany dany trójkąt tk S. Niech dla trójkąta ti, gdzie i < k, li = h(ti) h(tk).

Dla prostych li, które przecinają tk definiujemy si = li tk.

Jeśli lk-1 dzieli tk, to ma to miejsce tylko w ścianach dotychczasowego podziału, które sąsiadują z krawędziami tk. Podobnie jest dla pozostałych prostych.

Z twierdzenia strefowego wynika, że liczba krawędzi w strefie wyznaczanej przez k prostych wynosi O(k). Zatem krawędzie trójkąta tk należą do ścian podziału mających w sumie O(k) krawędzi. Zatem średnia liczba podziałów ścian przecinanych przez si jest stała, czyli trójkąt tk jest dzielony na średnio O(k) elementów. Stąd oczekiwana całkowita liczba fragmentów podziału jest kwadratowa.

Page 12: Geometria obrazu Wykład 9

Lemat. (ćwiczenia)

Istnieją zbiory nieprzecinających się trójkątów w przestrzeni trójwymiarowej, dla których generowany jest podział rozmiaru (n2).

Page 13: Geometria obrazu Wykład 9

Zbiór punktów próbnych Obraz Powiększenie obrazu

Page 14: Geometria obrazu Wykład 9

Niezgodność półpłaszczyznowa.

Niech U = [0,1][0,1] oraz niech S będzie zbiorem punktów próbnych w U.Niech H oznacza zbiór wszystkich domkniętych półpłaszczyzn prze-cinających U oraz h H.

(h) = pole powierzchni h U

S(h) = card(h U S) / card(S)

S(h) = |(h) - S(h)|

H(S) = suphH S(h)

(h) = 0,25S(h) = 0,3S(h) = 0,05

Page 15: Geometria obrazu Wykład 9

Określanie niezgodności półpłaszczyznowej.

1.Wystarczy badać półpłaszczyzny, których brzeg zawiera punkty ze zbioru S.

2.Wartości S(h) są określane przez poziomy odpowiednich krawędzi układu prostych dualnych do zbioru S.

3.Dla każdej z krawędzi łatwo można obliczyć wartość (h), a co za tym idzie S(h) i H(S).

Wniosek.

Dla danego zbioru n punktów próbnych S niezgodność półpłaszczyznową H(S) można obliczyć w czasie O(n2).

Page 16: Geometria obrazu Wykład 9

Dziękuję za uwagę.

Page 17: Geometria obrazu Wykład 9

Ćwiczenia.

1. Dla danego drzewa BSP oszacuj pesymistyczny czas zapytania algorytmu

a) lokalizującego punkt w podziale przestrzeni generowanym przez drzewo BSP,

b) określającego wszystkie obszary przecinane przez odcinek zapytania,

c) określającego wszystkie obszary przecinane przez dany prostokąt zapytania równoległy do osi układu współrzędnych.

2. Oszacuj rozmiar drzewa BSP dla układu pionowych i poziomych prostokątów w przypadku, gdy

a) płaszczyzny podziału są wybierane dowolnie,

b) płaszczyzny podziału zawierają dane prostokąty.

3. Skonstruuj układ n trójkątów w przestrzeni trójwymiarowej zawsze generujący podział rozmiaru (n2).