Comme vous l'avez peut-être vu dans ce post de Blendman http://www.purebasic.fr/french/viewtopi ... =1&t=12763, j'ai créé un petit éditeur de material/shaders pour PB.
Blendman s'était heurté au problème suivant: on ne peut faire Parse3dScripts qu'une seule fois par programme, donc on ne peut pas créer ou modifier un material puis afficher dynamiquement le résultat.
Quoique si, peut-être... L'idée (venue en pleine nuit alors que je pensais à autre chose; des fois, on se demande...), c'est de lancer un second programme chargé de l'affichage 3D dans une window fille de la fenêtre de l'éditeur => quand on modifie le material, on kill et on relance ce programme, qui affiche alors le material modifié.
Et voilà le travail!


Voilà donc tout le bazar: http://keleb.free.fr/codecorner/downloa ... Editor.zip
ça contient les sources de l'éditeur (materialEditor.pb) et du programme de preview (materialPreview.pb), le fichier du Visual Editor de PB, les icônes, etc..
Plein de choses sont embarquées dans l'exe par des "includeBinary": l'exe de preview, un material par défaut avec ses textures, des images... Tout cela se trouve dans le répertoire "included".
Et pour ceux qui veulent essayer tout de suite, voici le programme compilé (win 32 bits): http://keleb.free.fr/codecorner/downloa ... torExe.zip
Engine3D.dll est inclus: dézippez ça dans un répertoire, et ça marche (normalement).
Mode d'emploi résumé:
Touches:
- curseur + pageup pagedown pour manipuler la preview;
- F5 pour rafraîchir la preview en fonction des modifs apportées dans les éditeurs.
- Le menu sert à charger/sauvegarder. Les sauvegardes embarquent meshes, textures, material et shaders, qui "packés" dans la sauvegarde, et "unpackés" quand on ré-ouvre le projet.
- On peut aussi exporter un material avec ses dépendances, et tous les fichiers sont alors enregistrés dans le répertoire choisi, de même qu'un petit source PB montrant comment charger le tout.
Pour importer un material existant, pas d'automatisme: on passe par les petits boutons "importer" présents sur chaque onglet.
Exemple avec le material "SphereMap" dans purebasic/examples/3d/data/scripts:
- Sur l'onglet "material", clique sur le bouton "importer" et choisis "spheremap.material" => le contenu du fichier apparaît dans l'éditeur;
- Sur l'onglet "Shader", tu peux tout supprimer (ce material n'utilise pas de shader. S'il y en avait, ils seraient référencés derrière le mot-clef "source" dans le material);
- Sur l'onglet "Textures - meshes", supprime les textures et importe les deux référencées dans les "textures units" du material: "rustySteel.jpg" et "spheremap.png" (elles sont dans purebasic/examples/3d/data/textures);
- Appuie sur F5 pour forcer le rafraîchissement => ça devrait marcher.
Limitation:
- L'éditeur ne gère qu'un seul material par fichier ".material", et un seul fichier ".material" par projet; donc un projet = un material (par contre, pas de limite sur le nombre de fichiers de mesh, de shaders ou de textures).
- Quand on active l'affichage du sol, cela active aussi les ombres en mode "modulative", ce qui est parfois génant; il faut que j'ajoute un paramétrage pour choisir le type d'ombrage utilisé...
- C'est en anglais, désolé... Je n'ai pas encore pris le temps de traduire; mais je le ferai très bientôt, promis.
Bon, voilà. Il y a encore des bugs et des trucs pas pratique, mais c'est déjà assez utilisable et ça simplifie un peu l'écriture des materials. J'espère que ça vous sera utile!

[EDIT] Le Zip avec exe + engine3D.dll a été mis à jour pour PB v5.00b2 .