#0 

27-02-2011 23:00:16

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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

Dernière modification par dev900 (27-02-2011 23:03:09)

Hors ligne


#1 

28-02-2011 12:58:27

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
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


#2 

28-02-2011 13:57:19

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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


#3 

28-02-2011 18:05:30

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Pour sa je ne peut pas t'aider désoler.

Hors ligne


#4 

28-02-2011 18:18:09

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

et sinon quelqu'un pourrait me monter svp comment utiliser la btBvhTriangleMeshShape de Bullet (en français si possible ^^ )?
encore merci smile

Hors ligne


#5 

01-03-2011 00:13:22

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

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:

Code:

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)


Et hop... wink

Hors ligne


#6 

01-03-2011 10:49:20

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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


#7 

01-03-2011 13:15:26

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

et sinon qu'en ai t il de btBvhTriangleMeshShape pour Bullet ?

Hors ligne


#8 

01-03-2011 18:52:54

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#9 

01-03-2011 20:02:15

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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


#10 

04-03-2011 16:45:10

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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


#11 

04-03-2011 17:05:31

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#12 

04-03-2011 18:21:44

dev900
Petit nouveau
Date d'inscription: 27-02-2011
Messages: 9

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


#13 

04-03-2011 18:36:07

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#14 

06-03-2011 21:31:28

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
91 invités en ligne
Aucun membre connecté
RSS Feed