3d 如何在.x文件中嵌入着色器信息

3d 如何在.x文件中嵌入着色器信息,3d,direct3d,blender,3d,Direct3d,Blender,我正在使用directx9编写一个小的图形程序,它从.x文件导入一些使用blender创建的模型文件。到目前为止还不错 模型中的材质具有纹理,获取纹理名称和正确渲染对象很简单,但是我想在某些材质上使用不同的效果(着色器)文件,但我找不到任何方法在.x文件中嵌入有关在模型中使用哪个着色器的信息 我最好的想法是查看我的d3d9应用程序中的纹理文件名,并硬编码纹理名称的查找表以影响该文件。但这看起来并不优雅,也意味着我最终会复制和重命名纹理,这样我就可以在不同的着色器中使用相同的纹理 我觉得我一定错过

我正在使用directx9编写一个小的图形程序,它从.x文件导入一些使用blender创建的模型文件。到目前为止还不错

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

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


我觉得我一定错过了一个更简单的方法,有什么建议吗?

与纹理图像文件不同,指定着色器程序可能非常复杂。您需要着色器文本及其所需参数的规格,以及让读取文件的人知道为参数设置哪些值以及如何设置的方法。某些着色器反过来需要纹理参数,有时这些纹理需要由应用程序生成(例如,在Perlin noise 3D纹理的情况下)。

简言之,没有办法找到一种标准方法来通用地指定可以以文件格式(如
.x
)完全集成的着色器。你唯一的选择就是为你的应用程序设计一些特别的东西。您在问题中建议的方法与任何方法一样好。

与纹理图像文件不同,指定着色器程序可能非常复杂。您需要着色器文本及其所需参数的规格,以及让读取文件的人知道为参数设置哪些值以及如何设置的方法。某些着色器反过来需要纹理参数,有时这些纹理需要由应用程序生成(例如,在Perlin noise 3D纹理的情况下)。
简言之,没有办法找到一种标准方法来通用地指定可以以文件格式(如
.x
)完全集成的着色器。你唯一的选择就是为你的应用程序设计一些特别的东西。你在问题中建议的方法和其他方法一样好