Pregunta

En los días que estoy creando mi juego primera 3d y yo he ran en par de problemas.

He leído acerca de la AABB intersectioning y la idea de la construcción de árboles de ella, pero la única cosa que no pude entender es, si mis gira "carácter" durante el juego, el concepto de la alineación de ejes no se conserva!

He comprobado un par de bibliotecas (como oz-chocan, OPCODE, y más), y he visto que las implementaciones se hicieron para objetos estáticos, ya que utiliza las cajas sin un origen (por no estática, todos los nodos en el árbol deben ser actualizados después de cada movimiento).

Estas bibliotecas se supone que son súper rápido, y tuve algún lugar probablemente errónea.

Puede alguien por favor me ayude con arrojar alguna luz sobre este tema?

¿Fue útil?

Solución

Lamentablemente sí, si su gira de carácter que necesita para volver a calcular su AABB, y no será necesariamente un ajuste perfecto tampoco. Si usted tiene un rectángulo y lo rota por lo que ya no es rectiliniear la AABB será más grande que el objeto.

La AABB es rápido debido a que la prueba de intersección es muy simple, pero como ya se ha descubierto que se vuelve problemático cuando se necesitan intersecciones precisos sobre los objetos no alineados a los ejes AABBs.

La AABB es todavía útil para pruebas rápidas, y sospecho que esos árboles están hechos para. Con un árbol de AABB puede eliminar rápidamente grandes extensiones de objetos de una fase de prueba más precisa. Si la consulta devuelve un par de extra de objetos que no importa mucho. En su caso carácter girada esto podría significar que su carácter es considerada como una región en la que él / ella realmente no lo es.

La AABB-árbol se presta a esto con facilidad, ya que cada vez que pasa una prueba vas más profundamente en el árbol y en más detalles.

Se puede utilizar un cuadro de límite orientada (OBB) cuando se necesita intersecciones muy precisos. Se puede implementar con el de separación eje teorema . Veo oz-chocan tiene soporte para OBBs ya.

Hay un montón de recursos en OBBs, éste me ayudó: GPWiki en separar eje teorema

Aquí hay un aplicación .

Se puede calcular un AABB de un OBB si es necesario.

Otros consejos

OZCollide trabaja para entidades móviles y es independiente del tiempo (sólo hay que dar un vector de velocidad). También funciona para OBB (no sólo AABB).

Consulte la documentación en línea: http://www.tsarevitch.org/ozcollide/docs/ enlace roto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top