如何在 glsl 中执行位运算

2023-12-26

如何在 glsl 中执行位运算?

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


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 glsl 中执行位运算 的相关文章

  • 一般问题:着色语言/着色器是面向对象的吗?

    我目前正在接受学徒培训 其中一位培训师说 着色器是面向对象的 作为面向对象编程的示例 对我来说 这意味着 HLSL 和 GLSL 是面向对象的语言 我从来没有认为着色器是面向对象的 但现在当我看到这个时 https www khronos
  • 粒子系统的点精灵

    点精灵是构建粒子系统的最佳选择吗 新版本的 OpenGL 和最新显卡的驱动程序中是否存在点精灵 或者我应该使用 vbo 和 glsl 来做到这一点 点精灵确实非常适合粒子系统 但它们与 VBO 和 GLSL 没有任何关系 这意味着它们是完全
  • 如何在WebGL中实现类似隧道的动画? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在WebGL中实现类似隧道的动画
  • WebGL 中的 AlphaFunctions?

    是否可以实现透明度低于 0 5 的片段被丢弃 而 alpha 高于 0 5 的片段渲染为不透明的效果 从我读到的来看 glEnable GL ALPHA TEST glAlphaFunc GL GREATER 0 5 这将是我正在寻找的 但
  • 按位非运算符解释

    为什么按位非运算符 在大多数语言中 会像这样转换以下值 2 gt 1 1 gt 0 0 gt 1 1 gt 2 不应该 2转换成2 1转换成 1 etc See 二进制补码 http en wikipedia org wiki Two 27
  • 这就是 C 中 + 运算符的实现方式吗?

    当理解原始运算符如 and 是用C实现的 我发现了以下片段一个有趣的答案 https stackoverflow com a 11694778 5399734 replaces the operator int add int x int
  • 对数/线性 Z 缓冲区阴影贴图

    问题在于 伪影出现在距离很远的阴影中 我想尝试制作一个对数深度缓冲区 但我不明白应该在哪里完成以及如何完成 我对全向阴影贴图使用点光源方法 顶点着色器 version 460 core layout location 0 in vec3 a
  • 编写每个三角形/面具有纯色的 GLSL 片段着色器的方法

    我有顶点和三角形数据 其中包含每个数据的颜色triangle 面 不是每个顶点 即单个顶点由多个面共享 每个面可能具有不同的颜色 我应该如何在 GLSL 中解决这个问题以获得每个的纯色分配face正在渲染 通过平均顶点相邻多边形的颜色来计算
  • 如果可能的话,如何在 C 中定义 2 位数字?

    对于我的大学过程 我正在模拟一个称为随机顺序吸附的过程 我必须做的一件事是随机地将正方形 不能重叠 放置到格子上 直到没有更多空间为止 重复该过程几次以找到平均 干扰 覆盖率 基本上我正在对一个大的整数数组执行操作 其中存在 3 个可能的值
  • 无法将简单的无符号字节 RGB 纹理映射到四边形:

    我有一个非常简单的程序 将虚拟红色纹理映射到四边形 下面是 C 中的纹理定义 struct DummyRGB8Texture2d uint8 t data 3 4 int width int height DummyRGB8Texture2
  • 尝试 glUseProgram 时出现 Opengl 错误 1281

    我有什么想法可以调试这个opengl进一步错误 1281 我正在从文件加载源代码 编译 链接 然后尝试检查错误glUseProgram 在我的对象的绘制方法中 log info gl2 glIsProgram shaderProgram t
  • C++14 是否定义了 unsigned int 填充位上按位运算符的行为?

    C 标准 If a C 14 http www open std org jtc1 sc22 wg21 docs papers 2013 n3797 pdf实现包括在底层字节中填充位unsigned int 标准是否指定是否不得对填充位执行
  • 如何创建一个 numpy 数组来描述三角形的顶点?

    我喜欢使用 Numpy 创建要传递到的顶点数组glsl Vertices将是一个包含 3 个顶点信息的 numpy 数组 Each vertex包括 pos x y 具有 32 位的 64 位有符号浮点格式 R 分量位于字节 0 3 中 3
  • 这段 C# 代码中的“&=”有什么作用?

    我遇到了一些看起来像这样的代码 string someString bool someBoolean true someBoolean someString ToUpperInvariant Equals blah 为什么我要使用按位运算符
  • (x % 64) == (x & 63) 背后的基本原理是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 按位与代替模运算符 https stackoverflow com questions 3072665 bitwise and in place of modulus operator 有人可以解释使
  • 位运算符,而不是在分支中使用异或

    问完后这个问题 https stackoverflow com questions 22336015 why use xor with a literal instead of inversion bitwise not 我收到了 Ando
  • GLSL 棋盘图案

    我想用跳棋来遮蔽四边形 f P 下限 Px 下限 Py mod2 我的四边形是 glBegin GL QUADS glVertex3f 0 0 0 0 glVertex3f 4 0 0 0 glVertex3f 4 4 0 0 glVert
  • OpenGL ES 片段着色器显然不可能返回白色

    这是一个奇怪的现象 我有一个片段着色器 据我所知只能返回黑色或红色 但它将像素渲染为白色 如果我删除一根特定的线 它会返回我期望的颜色 它适用于 WebGL 但不适用于 Raspberry Pi 上的 OpenGL ES 这是着色器代码 如
  • GLSL - 测试片段值

    假设你有一个vec3 colourIn从一个vertex shader to a frag shader 有没有办法测试一个值并根据需要覆盖它 例如 将任何蓝色值大于0 5的片段设置为白色 In my Shader frag我实施了这个测试
  • 在 iOS 上使用 OpenGL ES 2.0 进行实例化绘制

    简而言之 谁能确认是否可以使用内置变量gl InstanceID or gl InstanceIDEXT 在 iOS 上使用 OpenGL ES 2 0 的顶点着色器中GL EXT draw instanced启用 Longer 我想使用绘

随机推荐