Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Error al calcular el BoundingBox en DirectX

Iniciado por bnl, 02 de Septiembre de 2007, 10:48:21 PM

« anterior - próximo »

bnl

Estoy intentando calcular el BoundingBox de una malla para controlar las colisiones mediante:

Geometry.ComputeBoundingBox(vertexData, maya.NumberVertices, description.VertexFormat, min, max)

Segun tengo entendido los vectores max y min estan dados en coordenadas del espacio-modelo. Por lo que les aplico a ambos la matriz de transformación del objeto:

min = Microsoft.DirectX.Vector3.TransformCoordinate(min, Me.MatrizMundo)

Sin embargo en algunos casos los valores no son correctos, es como si no detectara una parte de la malla.

¿Sabeis donde puede estar el problema?

Saludos
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

XÑA

no, los valores qe te devuelve min y max dependen del modelo. Así que si tu modelo está en WorldSpace, te devolverá valores en WorldSpace. Normalmente los modelos están en object space, así que te devolverá object.

bnl

Gracias por la respuesta

¿Object space es lo mismo que espacio-modelo?

El modelo creo que está en Espacio-Modelo ya que de da las posiciones antes de haberlas escalado, rotado y movido.

¿Como puedo poner el modelo en WorldSpace?
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

XÑA

sí, object space es lo mismo que model-space.

Pues si tienes el objeto en object space, y necesitas el bounding en world space, tienes que multiplicar el min y max que te devuelve por la matriz de transformación a World Space. El problema es que si hay rotaciones, el 'cubo' que forma el bounding box, también te rotará y ya no te quedará un cubo alineado con los ejes XYZ, que es lo que se suele buscar. Para resolverlo, con los valores que te da el min y el max, vuelve a calcular el bounding box de esos 8 puntos.

bnl

Si, parece que el bounding box tambien rota.

He probado a obtener el bounding box, rotarlo y calcular el bounding box del anterior bounding box, pero no funciona.
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

bnl

Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.






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.