Saludos a todos. Estoy viendo la explicación de un algoritmo para determinar si un determinado punto P se encuentra en el espacio interior de un Bounging Box Alineado con los Ejes de Coordenadas (AABB). La explicación aparece en el capítulo 22 (página 685) del libro "Core Techniques And Algorithms In Game Programming" de Daniel Sánchez-Crespo.
Según parece, las ecuaciones de los 6 planos que definirían un AABB serían:
x - xmax = 0 --> x = max
x + xmin = 0 --> x = -xmin
y - ymax = 0 --> y = ymax
y + ymin = 0 --> y = -ymin
z - zmax = 0 --> z = zmax
z + zmin = 0 --> z = -zmin
siendo xmax, xmin, ymax, ymin, zmax y zmin números tales que:
xmax > xmin
ymax > ymin
zmax > zmin
Pero en mi opinión, creo que los planos deberían ser:
x - xmax = 0 --> x = xmax
x - xmin = 0 --> x = xmin
y - ymax = 0 --> y = ymax
y - ymin = 0 --> y = ymin
z - zmax = 0 --> z = zmax
z - zmin = 0 --> z = zmin
¿Podría alguien confirmarme si esto es así?. Gracias. 8)
Me da la impresion de que son AABB en coordenadas locales (del modelo), por eso xmin, ymin y zmin seran posiblemente negativas, de ahi que
x + xmin = 0 --> x = -xmin (por ejemplo)
cualquier x que cumpla xmin < x < xmax, estara dentro del AABB
Saludos!
Cita de: "marc_opolo"Me da la impresion de que son AABB en coordenadas locales (del modelo), por eso xmin, ymin y zmin seran posiblemente negativas, de ahi que
x + xmin = 0 --> x = -xmin (por ejemplo)
cualquier x que cumpla xmin < x < xmax, estara dentro del AABB
Saludos!
Hola, perdona por haber tardado en contestar. :wink:
Debe ser lo que tú dices, que así se expresaría en coordenadas locales respecto del modelo. En cualquier caso, yo deseaba expresarlas en coordenadas absolutas respecto al mundo, por lo que he he utilizado las fórmulas de la forma en que yo creía y... ¡vaya, ha funcionado!. :lol:
Gracias.
Yo diria que es mejor guardarlo en coordenadas locales del modelo y multiplicarlo por su matriz de transformacion cuando necesites hacer cosas como calcular colisiones, lo digo porque guardar la AABB en coordenadas de mundo implica recalcularla cada vez que un objeto se mueve y eso es mas costoso que no transformar la AABB local.