2009-07-26 47 views
1

我正在写一个使用directx9的小型图形程序,该程序会导入使用.x文件中的搅拌器创建的一些模型文件。到现在为止还挺好。如何将着色器信息嵌入到.x文件中

这些模型具有纹理材质,获取纹理名称和正确渲染对象非常简单,但是我想在某些材质上使用不同的效果(着色器)文件,但是我找不到任何方法在.x文件中嵌入关于在模型中使用的着色器的信息。

我最好的想法是在我的d3d9应用程序中查看纹理文件名,并将纹理名称的查找表硬编码为效果文件。但是这看起来并不优雅,也意味着我最终会复制和重命名纹理,以便我可以在不同着色器中使用相同的纹理。

我觉得我必须错过一个更简单的方法来做到这一点,有什么建议吗?

回答

1

与纹理图像文件不同,指定着色器程序可能非常复杂。您需要着色器文本以及所需参数的规范,以及读取文件的人员知道为参数设置哪些值以及如何设置参数的方法。有些着色器依次需要纹理参数,有时这些texut需要由应用程序生成(例如在Perlin噪声3D纹理的情况下)。
总之,没有办法想出一种标准的方法来统一指定可以完全集成在一个文件格式中的着色器,如.x。你唯一的选择是为你的应用程序提供一些特别的东西。您在问题中建议的方法与任何方法一样好。

+0

好吧,这很有道理,谢谢。 – jcoder 2009-07-26 18:47:19