我是使用碎片着色器的新手。为什么我的代码会引发语法错误?我不明白为什么它不起作用。这是一段引发错误的代码:
if ((int) pos.y % 9 == 1) shade = 1;
二者都 pos.y 和 shade 是浮子。我把 (int) 之前 位置 这样我就可以对它使用模。错误消息是这样说的:
pos.y
shade
(int)
位置
ERROR: 0:17: ')' : syntax error syntax error
我认为这个错误意味着我已经 太多了 或 很少 括号,但我检查了一下,我的代码似乎很好。为什么会出现错误,我能做些什么来解决它?
GLSL不是C.As stated in the GLSL specification :
没有类型转换运算符;而是使用构造函数。
像这样的 (int) 在GLSL中不是一件事。如果您想将一些浮点转换为 int ,使用构造函数语法: int(pos.y) 。
int
int(pos.y)