我如何在glsl中执行位操作

Gam*_*eak 8 glsl bitwise-operators

如何在glsl中执行位操作?

使用常规的C风格的位运算符|,&,^,或!不能正常工作.

Asz*_*sha 8

它们已经与GLSL 1.30(OGL 3.0)一起推出.

例如,根据您想要做的事情,您最终可以使用浮点运算x & (2^n)-1 = frac(x/(2^n))*(2^n)来模拟它们,但是您必须处理浮点错误.


Chr*_*odd 5

你需要把它们放在一起

#version 130
Run Code Online (Sandbox Code Playgroud)

要么

#extension GL_EXT_gpu_shader4 : enable
Run Code Online (Sandbox Code Playgroud)

在着色器的顶部,以访问位运算符