【发布时间】:2009-11-09 13:04:54
【问题描述】:
如何在 glsl 中执行位操作?
使用常规 C 风格的位运算符 |、&、^ 或 ! 不起作用。
【问题讨论】:
-
在此处查看示例代码:stackoverflow.com/a/23730491/763355
如何在 glsl 中执行位操作?
使用常规 C 风格的位运算符 |、&、^ 或 ! 不起作用。
【问题讨论】:
它们是在 GLSL 1.30 (OGL 3.0) 中引入的。
根据您想要做什么,您最终可以使用浮点运算来模拟它们,例如x & (2^n)-1 = frac(x/(2^n))*(2^n),但您必须注意浮点错误。
【讨论】:
¬(不是门),那么你可以使用德摩根定律将它与∧(和门)结合以获得p ∨ q = ¬( ¬p ∧ ¬q )。
你需要放任何一个
#version 130
或
#extension GL_EXT_gpu_shader4 : enable
在着色器顶部以访问位运算符
【讨论】: