Top Banner
Colisiones Miguel Ángel Otaduy Animación Avanzada 18 de Febrero de 2014
54

Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Oct 02, 2018

Download

Documents

phungnhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Colisiones

Miguel Ángel Otaduy

Animación Avanzada 18 de Febrero de 2014

Page 2: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Detección vs. Respuesta

• Dos problemas diferentes, pero a la vez ligados.

• ¿Hay colisión? • ¿Qué hacemos si hay colisión? • La formulación del problema de

detección de colisiones vendrá dada por el algoritmo de respuesta diseñado.

Page 3: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 1

• Dos objetos colisionan y queremos calcular fuerzas entre ellos para evitar interpenetración. – Cálculo de penetración – Fuerzas de penalty

Page 4: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 2

• Dos objetos colisionan pero no queremos que haya penetración. – Detección de la primera colisión – Fuerzas de restricción

Page 5: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 3

• Disparamos a un enemigo en un juego. – Detección de colisión entre rayo y avatar

Page 6: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 4

• Buscar un camino libre de obstáculos para pasar un piano por una puerta (motion planning). – Buscar puntos libres de colisión – Calcular distancias al entorno

Page 7: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 5

• Buscar una configuración estable entre dos moléculas (molecular docking). – Calcular distancias entre átomos.

Page 8: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 6

• Simulación de partículas. – Para cada partícula, buscar las K partículas

más cercanas y calcular la distancia a ellas (K nearest neighbor search)

Page 9: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problema Tipo 7

• Traza de rayos. – Para cada píxel, encontrar el punto de la

escena del que proviene el rayo incidente.

Page 10: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Problemas Generales

1. Detección de colisiones y consultas de proximidad (proximity queries): problema geométrico.

2. Determinación de contactos (contact determination): caracterización de la respuesta del problema puramente geométrico.

3. Respuesta a colisiones (collision response)

Page 11: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Geometría Computacional

• Resolver problema geométrico • Cuestiones importantes:

–Complejidad asintótica del algoritmo –Almacenamiento necesario –Robustez

–Algoritmos y estructuras de datos

Page 12: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Índice

• Detección de colisiones y consultas de proximidad – Problema general y coste computacional – Broad phase vs. narrow phase – Volúmenes envolventes – Particiones espaciales – Campos de distancias – Detección continua

Page 13: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Ej: Cálculo de Intersecciones

• Dados 2 objetos A y B con n triángulos, calcular todas las intersecciones entre triángulos de A y B

• Algoritmo bruto: calcular la intersección entre cada triángulo de A y B

• Coste O(n2)

Page 14: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Ej: K Vecinos más Cercanos

• Dados n puntos, calcular para cada uno de ellos los K puntos más cercanos.

• Algoritmo bruto A: para cada punto, calcular la distancia a los demás. Recorrer la lista de distancia K veces, buscando los K más cercanos. Coste O(K n2).

• Algoritmo bruto B: Ordenar las distancias y escoger los K más cercanos. Coste O(n2 lg n)

Page 15: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Ej: Penetración Global

• Dados 2 objetos A y B con n triángulos cada uno, calcular la traslación mínima para separarlos.

• ¿Coste? O(n6) en 3D.

Page 16: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Espacio de Configuraciones y Suma de Minkowski

• Dados 2 objetos P y Q con n grados de libertad cada uno, el espacio de configuraciones representa todas las posibles combinaciones de configuraciones de ambos objetos

• Corolario: en el espacio de configuraciones podemos distinguir las configuraciones libres de colisión de las configuraciones con colisión (configuration space obstacles, CSO)

• Ejemplos a analizar: – Punto en 2D/3D con obstáculos fijos – Esfera en 2D/3D con obstáculos fijos – Una caja que puede trasladarse y rotar en 2D – Dos cajas que pueden trasladarse entre ellas en 2D

Page 17: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Espacio de Configuraciones y Suma de Minkowski

• Dados 2 objetos P y Q que sólo se pueden trasladar entre ellos, y con n vértices cada uno, el contorno del CSO se puede calcular mediante una suma de Minkowski:

Page 18: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Espacio de Configuraciones y Suma de Minkowski

• Teorema 1: Los objetos intersecan si y sólo si el origen del espacio de configuraciones está incluido en el CSO.

• Teorema 2: Si los objetos no intersecan, la distancia mínima entre ellos es igual a la distancia del origen al contorno del CSO.

• Teorema 3: Si los objetos intersecan, la distancia de penetración entre ellos es igual a la distancia del origen al contorno del CSO.

• El contorno del CSO puede tener O(n6) vértices.

Page 19: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Motivación de la Detección de Colisiones

• Si vamos a realizar muchas consultas similares, construimos una estructura de datos (acceleration data structure) que permita entresacar (prune/cull) muchas consultas de forma rápida.

Page 20: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Estructuras de Datos

• Jerarquías de Volúmenes Envolventes (Bounding Volume Hierarchies) – Si el volumen A no interseca con el volumen

B, ninguna primitiva incluida en el volumen A puede intersecar con las primitivas incluidas en el volumen B

Page 21: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Estructuras de Datos

• Particiones Espaciales (Spatial Partitioning) – Una primitiva no puede intersecar con otras

primitivas con las que no comparte ninguna celda de la partición espacial

• En el fondo, la base de ambos métodos es la misma. Las BVHs se centran en los objetos, mientras que las particiones espaciales se centran en el espacio.

Page 22: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Broad Vs. Narrow Phase

• Broad phase: – Dados n objetos, determinar pares de

objetos (potencialmente) en colisión. – Ej: algoritmo sweep-and-prune.

• Narrow phase: – Dado un par de objetos, entresacar partes

libres de colisión y detectar pares de primitivas en colisión.

Page 23: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Sweep-and-Prune

• Se envuelve cada objeto con una caja AABB. • Se proyectan las AABBs sobre los ejes X, Y, Z. • Se ordenan los intervalos proyectados. • Existe potencial colisión entre dos objetos si…

– Hay intersección entre sus 3 pares de intervalos. • Coste computacional:

– O(n lg n + m).

Ordenación de los intervalos

Número de pares de salida

Page 24: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Sweep-and-Prune

Potencial colisión

Page 25: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Sweep-and-Prune

• Optimizaciones: – Combinar SAP con particiones espaciales – Explotar coherencia temporal (cambios pequeños

entre fotogramas), y sustituir quicksort/mergesort por ordenamiento por inserción (insertion sort).

• Implementado en muchos (todos?) motores de física hoy en día.

Page 26: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Volúmenes Envolventes

• Almacenar un árbol, con particiones sucesivas del objeto, más volúmenes envolventes.

Page 27: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Test con BVHs

• Test recursivo: si hay colisión entre los nodos A y B, se testean sus nodos hijos, etc.

Page 28: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Tipos de Volúmenes

• Esfera, axis-aligned bounding box (AABB), oriented bounding box (OBB), cierre convexo (convex hull), k-discrete orientation polytope (k-DOP), etc.

• Criterios de selección: – Coste del test entre dos volúmenes – Tamaño del volumen – Coste de cálculo del volumen

• Un volumen más simple (p.ej., esfera) es más fácil de actualizar y testear, pero es más grande, dando lugar a más falsos positivos.

Page 29: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Algoritmo para Sólidos Rígidos

• Test(a, b) –Transformar a al sistema de referencia

local de b. –Si Interseccion(a, b) y a y b son hojas • Test de primitivas

–Si Interseccion(a, b) //Asumimos que a es mayor que b y tiene hijos • Para todos los hijos de a:

– Test(a.hijo, b)

Page 30: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Algoritmo para Deformables

• Antes de realizar los test de colisiones, se han de recalcular los volúmenes.

• El resto del algoritmo funciona igual que con sólidos rígidos.

• ¿Cuál es el coste mínimo con sólidos deformables, asumiendo coste O(1) para actualizar un volumen? –O(n), porque un árbol tiene O(n) nodos.

Page 31: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Esfera

Colisión:

Page 32: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Esfera

• Para sólidos rígidos, sólo es necesario trasladar el centro.

• Cálculo de esfera mínima: similar a programación lineal (miniball problem).

• Cálculo rápido a partir de dos hijos: –Colocar el centro en el punto medio de la

línea que une los dos centros, de manera que se envuelvan los dos radios.

Page 33: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

AABB

Colisión: Si los 3 intervalos intersecan.

AABB en 3D, representada por 6 valores: minx, miny, minz, maxx, maxy, maxz.

Page 34: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

AABB

• Cálculo rápido a partir de dos hijos: – Incluir los máximos y mínimos de los

hijos. –Es un cálculo óptimo!

Page 35: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

OBB

Este volumen está pensado para sólidos rígidos, como una caja óptima que se transforma con la transformación del sólido.

Se almacena un punto y 3 segmentos.

Page 36: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

OBB – Test del Eje Separador (Separating Axis Test)

• Dos objetos convexos no intersectan si y sólo si se encuentra un eje sobre el que las proyecciones no intersectan.

• Aplicado a OBBs: – Sólo es necesario testear 15 ejes: las 6

direcciones de las caras, y los 9 productos vectoriales definidos por pares de aristas.

Page 37: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

OBB – Cálculo por Covarianza

Puntos:

Media:

Covarianza:

Los vectores propios de la matriz de covarianza definen (en la mayoría de los casos) buenos segmentos para una OBB.

Page 38: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Árbol de una BVH

• Top-down: dado un conjunto de puntos, se encuentra la dirección de máxima dispersión, se busca el punto medio, y se dividen los puntos a un lado y otro del punto de medio (y así sucesivamente).

• Bottom-up: se define una hoja por triángulo, y se agrupan las hojas de manera que el volumen de los nodos resultantes sea mínimo.

Vector propio de la matriz de covarianza con valor propio máximo

Page 39: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Particiones Espaciales

• Rejilla regular • Octree • K-d Tree: muy usado para el problema de los

k vecinos más cercanos • Binary space partitioning tree (BSP-Tree):

muy usado en su día para el cálculo de visibilidad (antes del z-buffer)

Page 40: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Spatial Hashing (Rejilla regular con tablas hash)

• En lugar de almacenar una rejilla regular completa, se mapean las celdas a una tabla hash.

• Pequeño problema: múltiples celdas mapean a una misma posición de la tabla.

• 2 problemas ejemplo: – Detección de penetraciones entre mallas de

tetraedros – Detección de impactos entre triángulos y vértices

Page 41: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Penetraciones en Mallas de Tetraedros

...

Paso 1: Por cada nodo, se calcula el índice de la celda correspondiente, y se introduce un puntero en la posición de la tabla hash.

Page 42: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Penetraciones en Mallas de Tetraedros

Paso 2: Por cada tetraedro, se calcula una caja envolvente, se calculan los índices de las celdas ocupadas por la caja, y se introducen punteros al tetraedro en las posiciones de la tabla hash.

...

Page 43: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Penetraciones en Mallas de Tetraedros

Paso 3: En las posiciones de tabla hash con nodos y tetraedros, se testean las primitivas.

...

A) Sin colisión

B) Colisión

C) Autocolisión

Page 44: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Función Hash

Coordenadas de la celda

Números primos grandes

Tamaño de la tabla hash

Page 45: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Diagramas de Voronoi

• Dadas n primitivas, partición del espacio en n celdas, de manera que la celda i está formada por los puntos cuya primitiva más cercana es la i.

• Dado un punto, podemos consultar de manera automática la primitiva más cercana

Page 46: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Campos de Distancias

• En cada punto del espacio se almacena la distancia a la primitiva más cercana (también se pueden almacenar la dirección al punto más cercano y un índice de primitiva).

Page 47: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Campos de Distancias

• Aplicación a sólidos rígidos: se precalcula un campo de distancia por sólido, y la detección de colisiones es simplemente una consulta de puntos en el campo de distancia (Utilizado en vídeo juegos).

• Aplicación a sólidos deformables: se puede aproximar la deformación del campo de distancias.

Page 48: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Aproximación para Deformables

• Mallado del interior del objeto (tetraedros) • Definir distancias exactas en los nodos

próximos a la superficie. Luego se propagan las distancias siguiendo las aristas del mallado Distancias

exactas Distancias aproximadas

Glondu et al., Efficient Collision Detection for Brittle Fracture, Symposium on Computer Animation 2012

Page 49: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Aproximación para Deformables

• Ejemplo de propagación de frente

Cada número indica los vértices alcanzados en el mismo paso

Page 50: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Aproximación para Deformables

• Cálculo de distancias. Llegamos a un punto p en el paso i+1. Definimos como Ni(p) todos sus vecinos alcanzados en el paso i

• Cálculo de la dirección del punto p:

Page 51: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Detección Continua

• Dadas primitivas en los instantes t=0 y t=1, detectar el instante t en que colisionan

Page 52: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Detección Continua

• Sirve para detectar colisiones en: – Objetos que se mueven muy rápido y cruzan

completamente a otro (proyectiles en videojuegos) – Objetos superficiales, sin volumen (ropa)

• Cualquier intervalo de tiempo se puede normalizar como el intervalo [0,1]

• Se puede hacer culling jerárquico • Finalmente hay que hacer test entre

primitivas – Triángulo vs. Vértice – Arista vs. Arista

Page 53: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Detección Continua

1. Calcular el instante de tiempo para el que las primitivas son coplanares. Se asume que las primitivas se mueven linealmente, y se convierte en una ecuación cúbica en el tiempo.

2. Dado el instante de tiempo, comprobar si está en el intervalo [0,1], y comprobar si la intersección está dentro de las primitivas (por coordenadas baricéntricas)

Page 54: Simulación Basada en Modelos Físicos en GMRV · Tipos de Volúmenes •Esfera, axis-aligned bounding box ... •Aplicación a sólidos deformables: se puede aproximar la deformación

Otros Problemas

• Autocolisiones • Colisiones entre superficies paramétricas • Colisiones entre personajes articulados • Algoritmos paralelos • …