GLSL 内置函数

any()

只要布尔向量任一分量为真就返回真。

示例版本:GLSL ES 1.00 / WebGL 1示例阶段:片段

函数签名

bool any(bvec2 x)
bool any(bvec3 x)
bool any(bvec4 x)

参数

x
输入值或左侧向量

返回值

一个 bool:只有 x 的所有分量都为 false 时才为 false。

在线示例

修改右侧代码,左侧预览会实时更新。

any 做什么

只要布尔向量任一分量为真就返回真。

看懂预览

any(greaterThan(abs(vec2(x,y)),vec2(0.5))) 选中中央方块以外的区域。把界限提高为 vec2(0.75),中央未选中的方块会扩大。

核心调用

float(any(greaterThan(abs(vec2(x,y)),vec2(0.5))));

any 适合越界检测;全部条件成立应使用 all。

修改实验

把 greaterThan 的 vec2(0.5) 改为 vec2(0.25,0.75)。两个比较都不成立的中央区域会变成窄而高的矩形。

规范

GLSL ES 1.00 built-in functions, chapter 8

相关函数