#0 

07-05-2009 22:08:09

hsn87
Petit nouveau
Date d'inscription: 07-05-2009
Messages: 4

Est-que vous pourriez m'indiquer s'il y a un code sous Irrlicht pour gérer les events qui se chargent de changer la texture d'un objet(ex : couleur d'une voiture, customisation d'un personnage en plein rendu).
En bref un code pour manipuler la variation de texture d'un objet.
Mon but est en fait de minimiser le nombre de cartes à modeliser c-à-d je ne veux pas avoir 32 modèles 3d de cartes à modeliser, ne varier que les textures d'un nombre optimal de cartes éviterait une perte de temps big_smile.

Hors ligne


#1 

07-05-2009 22:23:38

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

Ben en fait, c'est pas trop compliqué. Si tu as une forme de base, représentant la forme géométrique de tes cartes, il te suffis de changer la texture avec une texture
préalablement chargé, avec une instruction comme 'setTexture( level, ITexture). C'est tout. Pas vraiment besoin des shaders pour cela d'ailleurs.


Force et sagesse...

Hors ligne


#2 

08-05-2009 21:30:58

hsn87
Petit nouveau
Date d'inscription: 07-05-2009
Messages: 4

Merci pour ta réponse tmyke! Je vais essayer cela et je vous en passerais le resultat! Je croyais que l'on avait besoin des shaders pour varier la texture d'un objet, mais je me suis trompé alors. Parcontre je ne comprend pas très bien le fonctionnement du paramètre 'level' de la methode 'settexture(,)'. Pourrais-tu m'y éclaircir un peu smile. Mon autre problème c'est que je n'arrive pas à charger une scène 3DS avec plusieurs texture(.bmp): cela est peut-être venue du fait que je ne manipule pas très bien la methode 'settexture(,)' !?!?

Hors ligne


#3 

09-05-2009 16:35:06

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

Tu n'as rien a faire de spéciale pour charger un modèle 3DS avec plusieurs textures.
un 'scenemanager->getMesh("nom.3ds");'  suffit à lui tout seul.

Une fois chargé ton modèle (d'ailleurs regarde l'exemple 08-SpecialFX' du package Irrlicht), tu peux récupérer les
material via ce genre de code:

Code:

for(int i=0; i< node->getMaterialCount(); i++)
    SMaterial *mat = &node->getMaterial(i);

et pour chaque material de tes éléments, tu peux changer à loisir les textures associés: mat->setTexture(layer, texture);
Le paramètre layer est le canal utilisé, souvent 0, mais dans le cas de multitexturing sur une surface, cela peux prendre
une valeur supérieur wink


Force et sagesse...

Hors ligne


#4 

24-05-2009 18:09:51

hsn87
Petit nouveau
Date d'inscription: 07-05-2009
Messages: 4

Mrci pour vos réponses! Dsl pour 7 long2 absence car j'étais pas mal occupé cet an ci! le pbm est résolu auparavant!

Hors ligne


#5 

25-05-2009 18:22:33

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

A l'avenir, merci de répondre en toute lettre !
Si tout le monde se met à écrire de cette manière le forum sera illisible, puis je trouve ça extra mal poli...


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#6 

27-05-2009 19:52:45

hsn87
Petit nouveau
Date d'inscription: 07-05-2009
Messages: 4

Réponse à Copland >>Je vais essayer d'enchaîner CLAIREMENT mes phrases à la prochaine discussion! Désolé si ca t'a vraiement influencé! Au revoir messieur Copland! big_smile

Hors ligne


#7 

27-05-2009 21:00:28

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

Écrire clairement est un effort minimum à faire, par respect pour tout ceux qui vont te lire. Même si tu es pressé et que tu
souhaite répondre rapidement, il ne faut pas céder à la tentation du langage SMS ou abrégé.
Copland a donc parfaitement eu raison de te le faire remarquer. Tes derniers mots à son égard sont donc déplacés et mal venu.


Force et sagesse...

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
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
70 invités en ligne
Aucun membre connecté
RSS Feed