GLSL - 为什么保留按位运算符?什么是使用按位运算的有效替代方法(按位模拟的浮点运算)

时间:2010-08-22 20:35:29

标签: opengl shader glsl webgl

我正在WebGL中运行一些实验,其中一个是XOR效果片段着色器。由于某种原因,所有按位运算符都在GLSL中保留,并在使用时导致编译器错误。为什么这些运营商非法?我可以用什么代替|在这种情况下?

2 个答案:

答案 0 :(得分:3)

在GLSL 1.0规范中,它们被保留为“以备将来使用”,这是1.3规范。它允许使用无符号和有符号整数,包括标量和向量。

您应该通过

开始着色器
#version 130

答案 1 :(得分:2)

我也遇到了这个问题,例如尝试使用Chrome在Shader Toy中运行Slisesix。

This question有两个答案显示了在没有按位运算符的情况下实现按位XOR的方法。它们可能很慢,但在某些情况下它们足够快。总比没有好。

您可能还会看到+是否与按位XOR足够接近,具体取决于您的要求。