Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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, model Taylora.
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
kula – badamy odległość między środkami,
Najprostsze bryły ograniczające, dla których można łatwo sprawdzić przecięcie: kula – badamy odległość między środkami, prostopadłościan zorientowany zgodnie z kierunkiem osi – sprawdzamy zależności między współrzędnymi boków prostopadłościan dowolnie zorientowany - analizujemy przecięcia płaszczyzn wyznaczających boki prostopadłościanu. [inst.eecs.berkeley.edu]
4
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
5
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.
6
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.
7
Trzy poziomy 18-DOP hierarchii.
Przykład. Trzy poziomy 18-DOP hierarchii. [Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]
8
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.
9
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) .
10
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 - liczba aktualizowanych brył ograniczających, Cu - oszacowanie kosztu aktualizacji bryły ograniczającej, Nv - liczba przecinających się brył ograniczających, Cv - oszacowanie kosztu sprawdzenia, czy bryły ograniczające przecinają się, Np - liczba par sprawdzanych obiektów, Cp - 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.
11
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]
12
Przykład. Binarne drzewo BVH.
[T.Mezger, Bounded Volume Hierarchies, 2005]
13
Przykład. Czwórkowe drzewo BVH.
[T.Mezger, Bounded Volume Hierarchies, 2005]
14
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.
15
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.
16
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;
17
Metoda elastycznych powierzchni
Metoda elastycznych powierzchni. Badamy mniej zależności między obszarami, które są względnie daleko i zwiększamy liczbę punktów kontrolnych w miarę zbliżania się obiektów. [Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]
18
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. Możemy też określać pola odległości względem konkretnych obiektów.
19
Przykład. [Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]
20
Model Taylora. Zamiast sztywnych szacowań bryły ograniczającej (np
Model Taylora. Zamiast sztywnych szacowań bryły ograniczającej (np. wartości funkcji cos x + 31/2 sin x zawierają się w przedziale [0, 1+ 31/2]) dla x [0, /2), stosujemy wzór Taylora: f(t) ni=0 tif(i)(m)/i!+[r0,r1] dla pewnego m [t0, t1]. Analizujemy parę: wielomian, przedział. Takie pary możemy np. sumować. Pozwala to na dokładniejsze przybliżanie obiektów niż klasyczną metodą.
21
Dziękuję za uwagę.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.