Pages: 1
- Accueil forums
- » Physique
- » charger une map et gerer les colision (newton? ou made in irrlicht?)
27-02-2011 22:00:16
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.27.236
- Courriel
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 ![]()
Hors ligne
28-02-2011 11:58:27
- mmorpglefilm
- Membres

- Date d'inscription:
- Messages: 162
- IP: 78.122.188.125
- Courriel Site web
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
28-02-2011 12:57:19
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.43.249
- Courriel
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
28-02-2011 17:05:30
- mmorpglefilm
- Membres

- Date d'inscription:
- Messages: 162
- IP: 78.122.188.125
- Courriel Site web
Pour sa je ne peut pas t'aider désoler.
Hors ligne
28-02-2011 17:18:09
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.43.249
- Courriel
et sinon quelqu'un pourrait me monter svp comment utiliser la btBvhTriangleMeshShape de Bullet (en français si possible ^^ )?
encore merci ![]()
Hors ligne
28-02-2011 23:13:22
- Gehogor
- Membres

- Date d'inscription:
- Messages: 130
- IP: 86.72.254.43
- Courriel
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;
}Et hop...
Hors ligne
01-03-2011 09:49:20
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.28.213
- Courriel
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
01-03-2011 12:15:26
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.28.213
- Courriel
et sinon qu'en ai t il de btBvhTriangleMeshShape pour Bullet ?
Hors ligne
01-03-2011 17:52:54
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.19.165
- Courriel
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é. ![]()
Force et sagesse...
Hors ligne
01-03-2011 19:02:15
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.50.149
- Courriel
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
04-03-2011 15:45:10
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.38.196
- Courriel
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
04-03-2011 16:05:31
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.19.165
- Courriel
As-tu regardé du coté des wrapper Bullet, en regardant leurs codes tu devrais je pense trouver la fonction qui va bien non ?
Force et sagesse...
Hors ligne
04-03-2011 17:21:44
- dev900
- Membres
- Date d'inscription:
- Messages: 9
- IP: 41.92.38.196
- Courriel
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
04-03-2011 17:36:07
- tmyke
- Administrateurs

- Date d'inscription:
- Messages: 1025
- IP: 90.56.19.165
- Courriel
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...
Force et sagesse...
Hors ligne
06-03-2011 20:31:28
- Magun
- Administrateurs

- Date d'inscription:
- Messages: 910
- IP: 188.93.45.30
- Courriel Site web
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



