Aquí está mi problema. Estoy creando un juego y me pregunto cómo hacer las colisiones. Tengo varios casos para analizar y para encontrar la mejor solución para.Colisiones en una aplicación del mundo real
Lo diré de antemano, no estoy usando ninguna biblioteca de física de un tercero, pero lo haré en casa. (Ya que este es un proyecto educativo, no tengo horarios y quiero aprender)
tengo 2 tipos de malla para la que tengo que hacer las colisiones para:
1) Las mallas estáticas (que desplazarse por la pantalla, pero no tiene ningún tipo de animación)
2) Skinned/Boned mallas (animado)
en realidad tengo esta solución (bastante hacky: |)
primero de todo, tienen una prueba contra un volumen delimitador que encierra la m completa esh (cápsula en mi caso), después:
1) Para las mallas estáticas, las divido manualmente en bloques (en el modelador) y para cada uno de estos bloques utilizo una prueba esfera/AABB. (funciona bien, pero es un poco desordenado cortar cada malla: P) (probé un sistema automático para dividir la malla entre planos, pero da malos resultados :()
2) Para la malla animada ATM i ' m dividiendo la malla en tiempo de ejecución en x bloques (donde x es el número de huesos). Cada bloque contiene el vértice para el cual ese hueso es el principal influencer. (A veces funciona, a veces da muy malos resultados: |.)
Tenga en cuenta que la brecha de la malla se realiza en tiempo de carga y no cada vez (de lo contrario se corre como una presentación de diapositivas: D)
Y esta es la pregunta:
¿Cuál es la idea más sensata para usar en esos 2 casos? ¿Algún material para mí para estudiar estos métodos? (con algunos códigos fuente y explicaciones sería aún mejor (el lenguaje no es importante, cuando entiendo el algoritmo, la implementación es fácil)) ¿Puede argumentar por qué esa solución es mejor que otras? He oído hablar mucho de kd-tree, octree, etc. Mientras entiendo su estructura, echo de menos su utilidad en un escenario de detección de colisiones.
¡Muchas gracias por las respuestas!
EDIT: tratando de encontrar un ejemplo de K-Dop con alguna explicación en la red. Todavía no he encontrado nada. :(¿Alguna pista? Me interesa saber CÓMO el K-Dop puede ser probado eficientemente con otro tipo de volúmenes delimitadores, etc. ... pero la documentación en la red parece muy deficiente. :(
Buena respuesta. Un montón de cosas que admirar. Mañana daré una buena búsqueda y algo de trabajo para implementarlos e informar más sobre este hilo. Por el momento +1 !!! Gracias – feal87
Estoy buscando en toda la red, pero todavía no he encontrado UN ejemplo de trabajo con explicaciones de K-Dop. Solo hay mucho papel teórico (pago por vista). : | ¿Alguna pista? :( – feal87
D-chocan parece ser una librería de colisiones de código abierto que implementa kDop, por lo que este podría ser digno de una mirada para ver un ejemplo de ejecución. http://d-collide.ematia.de/ Este gamedev.net el hilo cubre una gran cantidad de detalles de implementación: http://www.gamedev.net/community/forums/topic.asp?topic_id=430895&whichpage=1 – DarthCoder