1

我要问一个比较笼统的问题。

我正在使用 VC++ 2010,使用着色器组件编写 Direct X9 应用程序。该程序编译得很好,它绘制了一个带灯光和纹理的正方形。问题在于,尽管程序的 c++ 端工作正常,并且更改照明颜色或纹理位置等更改工作正常,但对 .fx 文件的所有更改都被忽略了。实际上从指定目录中删除文件实际上对程序没有影响。

这是编译器问题吗?当然 HLSL 文件不是没用的,我的意思是我正在将变量传递给它,那么它们会去哪里?

main.cpp:mediafire.com/?9n4llrclcfohqfb

transform.fx:mediafire.com/?jqach463p2vcqhz

4

2 回答 2

0

着色器不会即时重新编译,因此如果您在程序运行时修改着色器代码,您需要再次调用 D3DXCreateEffectFromFile 来创建着色器的新编译实例。

于 2012-09-25T23:52:22.137 回答
0

哇,这实际上是相当可耻的,原来我忘记在 D3DXCreateEffectFromFile 函数中编辑 .fx 文件的目录,所以我正在编辑的文件当然对应用程序没有影响。感谢大家的帮助。

于 2012-10-07T05:14:16.733 回答