Welcome to Stratos!
Acceder
Portada
Noticias
Trabajo
Colaboración
Enlaces
Foros
IRC
Galería
Miembros
Formación
Nosotros
Inicio
Ayuda
Buscar
Calendario
Ingresar
Registrarse
»
Proyectos
»
Jad Engine
(Moderadores:
BeRSeRKeR
,
Vicente
,
Haddd
) »
Bounding Box Por Matrix
« anterior
próximo »
Imprimir
Páginas:
1
[
2
]
Autor
Tema: Bounding Box Por Matrix (Leído 7759 veces)
tiutiu
Stratos
Mensajes: 253
Bounding Box Por Matrix
«
Respuesta #15 en:
10 de Enero de 2006, 04:49:46 pm »
Yo uso el metodo de actualizacion de WildMagic (de David Eberly, en geometrictools.com) para el arbol de BBoxes.
Cuando queremos actualizar las transformaciones de objeto, comenzamos por un nodo y calculamos la worldTransform basandonos en la del padre. Luego seguimos la recursion hacia las hojas. En el pase hacia arriba de la recursion, vamos actualizando el worldBound en base a los worldBound de los hijos. Cuando llegamos al nodo que ha iniciado el cambio, se propaga su worldbound hacia arriba.
De esta manera evitamos recalcular los bounds para los subarboles que no han sido afectados.
Yo solo guardo 1 vector para los extents desde el centro en las AABB, y 4 vectores en las OBB, 3 para las axis y 1 para los extents desde el centro. A parte tambien tengo el centro de la caja (pivote).
Tengo un metodo que calcula los 8 puntos y los deja en un array, prefiero no almacenarlo en el BBox para ahorrar espacio y llamarlo solo cuando lo necesite.
En línea
b>
http://pandoraboxproject.blogspot.com
' target='_blank'>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos
AK47
Stratos
Mensajes: 488
Bounding Box Por Matrix
«
Respuesta #16 en:
10 de Enero de 2006, 05:23:57 pm »
¿Puedes darme la dirección del método de WildMagic, tiutiu? He estado mirando en
www.geometrictools.com
y no lo he encontrado por ninguna parte (nooo)
Muchas gracias (ole)
En línea
tiutiu
Stratos
Mensajes: 253
Bounding Box Por Matrix
«
Respuesta #17 en:
10 de Enero de 2006, 05:54:41 pm »
En la seccion
http://www.geometrictools.com/SceneGraph.html
' target='_blank'>SceneGraph tienes el codigo fuente de las clases Spatial (nodo abstracto), Node (nodo composite) y Geometry (nodo hoja) que son las que necesitas mirar. El punto de entrada es Spatial::UpdateGS(), y llama a funciones polimorficas de Spatial, Node y Geometry.
Tambien puedes mirar
http://www.geometrictools.com/Books/GameEngineArchitecture/BookSample.pdf
' target='_blank'>este trozo del libro 3D Game Architecture en donde explica como va el arbol (actualizacion de transformaciones/BBoxes) por si no te aclaras con el codigo, aunque es bastante intuitivo.
En línea
b>
http://pandoraboxproject.blogspot.com
' target='_blank'>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos
zupervaca
Stratos
Mensajes: 2.559
Bounding Box Por Matrix
«
Respuesta #18 en:
10 de Enero de 2006, 07:32:18 pm »
El no usar dos puntos espaciales (mínimo y máximo) trae consecuencias como la del código que usa para saber si colisionan dos boundingbox, aparte el sistema de volver a calcular todos los nodos superiores del que se modifica es como volver a calcularlos todos ya que normalmente se modifican los nodos mas inferiores que son los objetos animados, es decir, personajes, huesos, etc. No digo que este mal, solo que no esta optimizado como debería.
PD: Es una opinión que puede estar acertado o no, con lo que por favor nada de avalanchas en plan flame, simplemente yo tengo rutinas mas optimizadas para estos casos.
En línea
ttp://www.davidib.com
http://www.colegasyamigos.com
Imprimir
Páginas:
1
[
2
]
« anterior
próximo »
»
Proyectos
»
Jad Engine
(Moderadores:
BeRSeRKeR
,
Vicente
,
Haddd
) »
Bounding Box Por Matrix
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.