Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Geometria obrazu Wykład 12 1.Bryły ograniczające. 2.Boundary volume hierarchy (BVH). 3.Funkcja kosztu kolizji. 4.Wykrywanie kolizji -metoda klasyczna,

Podobne prezentacje


Prezentacja na temat: "Geometria obrazu Wykład 12 1.Bryły ograniczające. 2.Boundary volume hierarchy (BVH). 3.Funkcja kosztu kolizji. 4.Wykrywanie kolizji -metoda klasyczna,"— Zapis prezentacji:

1 Geometria obrazu Wykład 12 1.Bryły ograniczające. 2.Boundary volume hierarchy (BVH). 3.Funkcja kosztu kolizji. 4.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) otoczka wypukła swept sphere volume (SSV)

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 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 Funkcja kosztu kolizji. Funkcję kosztu kolizji definiujemy w następujący sposób (Weghorst, Gottschalk, Klosowski) : T = N u C u + N v C v + N p C p, gdzie N u oznacza liczbę aktualizowanych brył ograniczających, C u oznacza oszacowanie kosztu aktualizacji bryły ograniczającej, N v oznacza liczbę przecinających się brył ograniczających, C v oznacza oszacowanie kosztu sprawdzenia, czy bryły ograniczające przecinają się, N p oznacza liczbę par sprawdzanych obiektów, C p 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 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 N u, -szybsza analiza niż w drzewie binarnym, gdy C v jest małe (np. dla k- DOP), -większe N v, gdy liście nie kolidują a ich przodkowie tak.

14 Podejście stochastyczne. Zdefiniujmy prawdopodobieństwo przecięcia się dwóch brył ograniczających w następujący sposób: P(A i,B j ) = (Vol (A i ) + Vol (B j ) )/(Vol(A) + Vol(B)), Gdzie A i B są przecinającymi się przodkami P(A i,B j ) ( w przeciwnym przypadku P(A i,B j ) = 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(A i,B j ) jest dostatecznie duże then return kolizja else if P(A i,B j ) > 0 then q.insert((A i,B j ), P(A i,B j ) ); end;

16 Pole odległości. Definiujemy funkcję D: R 3 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 1.Bryły ograniczające. 2.Boundary volume hierarchy (BVH). 3.Funkcja kosztu kolizji. 4.Wykrywanie kolizji -metoda klasyczna,"

Podobne prezentacje


Reklamy Google