我尝试将this glsl code移植到hlsl(unity shader)中,但是编译器抱怨以下代码行:
#define Length float
const Length m = 1.0;
const Length km = 1000.0 * m;
其中km
由m
导出,错误消息表示:
- “km”:初始值必须是文本表达式 *
有什么方法可以解决这个问题,而不只是用它的文字值手动替换m
?
我试着谷歌这个,但没有找到任何相关的,或者也许这个问题只是一个抱怨HLSL的弱编译器。
我尝试将this glsl code移植到hlsl(unity shader)中,但是编译器抱怨以下代码行:
#define Length float
const Length m = 1.0;
const Length km = 1000.0 * m;
其中km
由m
导出,错误消息表示:
有什么方法可以解决这个问题,而不只是用它的文字值手动替换m
?
我试着谷歌这个,但没有找到任何相关的,或者也许这个问题只是一个抱怨HLSL的弱编译器。
1条答案
按热度按时间fd3cxomn1#
根据glsl-to-hlsl-reference,我们应该在hlsl中使用
static const
限定符。