2011-02-18 56 views
1

在HLSL中,预处理器是否等同于C(++)中的预处理器,它在编译之前会从字面上改变代码?如果是这种情况,那么使用这种方法似乎可以在不添加运行时条件语句的情况下专门化着色器......是真的吗?HLSL中的#defines是否会增加任何性能开销?

回答

2

#define按照您的预期工作。它们在编译时进行评估。

如果您想检查编译器的输出以确保没有(不必要的)分支发生,请使用/Fc <file>选项来HLSL编译器(fxc)生成已编译着色器的汇编列表。

相关问题