Výpočetní geometrie v problematice detekce kolizí Ivan Soukup MFF UK
Výpočetní geometrie = analýza a návrh efektivních algoritmů pro určování vlastností a vztahů geometrických objektů Virtuální obrábění Simulace fyzikálních jevů Hledání cest Počítačová grafika Hry Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí Detekce kolizí:
Detekce a priori nebo a posteriori? A priori = spojitá detekce před vykonáním pohybu A posteriori = diskrétní detekce po vykonání pohybu Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 3
Broad-phase versus narrow-phase detekce? Broad-phase = hrubá analýza velkého množství geometricky jednoduchých těles Narrow-phase = detailní analýza dvou geometricky složitých těles Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 4
Základní nástroje distanceToPoint(x,P) { return sqrt(dot(x-P,x-P)); } distanceToSegment(x,P0,P1) distanceToTriangle(x,P0,P1,P2) Bonus: distanceTriangleToTriangle(P0,P1,P2,V0,V1,V2) Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 5 Buď x bod v prostoru. Jak spočítáme následující vzdálenosti?
distanceToSegment(x,P0,P1) Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 6
distanceToTriangle(x,P0,P1,P2) Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 7
Gilbert-Johnson-Keerthi algoritmus Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 8
Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 9
Vytvoření konvexní obálky mn. A Mnoho různých algoritmů 1D – stačí seřadit a vybrat min a max 2D – „Monotone Chain“ algoritmus (O(nlogn)) 3D – „Incremental“ algoritmus Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 10
Děkuji za pozornost Ivan Soukup: Výpočetní geometrie v problematice detekce kolizí 11