and
and
执行逻辑“与”(AND)运算,当且仅当所有输入条件都为真时,结果才为真,用于组合多个独立的判断。
核心优势
以扁平化、类似自然语言的方式组合多个逻辑条件,极大地提升了复杂逻辑的可读性。其支持多个输入(可变参数)的特性,简化了长条件链的构建。
常见用途
组合几何遮罩与图案遮罩,如只在物体下半部分的噪点区域应用效果。
创建程序化图案的交集,如通过组合垂直和水平条纹来生成网格。
根据多个游戏状态(如“中毒”且“计时器激活”)来触发特效。
构建自定义光照模型,如物体仅在同时被多个特定方向的光照亮时才显示。
如何调整
通过改变其任何一个布尔输入来调整。在生锈铁球的例子中,`and` 节点就像一个保安,只有当一个像素同时满足“位置在下半球”和“是锈斑”两个条件时,才允许其显示为铁锈色。改变其中任何一个条件(如让噪点动起来),都会影响最终结果,但结果总是受限于两个条件的交集。
代码示例
1// 条件A: 物体下半部分
2const isLowerHalf = position.y.lessThan( 0.0 );
3// 条件B: 噪点定义的斑块
4const isRustyPatch = noise( position.mul(10) ).greaterThan( 0.7 );
5
6// 组合两个条件,得到最终的遮罩
7const rustMask = and( isLowerHalf, isRustyPatch );