Desde el principio, la detección de colisión se siente como si fuera un problema O (n^2).¿Qué técnica debería usarse para eliminar verificaciones de colisión 2d?
Tiene un montón de objetos y necesita comprobar si cada objeto está colisionando con cualquiera de los otros objetos. Sin embargo, sé que es tremendamente ineficaz verificar cada objeto contra todos los demás objetos. ¿Por qué hacer un chequeo de colisión relativamente caro entre dos bolas si ni siquiera están cerca unas de otras?
Aquí es ejemplo de mi programa simple que estoy trabajando:
Si usted tiene 1000 bolas entonces si se fue con la detección de colisiones ingenua que tendría 1000^2 cheques de cobro (una millón)! Esta verificación de colisión se ha convertido rápidamente en el cuello de botella en mi aplicación. I necesita para implementar una poda de fase amplia.
¿Qué técnicas se deben utilizar para eliminar las verificaciones de colisión cuando se trabaja con 2d - objetos circulares? He leído sobre QuadTrees, BSP, hashing espacial, etc. pero es difícil determinar qué método es el más adecuado para este caso de uso.
¿Alguien tiene algún conocimiento sobre lo que podría funcionar mejor?
Agregué las preguntas relacionadas a mi respuesta y eliminé la pregunta de su respuesta ya que me distraía. – mmcdole
Bien hecho, @Simucal. –