我正在使用DirectX(SharpDX)编写着色器。问题是,我注意到我需要清理然后每次在着色器(.fx文件)中更改内容时构建。有什么方法可以避免这样做吗?在我进行一些更改之前,看起来“Build”足以应用更改......例如。如果我为一条线返回一个红色。我可能会将颜色更改为绿色,构建并且我仍然会看到它变红。如果我清理+构建,我会看到更改(绿色线条)。
我认为这可能与缓冲清洁有关,但我不太确定。
非常感谢任何想法。
答案 0 :(得分:1)
如果我没记错的话,着色器编译器就会出现并将着色器编译为.fxc字节码。我相信Visual Studio不会跟踪“外部文件”的更改(即不是C#/ C / C ++ /无论代码文件),所以当程序运行时,它会抓取已编译的.fxc代码,它没有新的变化。清除它会删除那些预编译的文件,从而触发重新编译。解决此问题的最简单方法是在“项目属性”中添加自定义生成步骤,以手动在着色器上运行DirectX着色器编译器(fxc.exe)。你将失去它的好东西页面(假设你首先使用它们),但是只要你编译你的项目,它就会重新编译你的着色器。