Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Planos de un AABB. ¿Posible errata de libro?.

Iniciado por Anderson, 01 de Febrero de 2007, 01:28:57 PM

« anterior - próximo »

Anderson

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)

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!

Anderson

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.

tamat

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.
Por un stratos menos tenso






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.