opengl - 确保所有矢量分量都大于某个数字

标签 opengl glsl

我有一个 vec2包含 x 和 y 坐标。我需要确保它们都大于 16。我的第一次尝试:

if (gl_FragCoord.xy > 16.0) {
  // do something..
}

它无法编译并出现“没有匹配的操作数”错误。

如果我分别比较向量的每个维度,它就会起作用。
if ((gl_FragCoord.x > 16.0) && (gl_FragCoord.y > 16.0))
  // do something..
}

有没有更好的方法一次检查向量的所有元素?

最佳答案

有一个 function for component-wise comparison产生一个 bool 向量,然后 another one to check components of a boolean vector :

if (all(greaterThan(gl_FragColor.xy, vec2(16.0))) {
    /* ... */
}

关于opengl - 确保所有矢量分量都大于某个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47035457/

相关文章:

c++ - GLTessellator 崩溃

opengl - 现代 OpenGL 的点 Sprite 尺寸衰减

javascript - 使用 webgl 2.0、延迟着色、帧缓冲区对带有三 Angular 形网格的场景进行光线追踪

visual-c++ - GLSL 不会接受我的隐式转换

c++ - QML OpenGL 插件不以 60Hz 刷新

c++ - 使用 GLM 围绕点进行 OpenGL 旋转

c++ - 如何在 GLSL 中将 float 量化为无符号字节

c++ - GLSL 4.10 纹理映射

opengl - 如何渲染由三角形组成的网格,其中每个三角形具有相同的颜色,而每个三角形不指定该颜色 3 次

c++ - 正确更新顶点缓冲对象