#1 

07-01-2009 18:10:57

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

salut

alors la me viens un gros doute. Lorsque l'on exporte un objet dans un format quelconque on se retrouve avec 1 seul mesh. Lorsque l'on exporte plusieur objet dans un seul et meme fichier on a toujours un seul et unique mesh. ????


Est il possible dans irrlicht de récupérer un élément particulier d'un fichier ? Par exemple j'exporte mon perso et son épée dans un fichier 3ds. Est il possible de manipuler l'épée sans toucher au perso ?

++

j'ai édité


Hors ligne


#2 

07-01-2009 18:14:56

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.66.229
Courriel

pas sur mais ->getMesh(id)


Hors ligne


#3 

07-01-2009 18:57:00

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

ben getMesh demande un nom de fichier. Donc pour moi Irrlicht associe Mesh au fichier total. Il ne différent ci pas les différents éléments composant le fichier. Enfin c'est ce que je pense, j'en suis quasi sur mais je peux me tromper.

Vous connaissez le jeu Oblivion ? au début il y a une phase de création de personnage assez détailler ou on peut choisir la longueur du nez, la position des joues, la tailles des yeux, la distance bouche menton et compagnie. Ben j'aimerais faire un truc un peu pareil mais je crois que pour faire ca ils déplacent les vertex correspondant a la partie du corps. par exemple je veux une grande bouche, ben il me déplace les vertex de la bouche. Bon tout ca pour dire que apparement normalement y a moyen de de séléctionner des sous-objet( arretes, vertex, face, mesh) d'un fichier mais que Irrlich ne le fait pas apparement.

++


Hors ligne


#4 

07-01-2009 19:05:40

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.178.23
Courriel

Dragonblood Ecris:

...Lorsque l'on exporte plusieur objet dans un seul et meme fichier on a toujours un seul et unique mesh. ????

Non, tes objets sont toujours séparés, et tu peux récuper donc les différents objets en théorie. Par contre, la tout de suite, je ne sais pas comment on fait
sous Irrlicht, je me demande si il ne faut pas passer par les AnimatedMeshSceneNode...


Force et sagesse...

Hors ligne


#5 

07-01-2009 19:09:39

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

ben si tu trouve tu me le dis et tiens pendant que t'es la tu sais si on peut manipuler directement les vertex d'un objets (ou arete, face,..)?


Hors ligne


#6 

07-01-2009 19:25:32

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.178.23
Courriel

Il faut passer par les fonctions du scenemanager->getMeshManipulator wink


Force et sagesse...

Hors ligne


#7 

07-01-2009 19:36:57

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

ben juste pour les vertex alors. Et ca s'applique sur l'ensemble des vertex et pas pour un en particulier donc pas possible de déplacer un vertex en particulier pour avoir des yeux plus gros, une bouche plus fine et compagnie ? Oui je sais j'en demande beaucoup...


MAis bon mon problème initial ca reste surtout de séléctionner un objet en particulier de mon fichier


Hors ligne


#8 

07-01-2009 19:42:07

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.178.23
Courriel

La fonction 'getMeshManipulator' renvoie un IMesh, qui te donne accès à des méthode permettant les manipulations.
Comme par exemple IMesh->getMeshBuffer( num_buffer); etc...

Sinon, pour la selection en séparé je regarde deux trois truc et ej te tiens au courant...


Force et sagesse...

Hors ligne


#9 

07-01-2009 19:48:01

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

La fonction 'getMeshManipulator' renvoie un IMesh, qui te donne accès à des méthode permettant les manipulations.
Comme par exemple IMesh->getMeshBuffer( num_buffer); etc...

oui oui oui je t'ai as dit le contraire en fait mais la manipulation vertex par vertex y a pas. Ou j'ai mal compris.

le MeshBuffer c'est quoi au fait ?


Hors ligne


#10 

07-01-2009 20:04:45

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.178.23
Courriel

Voici un exemple un peu plus concret:

//	charge un modèle 3D
scene::IAnimatedMesh model = scenegraph->getMesh("test1.3ds");
	


   IMeshManipulator* meshMan = smgr->getMeshManipulator();
   int nIndex;
   for( nIndex = 0; nIndex < model->getFrameCount(); nIndex++ )
   {
      scene::IMesh* mesh = model->getMesh( nIndex, 1 );
      if( mesh )
      {
         meshMan->scaleMesh( mesh, core::vector3df( 10.0f, 1.0f, 10.0f ) );
      }
   }
   ((scene::SAnimatedMesh*)model)->recalculateBoundingBox();

Les MeshBuffer sont en fait représentatif de la geométrie du mesh, il en existe 3 types, les sMeshBuffer, les SMeshBufferLightMap et
les SMeshBufferTangents.
Tu obtiens ces mesh avec ce genre de code:
 SMeshBuffer *mbuffer = (SMeshBuffer*) mesh->getMeshBuffer( nIndex );
// je vais  récupérer un vertice donnée:
S3DVertex vert = mbuffer->Vertices[num_du_vertex];

après, dans la doc tu as les définition des 3 type de MeshBuffer et des S3DVertex/S3DVertex2TCoord et S3DVertexTangents
wink


Force et sagesse...

Hors ligne


#11 

07-01-2009 20:10:27

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

a ok ton premier code fais quoi au juste ? (pas envie de réflechir il est minuit a la réunion)


Hors ligne


#12 

07-01-2009 20:12:23

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.66.229
Courriel

il scale tout les mesh


Hors ligne


#13 

07-01-2009 20:17:09

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

tu rescale le mesh sur toutes ses frames de son anim ?


Hors ligne


#14 

07-01-2009 20:19:06

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.178.23
Courriel

Non, tu fait juste un scale de tous les vertices du mesh...


Force et sagesse...

Hors ligne


#15 

07-01-2009 20:20:21

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.66.229
Courriel

getMesh (s32 frame, s32 detailLevel=255, s32 startFrameLoop=-1, s32 endFrameLoop=-1)=0 
  Returns the IMesh interface for a frame.


Hors ligne


#16 

07-01-2009 20:22:04

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 80.8.179.203
Courriel

non mais quand tu fais

for( nIndex = 0; nIndex < model->getFrameCount(); nIndex++ )
{

}

tu parcourt bien l'anim du mesh non ?



ton deuxième code va beaucoup m'aider pour plus tard


Hors ligne


#17 

08-01-2009 11:09:37

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 90.43.17.137
Courriel

non mais quand tu fais

for( nIndex = 0; nIndex < model->getFrameCount(); nIndex++ )
{

}

tu parcourt bien l'anim du mesh non ?

Ben j'ai raison la non ?


Hors ligne


#18 

08-01-2009 18:18:36

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 90.43.96.28
Courriel

Ben c'est sympas de me laisser parler tout seul hein

Vous avez etez kidnappez par des extra-terrestre ou vous avez fuit ce sujet ?


Hors ligne


#19 

08-01-2009 19:05:48

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

ET téléphone maison ! big_smile
oui tu parcourt les keys frames de l'animation enfin si je me rappelle bien ^^

Hors ligne


#20 

08-01-2009 19:29:14

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.245.15
Courriel

Non, tu ne parles pas dans le vide Dragonblood, mais pour ce qui me concerne, pour t'aider, il faudrait pondre quelques
bouts de codes, que je n'ai pas le temps de faire pour le moment. Ce WE je creuserais le truc, bien que il m'a semblé lire sur le
forum off que ce n'était pas facile de travaillé sur les sous-objet, et que le format Collada seul autorisait ce genre de technique.
Avis au connaisseur wink


Force et sagesse...

Hors ligne


#21 

08-01-2009 19:38:12

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 90.43.96.28
Courriel

ET téléphone maison ! big_smile
oui tu parcourt les keys frames de l'animation enfin si je me rappelle bien ^^

haha je me disait bien que j'étais pas devenu fou hein. Tu confirme Tymke ?



Faut que je m'interesse au format Collada. Tiens au fait vous auriez pas déja trouvé une sorte de comparatif des formats d'export 3D avec en gros les possibilité de chacun ?


Hors ligne


#22 

08-01-2009 19:51:54

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.245.15
Courriel

De mémoire non, mais cela doit se trouver, sur le forum off par exemple. Perso, par exemple, je ne connais pas le Collada, mais
formats favories sont les 3DS et B3D .. wink


Force et sagesse...

Hors ligne


#23 

09-01-2009 16:56:28

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 90.56.16.175
Courriel

Dragonblood Ecris:

non mais quand tu fais

for( nIndex = 0; nIndex < model->getFrameCount(); nIndex++ )
{

}
tu parcourt bien l'anim du mesh non ?

Oui effectivement, il s'agit d'une boucle qui applique le truc pour chaque Frame d'une animation.

On peut écrire un code plus simple pour un mesh dit 'static', comme ça:

//	charge un modèle 3D
scene::IMesh *model = scenegraph->getMesh("test.3ds");

IMeshManipulator* meshMan = smgr->getMeshManipulator();

if( model )
{
    meshMan->scaleMesh( model, core::vector3df( 10.0f, 1.0f, 10.0f ) );
}

voilà wink


Force et sagesse...

Hors ligne


#24 

09-01-2009 18:10:33

Dragonblood
Membres
Avatar de Dragonblood
Date d'inscription:
Messages: 110
IP: 90.43.33.200
Courriel

okay je vais regarder ca plus en détaille ce week end. Et puis faut que j'attaque la modélisation de mon jeu aussi.


Hors ligne


#25 

09-01-2009 19:38:15

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 90.56.16.175
Courriel

Dragonblood Ecris:

... Et puis faut que j'attaque la modélisation de mon jeu aussi.

tiens, d'ailleurs un petit sujet la dessus dans la rubrique 'vos projet', non ? cela serait cool que tu nous explique un peu
plus ce que tu as en tête


Force et sagesse...

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
118 invités en ligne
membre en ligne: -
RSS Feed