any
any
判断一个布尔向量(bvec)中是否存在至少一个为真的分量,将多个并列的向量化比较结果聚合成一个单一的布尔值。
核心优势
以最简洁、可读的方式检测一组并列条件中“是否存在任何一个”满足的情况,它直接映射到高效的原生 GLSL `any()` 函数,是 all 节点的完美补充。
常见用途
检测物体是否越界,即其位置在 X、Y 或 Z 轴上任意一个方向超出了范围。
根据颜色通道高亮,如高亮任何一个 R、G 或 B 通道值很高的像素。
创建邻近感应效果,如当物体在任意轴向上靠近时触发反应。
聚合多个伤害来源,如“火焰伤害”或“冰霜伤害”中任意一种发生时触发护盾特效。
如何调整
通过改变生成布尔向量的比较条件来调整。在颜色辉光的例子中,`any` 节点像一个“侦察兵”,只要发现任何一个颜色通道的数值足够高,就会触发特效。降低比较的阈值会让更多颜色触发辉光,反之则会更少。
代码示例
1// 比较像素颜色的每个通道是否大于 0.9
2const isSaturated = greaterThan(baseColor.rgb, 0.9);
3
4// 只要有任何一个颜色通道满足条件,就触发辉光
5const showGlow = any(isSaturated);