【问题标题】:How do I perform bit operations in glsl如何在 glsl 中执行位操作
【发布时间】:2009-11-09 13:04:54
【问题描述】:

如何在 glsl 中执行位操作?

使用常规 C 风格的位运算符 |&^! 不起作用。

【问题讨论】:

标签: glsl bitwise-operators


【解决方案1】:

它们是在 GLSL 1.30 (OGL 3.0) 中引入的。

根据您想要做什么,您最终可以使用浮点运算来模拟它们,例如x & (2^n)-1 = frac(x/(2^n))*(2^n),但您必须注意浮点错误。

【讨论】:

  • 这样的例子还有吗?这个 AND 操作是我最需要的,但也有一些 OR 会派上用场...
  • @St0fF 如果你能找到一种方法来做¬(不是门),那么你可以使用德摩根定律将它与(和门)结合以获得p ∨ q = ¬( ¬p ∧ ¬q )
【解决方案2】:

你需要放任何一个

#version 130

#extension GL_EXT_gpu_shader4 : enable

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多