#0 

20-10-2011 18:30:40

thoced
Membre
Date d'inscription: 02-08-2010
Messages: 65

Bonjour à tous,

J'utilise irrblend 0.4 pour creer mes scene .irr à partir de Blender.

La génération de la scene crée donc un fichier scene.irr ainsi que de sous répertoires ./mdl et ./tex incluant respectivement les fichiers mesh des objets de ma scene ainsi que les textures associées.

Seulement voila mon probleme. A la lecture du fichier scene.irr qui inclus les objets présent dans la scene, je constate que le chemin indiqué vers les mesh assocociés est relatif. Celui-ci indique donc en exemple : mdl/mesh01.mesh .

Le soucis est que ce chemin relatif est utilisé par Irrlicht à partir de l'emplacement du programme et non pas par rapport au fichier scene.irr.

Ce qui me pose un probleme quand je crée deux scenes que j'inclus dans deux sous répertoires différents, j'aimerai donc crée à ces deux repertoires les repertoires mdl et tex associés, mais le soucis c'est qu'à ce moment, Irrlicht ne sait lire les fichier mesh et textures puisqu'ils ne se trouvent plus placés relativement au programme.

Vous me diriez donc de laisser simplement le repertoire mdl et tex à la racine du programme. Oui mais... voila que lors de la génération des différents mesh des différentes scene, les mesh portant le même nom que ceux de la première scene écrasent et remplacent les mesh de celle-ci.

Sans avoir correctement regardé, je vais certainement essayer de modifier quelques peu le script d'export de irrblend ou pourquoi pas modifier la methode smgr->loadScene(...); et recompiler Irrlicht dans le but de modifier le chemin relatif.

Mais avant de faire cela, quelqu'un aurait il une autre façon de procéder ?

merci d'avance,
thoced

Hors ligne


#1 

21-10-2011 21:50:40

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

un petit tour sur la doc ? wink

device->getFileSystem()->changeWorkingDirectoryTo("folder_scene_0");
http://irrlicht.sourceforge.net/docu/cl … cef189b073

sinon les *.irr sont bien pour de petit projet, mais je doute que cela te satiface le cas échéans
je ne connais pas t'on niveaux mais si c'est un jeune projet essaye d'avoir de solide base, sinon tu risque de réecrire de grosse portion, si ce n'est pas tout
je peut te donner des conseils si tu le souhait

Hors ligne


#2 

21-10-2011 23:01:37

thoced
Membre
Date d'inscription: 02-08-2010
Messages: 65

Un grand merci pour cette réponse !!!!

Sinon tu indique que les fichier irr peuvent poser probleme par la suite.

Quel autre système puis je utiliser pour pouvoir créer des scenes contenant des objets liés à des mesh ?

J'utlise Blender pour modeliser les objet, mesh et scene, je peux avec créer mes animations (bones) mais aussi générer les lightmaps qui sont utiliser par Irrlicht


De quel autre manière pourrais je travailler sans passer par des scene irr ?

a+,
thoced

Hors ligne


#3 

22-10-2011 11:46:53

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

perso j'ai crée mon propre system de serialisation/deserialisation
le truc avec les senes irr c'est qu'on est vite limiter (warp, action, event, ... etc)

en gros j'ai fait une surcouche d'irrlicht, irrlicht me sert de base pour les fonctions principales,
cepandant j'ai mais propre node, mon propre scene manager, etc ...
ce qui me permais de faire casiment tout et nimporte quoi, la contrainte est que je doit devellopez l'editeur moi même
je dit pas que mais choix sont la marche a suivre, mais que c'est une voix  possible.

sans partir dans les extrème comme moi, tu pourrais néhant moi faire une gestion des nodes "virtuels",
tu déclarer t'est entiter (class) avec des fonction primaire de serialisation/deserialisation (via xml par exemple, ou lua si tu veut quelque chose de plus pousser)
et un entity manager qui te permaitra de charger t'est scene, ce n'est pas très complex, et sa ouvre pas mal de possibiliter

Hors ligne


#4 

22-10-2011 15:00:00

thoced
Membre
Date d'inscription: 02-08-2010
Messages: 65

Ok merci,

Pour l'instant, je développe un jeu d'enquête.

Pour l'instant j'utilise Blender pour la réalisation de ma scene et de mes objets. J'utilise blender pour la génération des lightmaps et j'exporte le tout avec irrblend 0.4.

J'utilise LUA comme moteur de script pour me permettre de paramètré mais aussi exécuter du code.

En exemple, dans le jeu lorsque je défini via Blender qu'un objet est une porte, j'appel une méthode du fichier script portant le même nom que le nom donné dans blender pour l'objet porte. Ainsi, je peux facilement donner des caractéristiques différentes aux portes contenues dans ma scene  (ex : son joué différemment en fonction de la porte, vitesse d'ouverture de porte, angle d'ouverture de la porte,...).

J'utilise aussi ce principe pour les objets interactif du jeu. En exemple je peux définir par script Lua ce que je peux faire avec un objet (ex : l'analyser ou simplement le ranger dans l'inventaire). Je peux jouer un son ou inscrire du texte à l'écran.

Mon soucis vient lorsque j'utilise des objets dynamique, en exemple une personne modélisé via Blender avec squelette et animation. En utilisant Irrblend 0.4 je ne peux le charger. Je suis donc obligé de l'instancier par programme sinon il est ajouté dans ma scene comme un simple mesh static.

A nouveau, j'ajoute à ma scene mon mesh dynamic via le script LUA.

Aurais tu une autre façon de faire sans pour autant devoir reprogrammer le tout ?.
a+ thoced

Hors ligne


#5 

22-10-2011 22:14:48

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

tout dépend de la complexiter et des optimisation que tu souhait avoir wink
irrlicht seul ne me sufisait pas c'est pourquoi j'est entre prit cette surcouche, ce qui me permait de tout géré dynamiquement
en regroupent notament les nodes par material, du frustum-culling, lod, etc ... etc ... le tout en multi-thread, et une physique poussé

je pensse que tu dépend trop des outils que tu utilise, la simpliciter c'est bien, ça permait de faire une ébauche de ce que l'on souhait, mais rarement plus
si tu veut plus alors oui tu devras coder t'est propre system, mais d'après ce que tu fait autemps coder sur le game engine de blender (cf: Dead-Cyborg)

après je ne juge pas ton travail, ... a tu pensser a crée un obj vide représentent l'obj dynamic ?
que tu utilise comme "cle" pour injecter ton joueur depuis ton programme et que tu gère également en externe, ça rejoint ce que je disais plus haut, cert les fonctions de serialisation en moins wink

Hors ligne


#6 

23-10-2011 10:34:23

thoced
Membre
Date d'inscription: 02-08-2010
Messages: 65

Concernant l'objet vide, effectivement j'y ai déja pensé, une fois chargé j’interprète  cela comme un objet dynamique et je le charge manuellement.

Je pense que je vais revenir sur cette solution pour l'ajout d'objet dynamic mais je vais réfléchir à ce que tu écrivais. Merci pour l'info.

a+, thoced

PS: As tu une video ou screen shot de ce que tu as déja réalisé ?

Hors ligne


#7 

23-10-2011 21:36:38

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

navré je n'est pas de screenshot représentatif de mon travail

ce pendant je devrait présenter mon travail dans quelque temps, ça dépendra de mon temps libre

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
111 invités en ligne
Aucun membre connecté
RSS Feed