Pages: 1
salut à tous,
je suis nouveau ici, bon je me presente je suis dev900 ^^ je code en C (avec la SDL) xhtml/CSS et php/sql. je me suis mis dernierement au C++ et apres en avoir bavé de la console je suis passé à la 3D avec irrlicht. Mon probleme est que je voudrais gerer les collision dans une map mais: je ne sais pas qu'elle est la methode qui consome le moins et la meilleur. J'hesite entre utiliser les triangleselector de Irrlicht ou bien utiliser Newton ??
sinon pour newton, je fais comment pour lui passer ma map? (je debute à peine avec newton, donc un petit tuto qui fait otre chose que des cubes qui tombent ça serai pas de refus, mais pitié pas la doc officiel, c'est trop compliqué vu le stade ou j'en suis)
sinon pour la methode made in Irrlicht j'ai essayé avec les triangleselectro mais avec une heightmap , mon perso (un ninja) est un peu sur elevé du sol. et quand j'applique la gravité ("le poids par personne"), il est un peu moins sur elevé mais il bloque devant les bosse : il ne monte pas mais ne fais que descendre
Quelqu'un aurait il l'amabilité de m'aider et de m'eclaircir svp ?
merci d'avance
Dernière modification par dev900 (27-02-2011 23:03:09)
Hors ligne
Je ne pense pas qu'utiliser la colitioin d'irrlicht est la meilleur solution.
Moi je n'est pas encore utiliser newton mes je pense que si tu remplace les cubes par ton mesh est que tu place une map sa va marcher, il faut juste bien le paramétrais.
Mes si toi tu veux qu'elle que chose qui va vite est qui ne consomme vraiment pas beaucoup de performance il vaux mieux utiliser irrlicht, tous dépend de se que tu veut faire, moi par exemple je fais un jeu dans l'espace est bientôt pour faire le "vide" j'aurais vraiment besoin d'un moteur physique (comme nexton).
A toi de voir.
Hors ligne
ok merci
aufait je me demandais comment passer ma map à newton ? parce qu'avec des cube je sais faire mais je ne vais pas m'amuser à reconstituer ma map avec des cubes o_O ... y a t il une classe pour cela?
Hors ligne
Pour sa je ne peut pas t'aider désoler.
Hors ligne
et sinon quelqu'un pourrait me monter svp comment utiliser la btBvhTriangleMeshShape de Bullet (en français si possible ^^ )?
encore merci
Hors ligne
Salut, en ce qui concerne Newton j'utilise cette fonction qui est connue sur le net pour convertir un IMesh d'Irrlicht en NewtonCollision pour Newton, sans doute que tu la connais déjà. Je peux te dire que ça fonctionne très bien, par contre je ne l'ai jamais essayée sur un maillage non fermé de terrain, j'espère que tu pourras me le dire. Merci d'avance.
La fonction:
NewtonCollision* GrNewton::p_createCollisionFromMesh(NewtonWorld *nWorld,irr::scene::IMesh *irr_mesh,float tolerance,float scaleX,float scaleY,float scaleZ,int shapeID,const float* offsetMatrix) { int nMeshBuffer = 0; //Mesh Buffer count irr::scene::IMeshBuffer *mesh_buffer = NULL; float *vertices; //Array to store vertices irr::u32 nVertices = 0; //Get number of vertices for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) { nVertices += irr_mesh->getMeshBuffer(nMeshBuffer)->getVertexCount(); } //create buffer for vertices vertices = new float[nVertices * 3]; irr::u32 tmpCounter = 0; //Get (irr_)mesh buffers and copy face vertices for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) { mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); //Get pointer to vertices and indices irr::video::S3DVertex *S3vertices = (irr::video::S3DVertex*)mesh_buffer->getVertices(); //copy vertices from mesh to buffer for(int i=0; i<mesh_buffer->getVertexCount(); i++) { vertices[tmpCounter++] = S3vertices[i].Pos.X * scaleX / IRR_SCALE; vertices[tmpCounter++] = S3vertices[i].Pos.Y * scaleZ / IRR_SCALE; vertices[tmpCounter++] = S3vertices[i].Pos.Z * scaleY / IRR_SCALE; } } //Create Newton collision object NewtonCollision *collision_obj = NewtonCreateConvexHull(nWorld,nVertices,vertices,sizeof(float)*3,tolerance,shapeID,offsetMatrix); //delete vertices delete [] vertices; return collision_obj; }
Dernière modification par Gehogor (01-03-2011 00:14:17)
Hors ligne
wow merci c'est ce qu'il me fallait
sinon j'hesite entre Newton et Bullet
car dernierement une personne m'a conseillé Bullet à la place de Newton...
Pour l'instant je prefere Newton car j'ai tous les elements qu'il me faut.
vous me conseiller quoi?
Hors ligne
et sinon qu'en ai t il de btBvhTriangleMeshShape pour Bullet ?
Hors ligne
c'est pas mal. Le reproche que je fait à Bullet, c'est une relative complexité de mise en oeuvre.
Newton, même si il n'est pas opensource, reste beaucoup plus accessible et très peu buggué.
Hors ligne
merci sinon je me suis mis un peu à Bullet et j'aimerai récupérer les info sur la rotation d'un objet. quelqu'un peut il me dire comment? (comment utiliser btTransform?)
ps: je sais que ça peux paraitre bizarre que je demande ça et que je demande aussi des info sur " btBvhTriangleMeshShape" mais c'est juste pour voir la complexité par rapport à Newton
Hors ligne
Up! quelqu'un pourrait il m'expliquer comment passer une map (ou des mesh compliqué ou le personnage peut rentrer: pieces, lieu,...) à Bullet ?
Hors ligne
As-tu regardé du coté des wrapper Bullet, en regardant leurs codes tu devrais je pense trouver la fonction qui va bien non ?
Hors ligne
je connais la fonction : btBvhTriangleMeshShape
mais je ne sais pas comment l'utiliser. j'avais trouvé une page du forum officiel de bullet en anglais où un membre expliquait comment on utilise la fonction avec Irrlicht. Mais je ne retrouve plus le code.
quelqu'un pourrait il me donner un exemple de code utilisant btBvhTriangleMeshShape ?
merci d'avance
Hors ligne
je voulais parler des projet comme irrBullet 0.1.71 - Bullet physics wrapper ou irrBP - An Irrlicht - Bullet Physics wrapper
Dans la section Project Announcements du forum officiel, tu apprendra beaucoup à les étudier et tu devrais trouver plein d'info
qui t'aiderons...
Hors ligne
bon je viens donner mon petit grain de sable
alors sérieusement, bullet reste a mon avis plus rapid que newton, se pendant bullet est loin d'être simple face a newton, j'utilise se dernier depuis 4ans et il reste encore complex pour moi
donc étant donner que tu commence, newton simpose comme le choix le plus désisif, voir ode ...
bon sinon pour bullet offrent plus de possibiliter, softbody, multithreading, gpgpu et j'en passe bref la panoplie
pour se qui est de btBvhTriangleMeshShape j'ai un code qui peut te servire de base : http://irrlicht-fr.org/viewtopic.php?id=533&p=2 poste 3
mais btBvhTriangleMeshShape n'est pas le chemain a suivre, il consome beacoup de mémoire, et également de calcul, as utiliser avec soins.
Hors ligne
Pages: 1