Pour commencer c'est coder en VC++ 7 en vu de passage au VC++ 7.1...
La screen affiche fps 9 c'est parce que j'ai une TNT 2 et en plus j'ai pas les bon driver ...
Bon voilà c'est un debut pour un moteur physique ici ca gère pas grand chose ... A part les soft body les corps deformables ... Et bien là c'est une simple implementation avec les springs-masses mais le problème c'est je gères ca avec l'integration de euler et vous connaissez le truc a coup d'approximation ca foire... Vous verrez dans la source vous avez 2 exemples 2 testes
-test 1 : 2 cubes subissant la graviter et un cube bloqué en l'air a cause d'un sommet static ...
-test 2 : un mesh charger un fichier ASE il y a 2 types de generation de ressort lisez les commentaires ...
^ il faut jouer avec les commentaires pour les 2 tests ^
Normalement les classes sont commenter a moins que j'ai oublié mais si ce n'est pas le cas demander ... mais en general les noms sont assez explicite ...
Voilà des corps deformables ...
Source / Exemple :
/* ------------------------------------------------------------------------
- TEST 2 : chargement d'un objet ASE voir plus bas pour la methode utiliser pour la
- generation des ressorts.
*
*
- ------------------------------------------------------------------------ */
ArrayVertex ArrV; // tableau de vertice
ArrayPolygone ArrPl; // tableau de polygone
ArrayParticule ArrP; // tableau de particule
ArraySpring ArrS; // tableau de ressort
SoftBody SB; // corps deformable
BoundingBox bbx0; // boite englobante
ASELoader obj("skone.ASE"); // le fichier ASE
obj.Load(10, 5); // charger en divisant par 10 et en surelevant de 5
ArrV = obj.GetVertexArray(); // recuperer le tableau de vertice
ArrPl = obj.GetPolygoneArray(); // recuperer le tableau de polygone
ArrP.SetArray(ArrV, 200); // Affecter le tableau particule avec le tableau de vertice avec une masse totale de 200
// ----------------
//ArrS.GenerateSpring_bone(ArrV, ArrPl); // une arrete = un ressort
ArrS.GenerateAllSpring(ArrV); // relier tous les vertex entre eux pour faire des ressorts
// ----------------
SB.SetArrayParticule(ArrP); // affecter le tableau de particule au corps deformable
SB.SetArrayPolygone(ArrPl); // affecter le tableau de polygone au corps deformable
SB.SetArraySpring(ArrS); // affecter le tableau de resort au corps deformable
ArrSB.BeginSoftBody(); // commencer laffectation du tableau de corps deformable
ArrSB.CreateSoftBody(SB); // cree
ArrSB.EndSoftBody(); // finir
bbx0.Include(ArrV); // dimenssionner la boite englobante avec le tableau de vertice
Conclusion :
BUG :
TEST 1 : Avec le premier test quand un cubes tombe par terre et commence a ce stabilise il ce met a tourner tout seul.
TEST 2 : Des que le mesh touche le sol il vibre un peu tremblouille et le système s'effondre ...
CORRECTION A VENIR :
dire aurevoir a euler et bienvenu a Runge-Kutta RK4 ...
Ah oui j'oubliais c'est qu'une infime parti du projet il y a un moteur graphique et des outils aussi qui sont en train d'etre coder en tout on est 3 dans le projet ... Et comme c'est un assez gros projet on a toujours besoin de coder on sait jamais si vous êtes interessez pour nous donner un coup de main on est toujours preneur vous pouvez m'ecrire en PV ou sur mon eMail SKone007@hotmail.com ca fait aussi MSN si vous voulez ...
Merci et je comptes sur la communauter pour toute critique constructive sur l'agencement du moteur la manière de coder enfin tout ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.