我正在写一个使用directx9的小图形程序,从.x文件导入一些使用搅拌器创建的模型文件。到目前一切尚好。
模型的材质有纹理,获取纹理名称和正确渲染对象很简单,但是我想在一些材质上使用不同的效果(着色器)文件,但是我找不到任何方法来在.x文件中嵌入关于在模型中使用哪个着色器的信息。
我最好的想法是在我的d3d9应用程序中查看纹理文件名,并硬编码纹理名称的查找表以实现文件的效果。但这看起来并不优雅,这也意味着我最终会复制和重命名纹理,这样我就可以在不同的着色器上使用相同的纹理。
我觉得我肯定错过了一种更简单的方法来做这件事,有什么建议吗?
发布于 2009-07-26 14:58:27
与纹理图像文件不同,指定着色器程序可能非常复杂。您需要着色器文本以及所需参数的规范,并提供一种方法,使读取该文件的任何人都能知道要为参数设置哪些值以及如何设置。一些着色器反过来需要纹理a参数,有时这些纹理需要由应用程序生成(例如,在Perlin noise 3D纹理的情况下)。
简而言之,没有办法想出一种标准的方法来通用地指定着色器,这些着色器可以完全集成在.x等文件格式中。您唯一的选择就是为您的应用程序提供一些特别的东西。你在问题中建议的方法和任何方法一样好。
https://stackoverflow.com/questions/1184744
复制相似问题