#0 

05-11-2006 14:41:50

Agar
Membre
Date d'inscription: 01-11-2006
Messages: 16

Salut à tous,

Je suis en train de migrer progressivement de Irrlicht.Net classique à Irrlicht.Net CP, avec beaucoup de petits couinements de joie jusqu'à présent.

Jusqu'à, parce que je viens de me rendre compte que la fonction SetMaterial(int material, Material mat) n'existe plus dans l'objet SceneNode. C'est génant, parce que j'ai toujours préféré m'en servir pour texturer des objets utilisant plusieurs matériaux.

Donc, deux questions:
1- Peut-être existe-t-elle encore mais a-t-elle changé de nom? Si oui, où se cache-t-elle maintenant? Parce que je crois vraiment avoir cherché partout.
2- Sinon, existe-t-il, sous Irrlicht.Net CP, un moyen de faire la même chose sans (à savoir, assigner un object "Material" pré-créé à tel ou tel materiau d'un node). Je ne pense pas que ce soit possible avec SetMaterialTexture, SetMaterialFlag et SetMaterialType (qui, sauf erreur, ne modifient que le premier matériau).

Bref, help!

Dernière modification par Agar (05-11-2006 14:42:12)

Hors ligne


#1 

05-11-2006 19:56:38

kedu
Modérateur
Date d'inscription: 23-09-2006
Messages: 155

Pour ma part j'utilise davantage la fonction "SetMaterialTexture(int layer, Texture text);"

Mais j'ai la même interrogation que toi pour comprendre la relation Textures/Matériaux... DeusXL revient bientôt ; je suis sûr qu'il saura éclairer nos lanternes !

Hors ligne


#2 

05-11-2006 21:04:46

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Elle n'existe pas car inutile. En effet, quand tu "get" un material, tu récupère un pointeur vers lui donc toute modification faite affecte automatiquement la SceneNode wink
C'est étrange pour le coup je l'admet mais ça se révèle beaucoup plus simple je trouve.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#3 

06-11-2006 01:56:33

Agar
Membre
Date d'inscription: 01-11-2006
Messages: 16

DeusXL :

Elle n'existe pas car inutile. En effet, quand tu "get" un material, tu récupère un pointeur vers lui donc toute modification faite affecte automatiquement la SceneNode wink
C'est étrange pour le coup je l'admet mais ça se révèle beaucoup plus simple je trouve.


Ok, my mistake comme on dit en français. J'étais persuadé jusqu'ici que GetMaterial retournait une copie du matériau et non un pointeur vers lui (sans doute parce que le nom de la fonction commence par "Get", et que mon cerveau a sa raison que la raison ignore).

Je reconnais qu'utiliser GetMaterial devient dans ce cas plus simple que de faire un SetMaterial avec en paramètre un nouveau matériau.

Mais alors, deux questions:
1- Pourquoi ne pas renommer GetMaterial en Material (ou NodeMaterial, pour éviter les confusions, vu que le nom Material est déjà pris) ? Ca éviterait aux gens de faire la même erreur de raisonnement que moi...
2- A quoi servent encore les fonctions SetMaterialTexture, SetMaterialFlag et SetMaterialType ? Je sais par exemple qu'elles ont tendance à embrouiller les débutants (c'était mon cas quand j'ai commencé Irrlicht), qui confondent les "layers" de textures d'un même matériau avec la liste des matériaux.

Tant que j'y suis, vu que je t'ai sous la main, DeusXL, félicitations pour Irrlicht.net CP, c'est de loin le meilleur wrapper Irrlicht que j'ai jamais vu.

Dernière modification par Agar (06-11-2006 01:56:44)

Hors ligne


#4 

06-11-2006 07:25:04

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Pour la question 1] c'est les préférences des gens, moi je le nomme ainsi pour coller à Irrlicht un minimum.
Pour la question 2] imagine un mesh avec 50 materials, tu devrais faire une boucle for très longue pour mettre la même texture/le même flag/le même type à tous ces matériaux. Au lieu de cette longue boucle for, tu fais SetMaterial** et ça l'applique sur tous les matériaux. L'utilité de ces fonctions est clairement de faire des opérations de masse wink

PS : Merci smile


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

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