Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Geometria obrazu Wykład 7

Podobne prezentacje


Prezentacja na temat: "Geometria obrazu Wykład 7"— Zapis prezentacji:

1 Geometria obrazu Wykład 7
Siatki i triangulacja Delaunay Modelowanie Siatki wielokątowe Diagram Voronoi i triangulacja Delaunay Modelowanie terenu Metoda zamian Metoda otoczek Skracanie dolin

2 Modelowanie — w grafice 3D proces tworzenia i modyfikacji obiektów trójwymiarowych za pomocą specjalizowanego programu komputerowego, zwanego modelerem, który dostarcza zestawu niezbędnych narzędzi, a także często zbioru podstawowych figur (w j. ang. primitives), np. prostopadło-ścianów, kul i innych, które można wykorzystać od razu przy budowaniu obiektów. Obiekty 3D są przeważnie budowane z siatek wielokątów lub definiowane przy pomocy krzywych bądź powierzchni parametrycznych (np. płaty Beziera, NURBS). Siatka wielokątowa (polygonal mesh) to zbiór połączonych płaskich powierzchni ograniczonych przez krzywe zamknięte. Zazwyczaj mamy do czynienia z siatkami trójkątnymi.

3 Przykład. Chmura punktów i siatka wielokątowa.
[pcworld.pl]

4 Reprezentacje siatki:
vertex-vertex: wierzchołek i jego sąsiedzi, vertex-edge : wierzchołek i sąsiadujące krawędzie, vertex-edge-face: zależności między odpowiednimi elementami, winged-edge (podwójnie łączona lista krawędzi). Nie każda reprezentacja pozwala na opis dowolnej siatki, np. w przypadku powierzchni niejednospójnej.

5 Przykład. Podwójnie łączona lista krawędzi . Niech D będzie podziałem płaszczyzny na wielokątne obszary. Z każdą krawędzią zwiążmy dwie przeciwnie zorientowane półkrawędzie. Podwójnie łączona lista krawędzi składa się z powiązanych ze sobą trzech zbiorów rekordów: półkrawędzi pamiętających wskaźniki do ściany leżącej z lewej strony, następnej, poprzedniej i sąsiedniej półkrawędzi dla tej ściany oraz początek półkrawędzi, ściany pamiętających wskaźniki do pew-nej półkrawędzi na jej zewnętrznym brze-gu oraz do wybranych półkrawędzi ścian zawartych w danej, - wierzchołka pamiętających jego współ-rzędne i wskaźnik do dowolnej krawędzi zaczynającej się w nim. nil

6 Teselacja (ang. tessellation) – dzielenie wygenerowanych podczas tworzenia obrazu 3D wielokątów na mniejsze, dzięki czemu wyświetlany obiekt może być dokładniej narysowany. Podczas teselacji powstaje siatka wielokątów, która reprezentuje powierzchnię obiektu. Najczęściej obiekt dzielony jest na trójkąty (triangulacja) lub ich grupy. Przykład. [chip.pl]

7 Przykładowy algorytm triangulacji siatki wielokątowej
Przykładowy algorytm triangulacji siatki wielokątowej. Dla danej ściany znajdujemy płaszczyznę P, która jest średniokwadratowo najbliższa wierzchołkom tej ściany (jeśli ściana jest płaska, to szukana płaszczyzna zawiera ją). Dla każdej krawędzi k dzielącej ścianę znajdujemy płaszczyznę P’ prostopadłą do P i zawierającą tę krawędź. Obliczamy stosunek odległości od P’ najbliższego wierzchołka ściany nienależącego do P’ i długości krawędzi k. Do podziału ściany wybieramy tę krawędź k, dla której obliczona wartość będzie największa (w ten sposób staramy się zmaksymalizować rozwartości katów tworzonych trójkątów). Powtarzamy tę procedurę aż do otrzymania triangulacji.

8 Definicja diagramu Voronoi.
Niech S={p1, ... , pn} będzie zbiorem n punktów na płaszczyźnie. Dla każdego z punktów należących do S określamy obszar Voronoi zawierający punkty płaszczyzny, dla których dany punkt jest najbliższy spośród punktów z S, tzn.: VD(pi)={x: ii d(pi,x)  d(pj,x)}. Punkty należące do brzegów obszarów Voronoi tworzą diagram Voronoi. Lemat. Obszar Voronoi jest wielokątem wypukłym (może być nieograniczony).

9 Triangulacja Delaunay.
Dany jest zbiór S zawierajacy n punktów na płaszczyźnie. Załóżmy, że żadne cztery punkty ze zbioru S nie są współokręgowe. Triangulacją Delaunay nazywamy graf dualny do diagramu Voronoi, którego wierzchołkami są punkty z S a krawędzie łączą wierzchołki odpowiadające sąsiednim obszarom Voronoi. Triangulacje Delaunay możemy również rozpatrywać bez żadnych ograniczeń dla zbioru S. Jednakże wtedy triangulacja może być wyznaczona niejednoznacznie.

10 Własności triangulacji Delaunay.
1. Jest to (z definicji) graf planarny o n wierzchołkach. Brzegiem triangulacji jest otoczka wypukła zbioru S. Jeśli otoczka ma k wierzchołków, to triangulacja ma 2n-2-k ścian i 3n-3-k krawędzi. 2. Każdy trójkąt odpowiada wierzchołkowi diagramu Voronoi. Każda krawędź trian-gulacji odpowiada krawędzi diagramu. 3. Okrąg przechodzący przez dwa punkty pi,pj  S, który nie zawiera w swoim wnętrzu innych punktów z S, istnieje wtedy i tylko wtedy, gdy odcinek należy do triangulacji Delaunay. 4. Triangulacja Delaunay w R2 maksy-malizuje minimalny kąt w triangulacji. 5. Triangulacja w Rd zawiera O(nd/2) sympleksów.

11 Algorytm legalizacji krawędzi.
Dla triangulacji T zbioru S definiujemy wektor kątów, jako uporządkowany niemalejąco ciąg wszystkich kątów trójkątów tworzących triangulację A(T) := (1, 2, ...., m). Przekątną czworokąta wypukłego nazywamy krawędzią nielegalną, gdy wektor kątów dla przyległych do niej trójkątów jest leksykograficznie mniejszy od wektora kątów trójkątów tworzonych przez drugą przekątną. 6 5 4 3 2 1 6 5 4 3 2 1 (1, 2, ...., 6) < (1, 2, ...., 6)

12 Algorytm LegalTiangulation(S)
Dane: Dowolna triangulacja T zbioru S Wynik: Legalna triangulacja zbioru S while T zawiera nielegalną krawędź e do zastąp e przez krawędź e’ łączącą przeciwległe wierzchołki trójkątów sąsiadujących z e; return T; Taki algorytm jest nieefektywny.

13 Algorytm przyrostowy. Załóżmy, że mamy dodatkowe trzy punkty tworzące trójkąt, wewnątrz którego znajdują się punkty ze zbioru S. Dodając kolejny punkt dostajemy jeden z dwóch przypadków: dodany punkt wpada do wnętrza jednego z trójkątów aktualnej triangulacji, dodany punkt pojawia się na krawędzi aktualnej triangulacji. W obu przypadkach łączymy go z wierzchołkami trójkątów, do których należy.

14 procedure LegalizeEdge(p,e,T)
(*Niech wstawiany punkt p i krawędź e tworzą trójkąt należący do T oraz krawędzie e, e’ i e” tworzą trójkąt sąsiadujący *) if e jest nielegalna then begin zamień e przez krawędź łączącą p z przeciwległym wierzchołkiem sąsiedniego trójkąta; LegalizeEdge(p,e’,T); LegalizeEdge(p,e”,T); end;

15 Algorytm DelaunayTriangulation(S)
Dane: Zbiór S i trzy punkty q1, q2, q3 ograniczające S. Wynik: Triangulacja Delaunay zbioru S. T:= trójkąt q1q2q3 ; oblicz losową permutację punktów z S; for i:=1 to n do begin znajdź trójkąt w T, do którego należy pi; połącz pi z odpowiednimi wierzchoł-kami T; legalizuj krawędzie trójkątów o wierz-chołku w pi; end; usuń z T punkty q1, q2, q3 wraz z incydent- nymi krawędziami; return T;

16 Twierdzenie. Algorytm ten znajduje triangulację Delaunay dla zbioru n punktów na płaszczyźnie w oczekiwanym czasie O(n log n) i oczekiwanej pamięci O(n).

17 Modelowanie terenu. Rozpatrujemy zbiór punktów na płaszczyźnie, którym została przypisana dodatkowa wartość (wysokość). Naszym celem jest stworzenie triangulacji o własnościach zbliżonych do triangulacji Delaunay i spełniającej dodatkowe warunki: minimalizacji liczby lokalnych minimów w grafie triangulacji (tzn. takich punktów, dla których wysokości wszystkich sąsiadów są niemniejsze od wysokości danego wierzchołka) , minimalizacji liczby i rozmiaru „dolin”, tzn. spójnych zbiorów krawędzi łączących wierz-chołki, dla których ciąg wysokości kolejnych sąsiadów ma co najmniej dwa lokalne minima.

18 Fakt. Triangulacja Delaunay nie koniecznie musi spełniać podane warunki. Twierdzenie. Problem znalezienia triangulacji minimalizującej liczbę lokalnych minimów jest NP-trudny. Wniosek. Poszukujemy rozwiązań aproksymacyjnych. Triangulację nazywamy triangulacją Delaunay rzędu k, gdy okrąg opisany na dowolnym trójkącie triangulacji zawiera w swoim wnętrzu co najwyżej k punktów z danego zbioru S. Taka triangulacja nie jest jednoznaczna.

19 Metoda zamian. Postępujemy podobnie jak w przypadku znajdywania legalnej triangulacji. Startujemy z triangulacji Delaunay i zamieniamy przekątne w czworo-kącie będącym sumą sąsiednich trójkątów triangulacji, jeśli dwa nowe trójkąty należą do triangulacji Delaunay rzędu k, końcem nowej krawędzi jest najniższy wierzchołek danego czworokąta. Operacje te wykonujemy aż do wyczerpania możliwości zamian. Lemat. Algorytm wykonuje co najwyżej O(n2) zamian. Dla danego k algorytm wykonuje co najwyżej O(nk) zamian.

20 Metoda otoczek. Dla danego zbioru S i wartości k konstruujemy zbiór krawędzi E, do którego należą wszystkie krawędzie mogące wystąpić w pewnej triangulacji Delaunay rzędu k. Krawędzie z E porządkujemy względem najmniejszego k’, przy którym dana krawędź pojawia się w triangulacji Delaunay rzędu k’. Wyznaczamy zbiór S’ lokalnych minimów w triangulacji Delaunay oraz podzbiór E’ zbioru E krawędzi, które łączą punkty z S’ z punktem o mniejszej wysokości. Zaczynamy od pierwszej krawędzi e z E’. Eliminujemy wszystkie krawędzie triangulacji Delaunay, które przecinają e. Triangulujemy obszary powstałe po obu stronach e i zaznaczamy nowe krawędzie. Tak samo postępujemy z kolejną krawędzią z E’. Jeśli przecina ona wybraną wcześniej krawędź z E’ lub zaznaczone krawędzie triangulacji, to pomijamy ją. Po wstawieniu e do grafu, usuwamy z E’ wszystkie krawędzie, dla których wyższy koniec e jest również wyższym końcem.

21 Twierdzenie. Dla danego k i zbioru n punktów na płaszczyźnie zastosowanie metody otoczek w triangulacji Delaunay rzędu k wymaga czasu O(nk2 + nk log n).

22 Model terenu powstały po zastosowaniu triangulacji Delaunay,
Przykład. Model terenu powstały po zastosowaniu triangulacji Delaunay, metody zamian (k = 8), metody otoczek (k = 8). De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”

23 Powyższe rozważania dotyczyły minimalizacji liczby lokalnych
minimów. Rozważmy teraz możliwości wpływu na kształt dolin. Mamy trzy rodzaje krawędzi. De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”

24 Fakt. W wypukłym czworokącie odpowiadającym triangulacji terenu co najwyżej jedna krawędź wyznacza dolinę. Jeśli dwie krawędzie trójkąta triangulacji wyznaczają dolinę, to ich wspólny koniec nie jest najwyższym punktem tego trójkąta. Na ewentualną likwidację krawędzi wyznaczającej dolinę ma wpływ zamiana co najwyżej pięciu krawędzi należących do czworokąta wypukłego, którego przekątną jest dana krawędź (ta krawędź i boki czworokąta). Próbujemy zmniejszyć liczbę krawędzi wyznaczających dolinę dokonując zamian krawędzi. Wykorzystując diagram Voronoi (k+1)-rzędu sprawdzamy, czy triangulacja pozostaje triangulacją Delaunay rzędu k. Twierdzenie. Dla danego k i zbioru n punktów na płaszczyźnie zastosowanie metody skracania dolin w triangulacji Delaunay rzędu k wymaga czasu O(nk log n).

25 Model terenu powstały po zastosowaniu skracania dolin oraz
Przykład. Model terenu powstały po zastosowaniu skracania dolin oraz triangulacji Delaunay, metody zamian (k = 8), metody otoczek (k = 8). De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”

26 Dziękuję za uwagę.

27 Ćwiczenia. 1. Podaj algorytm znajdujący dla każdego punktu p  S punkt z S, który jest najbliższy niego. 2. Dana jest mapa płaska o n wierzchołkach, z których każdy ma stopień 3. Zaproponuj algorytm sprawdzający, czy mapa jest diagramem Voronoi skończonego zbioru S. Jeśli tak, to stwórz S. 3. Podaj przykład triangulacji Delaunay w R3 rozmiaru kwadratowego.


Pobierz ppt "Geometria obrazu Wykład 7"

Podobne prezentacje


Reklamy Google