我正在WebGL中运行一些实验,其中一个是XOR效果片段着色器。由于某种原因,所有按位运算符都在GLSL中保留,并在使用时导致编译器错误。为什么这些运营商非法?我可以用什么代替|在这种情况下?
答案 0 :(得分:3)
在GLSL 1.0规范中,它们被保留为“以备将来使用”,这是1.3规范。它允许使用无符号和有符号整数,包括标量和向量。
您应该通过
开始着色器#version 130
答案 1 :(得分:2)
我也遇到了这个问题,例如尝试使用Chrome在Shader Toy中运行Slisesix。
This question有两个答案显示了在没有按位运算符的情况下实现按位XOR的方法。它们可能很慢,但在某些情况下它们足够快。总比没有好。
您可能还会看到+
是否与按位XOR足够接近,具体取决于您的要求。