Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Geometria obrazu Wykład 12

Podobne prezentacje


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

1 Geometria obrazu Wykład 12
Bryły ograniczające. Boundary volume hierarchy (BVH). Funkcja kosztu kolizji. Wykrywanie kolizji metoda klasyczna, metoda stochastyczna, pole odleglości.

2 Definicja. Bryłą ograniczającą (brzegową, bounding volume) dla zbioru obiektów S nazywamy domknięty wielościan zawierający wszystkie obiekty z danego zbioru. Bryły ograniczające możemy definiować również dla podzbiorów zbioru S, w tym pojedynczych obiektów. Powinny one spełniać następując wymagania: dobrze przybliżać aproksymowane obiekty, być łatwe w konstrukcji, łatwo aktualizować się, pozwalać na efektywne sprawdzanie przecięć, wymagać małej pamięci, łatwo łączyć się w grupy.

3 Przykłady brył ograniczających.
axis-aligned bounding box (AABB) sfera oriented bounding box (OBB) discrete oriented polytope (k-DOP) swept sphere volume (SSV) otoczka wypukła

4 Twierdzenie (o osi rozdzielającej, Gottschalk et al. ’96).
Dwa wypukłe wielościany są rozłączne wtedy i tylko wtedy, gdy istnieje oś rozdzielająca prostopadła do ściany jednego z wielościanów lub prostopadła do krawędzi obu wielościanów. Innymi słowy istnieje prosta spełniająca pewne warunki taka, że rzuty wielościanów w kierunku prostopadłym do prostej są rozłączne.

5 Bazując na bryłach ograniczających możemy stworzyć bounding volume hierarchy, czyli drzewiastą strukturę danych określoną na obiektach geometrycznych w ten sposób, że każdemu wierzchołkowi v drzewa odpowiada bryła ograniczająca sumę obiektów wyznaczających bryły odpowiadające synom v, liście zwierają informacje o obiektach. Struktura powinna mieć następujące własności: bryły ograniczające powinny dobrze aproksymować obiekty (jak najmniej nachodzić na siebie), na każdym poziomie każdy obiekt powinien należeć do co najwyżej jednej bryły pokrywającej, drzewo powinno być zbalansowane.

6 Trzy poziomy 18-DOP hierarchii.
Przykład. Trzy poziomy 18-DOP hierarchii. [Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]

7 Bounding volume hierarchy tworzy się zwykle jedną z dwóch metod:
bottom-up : najpierw znajdujemy bryły ograniczające małe grupy bliskich obiektów, a następnie łączymy je w coraz większe zbiory, top-down : znajdujmy bryłę ograniczającą cały zbiór obiektów S, a następnie dzielimy S na podzbiory (np. minimalizując sumę rozmiarów brył ograniczających odpowiadających synom danego węzła lub minimalizując rozmiar maksymalnej bryły ograniczającej odpowiadającej synowi danego węzła). Metoda bottom-up jest zwykle kosztowniejsza, ale uwzględnia topologię zbioru. Drugą metodę łatwiej zaprogramować wybierając odpowiedni sposób podziału zbioru.

8 W przypadku zmian położenia obiektu, struktura danych musi być aktualizowana. W zależności od rodzaju ruchu lepsze są różne bryły ograniczające. Np.. W przypadku sztywnych obiektów: dla przesunięć i obrotów: sfera, SSV, OBB, tylko dla przesunięć: AABB, DOP. Wtedy bryły ograniczające dla obiektów nie ulegają zmianie. Zmieniają się bryły odpowiadające węzłom na ścieżce od analizowanego liścia do korzenia. Podobnie jest w przypadku obiektów miękkich, z tym, że trzeba tu również zmienić postać liścia. Operacje te nie są zbyt trudne np. w przypadku DOP, gdzie bryła ograniczająca odpowiadająca węzłowi jest „sumą” brył odpowiadających synom tego węzła (ściany sumy wyznaczane są przez ściany brył składowych) .

9 T = NuCu + NvCv + NpCp, gdzie
Funkcja kosztu kolizji. Funkcję kosztu kolizji definiujemy w następujący sposób (Weghorst, Gottschalk, Klosowski) : T = NuCu + NvCv + NpCp, gdzie Nu oznacza liczbę aktualizowanych brył ograniczających, Cu oznacza oszacowanie kosztu aktualizacji bryły ograniczającej, Nv oznacza liczbę przecinających się brył ograniczających, Cv oznacza oszacowanie kosztu sprawdzenia, czy bryły ograniczające przecinają się, Np oznacza liczbę par sprawdzanych obiektów, Cp oznacza oszacowanie kosztu sprawdzenia oddziaływania pary obiektów. Niestety optymalizacja tej funkcji zależy zwykle od specyficznych własności problemu, a zmniejszenie jednego ze współczynników zazwyczaj zwiększa pozostałe.

10 procedure traverse(A,B); if BH(A) i BH(B) nie przecinają się
Wykrywanie kolizji. Niech BH(C) oznacza bryłę ogranicza-jącą odpowiadającą wierzchołkowi C. procedure traverse(A,B); if BH(A) i BH(B) nie przecinają się then return; if A i B są liśćmi then zbadaj przecięcia obiektów z BH(A) z obiektami z BH(B) else for wszyscy synowie A i B do traverse(syn(A),syn(B)); Aby szybko minimalizować prawdo-podobieństwo przecięcia badamy prze-cięcie mniejszej bryły ograniczającej z bryłami „synów” drugiej. [T.Mezger, Bounded Volume Hierarchies, 2005]

11 Przykład. Binarne drzewo BVH.
[T.Mezger, Bounded Volume Hierarchies, 2005]

12 Przykład. Czwórkowe drzewo BVH.
[T.Mezger, Bounded Volume Hierarchies, 2005]

13 Zalety i wady drzewa o większym stopniu:
mniejsza głębokość rekursji, mniejsza liczba wierzchołków implikuje mniejsze Nu, szybsza analiza niż w drzewie binarnym, gdy Cv jest małe (np. dla k-DOP), większe Nv, gdy liście nie kolidują a ich przodkowie tak.

14 Podejście stochastyczne
Podejście stochastyczne. Zdefiniujmy prawdopodobieństwo przecięcia się dwóch brył ograniczających w następujący sposób: P(Ai,Bj) = (Vol (Ai) + Vol (Bj) )/(Vol(A) + Vol(B)), Gdzie A i B są przecinającymi się przodkami P(Ai,Bj) ( w przeciwnym przypadku P(Ai,Bj) = 0). Poszukując najbardziej prawdopodobnych miejsc kolizji będziemy wybierać w drzewie BVH ścieżki o największym prawdopodobieństwie sukcesu. Niech q oznacza kolejkę priorytetową par węzłów uporządkowaną względem prawdopodobieństwa przecięć odpowiednich brył ograniczających.

15 Algorytm. procedure traverse(A, B); while q nie jest pusta do begin A, B  q.pop; for wszyscy synowie A i B do if P(Ai,Bj) jest dostatecznie duże then return „kolizja” else if P(Ai,Bj) > 0 then q.insert((Ai,Bj) , P(Ai,Bj) ); end;

16 Pole odległości. Definiujemy funkcję D: R3  R w następujący sposób: D(p) = sign(p)dist(p), Gdzie dist( ) oznacza odległość do najbliższego punktu powierzchni, a sign( ) przyjmuje wartość ujemną wewnątrz obiektu. Pole odległości określamy z pomocą drzew ósemkowych, BSP lub np. diagramów Voronoi, dzieląc przestrzeń na obszary, w których będzie obliczana funkcja odległości. Chcąc wykryć kolizję badamy pary obiektów i analizujemy ich położenie względem pól odległości.

17 Przykład. [Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]

18 Dziękuję za uwagę.


Pobierz ppt "Geometria obrazu Wykład 12"

Podobne prezentacje


Reklamy Google