#1 

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 big_smile 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 big_smile ç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 hmm

Quelqu'un aurait il l'amabilité de m'aider et de m'eclaircir svp ?

merci d'avance smile


Hors ligne


#2 

28-02-2011 11:58:27

mmorpglefilm
Membres
Avatar de mmorpglefilm
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


#3 

28-02-2011 12:57:19

dev900
Membres
Date d'inscription:
Messages: 9
IP: 41.92.43.249
Courriel

ok merci smile
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


#4 

28-02-2011 17:05:30

mmorpglefilm
Membres
Avatar de mmorpglefilm
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


#5 

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 smile


Hors ligne


#6 

28-02-2011 23:13:22

Gehogor
Membres
Avatar de Gehogor
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... wink

Hors ligne


#7 

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 smile
sinon j'hesite entre Newton et Bullet hmm
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


#8 

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


#9 

01-03-2011 17:52:54

tmyke
Administrateurs
Avatar de tmyke
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é. wink


Force et sagesse...

Hors ligne


#10 

01-03-2011 19:02:15

dev900
Membres
Date d'inscription:
Messages: 9
IP: 41.92.50.149
Courriel

merci smile 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


#11 

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


#12 

04-03-2011 16:05:31

tmyke
Administrateurs
Avatar de tmyke
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


#13 

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 smile


Hors ligne


#14 

04-03-2011 17:36:07

tmyke
Administrateurs
Avatar de tmyke
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


#15 

06-03-2011 20:31:28

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

bon je viens donner mon petit grain de sable wink

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 wink
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


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
168 invités en ligne
membre en ligne: -
RSS Feed