A ver si m'enterao...
Yo tengo dos vectores min y max indicando el tamaño de mi AABB. Cuando rote el objeto que está contenido dentro de esta caja tengo que rotar los vectores min y max (multiplicando por la matriz actual por ejemplo) y recalcular de nuevo el min y max de la caja (guardandolo sólo de forma temporal, siempre recalculo sobre los vectores originales). Luego para ver si el objeto está en pantalla sólo tengo que testear la colisión de este nuevo AABB contra el View Frustum. Luego en un futuro usaré el AABB para ir asignandole un nodo de un Octree a cada objeto (¿que ocurre si el objeto está en la mitad de dos nodos o más?)
¿Voy por buen camino?
Por cierto buscando sobre el tema me encontre esta web
http://citeseer.nj.nec.com/cs no sé como he podido pasar antes sin ella :sonriendo:
Yo diria que si, que vas por buen camino :sonriendo:
Si lo quieres mas facil (y mas rapido), en lugar de un AABB puedes usar una bounding Sphere (una esfera que envuelva al objeto) y de ese modo te ahorras el tener que recalcular el AABB. (tan solo tendras que transladar el centro de la bounding sphere).
En cuanto a que pasa si un objeto esta entre dos (o mas) nodos, no es ningun problema. Asignale todos esos nodos o bien un nodo padre dentro del cual este completamente. (menos preciso). En el caso de que le asignes todos los nodos en los que se encuentra; simplemente lleva la cuenta de que objetos llevas dibujados y evita dibujarlos varias veces.
El bounding sphere ya lo tengo rulando, habia pensado en testar primero un bounding sphere y si colisiona luego un AABB en los objetos.
Otra dudilla que me corroe, cuando el objeto está animado, como se hace? Hay que recalcular en todos los frames el bounding sphere y el AABB?
Sip, tienes que recalcularlos en cada frame. Lo bueno del bounding sphere es que solo necesitas mover el centro de la esfera a la misma posicion en la que se encuentra el objeto, lo cual es muy sencillo y rapido. En el caso del AABB hay que hacer lo que comentabas en el primer mensaje, que es un poco mas lento.
Contra la colision del frustum de la camara, deberia de bastarte con la bounding sphere... yo no usaria el AABB a no ser que el objeto fuera muy cuadrado (como por ejemplo el nodo de un octree).
Para otro tipo de colisiones... depende mucho de que es lo que quieras hacer.