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

时间:2017-10-31 12:29:37

标签: opengl glsl

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

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

无法使用“无匹配操作数”错误进行编译。

如果我分别比较矢量的每个维度,它就有效。

if ((gl_FragCoord.x > 16.0) && (gl_FragCoord.y > 16.0))
  // do something..
}

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

1 个答案:

答案 0 :(得分:6)

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

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