Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Topper en 15 de Febrero de 2005, 03:23:56 PM

Título: Colisión Sobre Terreno
Publicado por: Topper en 15 de Febrero de 2005, 03:23:56 PM
 Hola,

estoy echando un vistazo al tema de detección de colisiones sobre mapas de alturas. El caso es que en terrenos renderizados a diferentes niveles de resolución (léase Geomipmapping, ROAM, etc.) imagino que NO realizarán test de colisiones sobre el nivel de mayor resolución por el tema de la velocidad y tal. ¿Es cierto esto?  :ph34r:

el caso es que me parece un poco bestia, para un Tile de unos 512 triángulos (en mi implementación actual de geomipmap) testear un punto contra todos ellos para cada frame...

qué opináis?
Título: Colisión Sobre Terreno
Publicado por: vincent en 15 de Febrero de 2005, 04:02:43 PM
 Buenas,

si que lo puedes hacer sobre la malla de más resolución, pero esto no tiene pq decir que te patees todos los triángulos. Dado que conoces las coordenadas X,Z del objeto colisionador i lo "gordo" que es, puedes saber sobre que triángulos puede colisionar.

Sinó, siempre puedes la misma estructura resolutiva para descartar triángulos sobre los que no puedes colisionar.

Espero que te sirva de ayuda.

Un saludo!

VinCenT
Título: Colisión Sobre Terreno
Publicado por: Topper en 15 de Febrero de 2005, 04:14:22 PM
 Gracias Vincent, no había caido en que podía descartar un buen ramal de triángulos (aunque sean visibles en pantalla) conociendo los bounds del colisionador.  (uoh)

Me haré un par de métodos que me retornen los triángulos de terreno localizados en base a un bbox o un vector y listo.

Saludos.
Título: Colisión Sobre Terreno
Publicado por: Sacrifai en 15 de Febrero de 2005, 04:16:10 PM
 Podrías usar boundy-box ( ¿se escribía así  :blink: ? ).

Edit:Se te me adelantaste  :P .
Título: Colisión Sobre Terreno
Publicado por: vincent en 15 de Febrero de 2005, 05:11:48 PM
 jejejeje soy el más rápido al oeste del Besós!   :D

Se llama bounding box, o bounding sphere (que los cálculos seran más rápidos).

Taluego!

VinCenT