PDA

Voir la version complète : Bonjour à tous, vous aimez Py4D aussi :D?



miro
06/10/2010, 15h08
Bonjour Bonjour,

Me voilà nouveau par ici. Je viens de découvrir Py4d, et je m'en sers pour ajouter de petits scripts d'automatisation de chargement.
La documentation étant plutôt austère (:biggrin:), je me permet de vous solliciter après de belles recherches infructueuses (enfin pas trop quand même hein :)
Voici mon problème:
Je cherche à créer une texture...
J'ai réussi à créer un plan, créer un matériau, appliquer le matériau au plan, changer le type de projection, mais je ne trouve pas comment appliquer une texture (chargée à partir d'un fichier image) au matériau pour finalement en faire une texture. Le tag Texture semble être de type BaseList2D, mais de ce côté là, je n'ai rien trouvé de concluant. Je pencherai pour croire qu'il s'agisse enfaite d'une classe fille, mais apparemment, py4d a parfois de petits problèmes à reconnaitre la hiérarchie d'héritage dans ses classes;)
A part ce petit problème, je me dois de dire que l'utilisation de Python dans ce contexte m'as étonnamment plu, notamment grâce à sa gestion native puissante des strings et de l'utilisation des fichiers externes faciles.
Vivement l'étouffement de la doc.

Si quelqu'un de sage s'échoue dans le bac à sable et qu'il ait une idée, je suis preneur.

Merci d'avance and have a good day
Miro

valkaari
06/10/2010, 20h30
en coffee, c'est un truc du genre, ça prends une texture qui est donnée dans une DU, ça la mets dans le canal transparence et ça désactive les autres cannaux.

ça pourra t'aider à trouver les bonnes fonctions.



myShader = AllocMaterial(Mmaterial);
doc->InsertMaterial(myShader,firstMaterial);

// Set the transparency to on
myShader->SetChannelState(CHANNEL_COLOR,FALSE);
myShader->SetChannelState(CHANNEL_TRANSPARENCY,TRUE);
myShader->SetChannelState(CHANNEL_SPECULAR,FALSE);
// set the texture to it
var trans = myShader->GetChannel(CHANNEL_TRANSPARENCY);
var transBC = trans->GetContainer();
var pathtofile = op#ID_USERDATA:8->GetFullString();


transBC->SetData(CH_TEXTURE,pathtofile);
trans->SetContainer(transBC);

Sir Gong
07/10/2010, 09h19
Bonjour Bonjour,
Si quelqu'un de sage s'échoue dans le bac à sable et qu'il ait une idée, je suis preneur.

Je t'ai passé membre reconnu, si tu veux discuter programmation dans les sections idoines...tu es le bienvenu.