un bounding box est un cube qui permet de calculer facilement une collision :
on englobe un objet complexe dans un cube, ensuite, il n´y a plus qu´a qu´a calculer facilement les collisions.
un exemple :
cube positionné en (0.0,0.0,0.0) et de taille (10.0,2.0,10.0)
: on a donc une collisions si on se trouve entre 0.0 et 10.0 de X, 0.0 et 2.0 de Y, 0.0 et 10.0 de Z
cela est bien sur tres simple a utiliser et a l´avantage de pouvoir etre cree automatiquement a partir des coordonnees des points(minimum et maximum de chaque coordonnee)
par contre, cela a de gros desavantages : on peut avoir des bugs de collision pour les objets complexes : exemple : un objet perce ne permettra pas de passer a l´endroit ou il est perce
si on les place manuellement, c´est beaucoup plus efficace mais plus long
une autre technique comme celle de pxnet est de calculer une equation du type y = m*x+p avec les angles, cela est un peu plus long et plus complexe mais permet de faire des effet sympa : collision correcte avec un mur non parrallele aux axes
une technique tres efficace que j´ai invente(meme si j´imagine que ca devait deja exister) est le pixel perfect 3D :
il faut choisir une echelle et dessiner l´objet 3D dans un buffer sous 3 positions differentes(du haut(en utilisant juste les axes XZ), et des 2 cotes (XY et ZY) et de faire un pixel perfect entre les 3 buffers et la position du joueur.
bien sur, comme vous pouvez l´imaginer, cette technique est lente, ou demande un prechargement(vous pouvez aussi precalculer dans des fichiers mais cela risque d´etre gros), cette technique doit etre combinee a un bounding box.
avantages : si on fait attention en creant les objets 3D, cela peut etre tres pratique et les collisions sont de meilleure qualite.
malgre tout, je ne recomande pas cette technique.
le mieu, selon moi, est les bounding box ou bien la technique de pxnet(que l´on pourrais aussi etendre pour le gerer avec les 3 axes meme si elle est tres bien comme ca)