Question

J'ecris un petit programme graphique en utilisant DirectX9 qui importe des fichiers modèles créés à l'aide mélangeur à partir de fichiers .x. Jusqu'à présent, si bon.

Les modèles ont des matériaux qui ont des textures et il est simple d'obtenir les noms de texture et de rendre correctement les objets mais je voudrais utiliser différents effets fichiers (shaders) sur certains des matériaux, mais je ne peux pas trouver un moyen de intégrer les informations sur ce Shader à utiliser dans le modèle dans le fichier .x.

La meilleure idée que j'avais été de regarder le nom du fichier de texture dans mon application D3D9 et hardcode une table de recherche de nom de texture fichier effet. Mais cela ne semble pas élégant, et signifie aussi que je finirais copier et renommer des textures que je pouvais donc utiliser la même texture avec différents shaders.

Je sens que je dois manquer une façon de faire plus facile, des suggestions?

Était-ce utile?

La solution

Contrairement aux fichiers d'image de texture, en spécifiant un programme de shaders peut être très compliqué. Vous avez besoin du texte de shaders ainsi que les spécifications pour les paramètres dont il a besoin et un moyen pour celui qui lit le fichier de savoir quelles valeurs pour les paramètres et comment. Certains shaders nécessitent des textures tour un paramètre et parfois ces texutres doivent être générés par l'application (par exemple dans le cas d'un bruit de Perlin texture 3D).
Bref, il n'y a aucun moyen de trouver un moyen standard pour spécifier génériquement shaders qui peut être entièrement integreted dans un format de fichier tel que .x. Votre seul choix est de venir avec ad hoc quelque chose pour votre application. La méthode que vous suggérez dans la question est aussi bon que.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top