stepElement
stepElement
与 GLSL step 等价但参数顺序为 (x, edge) 的别名:当 x ≥ edge 返回 1,否则返回 0。
核心优势
将源值放在前、阈值在后,更贴合直觉并与多数节点/函数的参数顺序一致,减少把 step(edge, x) 写反的出错概率。
常见用途
快速生成二值遮罩/硬边界(如 UI 蒙版、条纹阈值)。
阈值裁剪或 Alpha 测试逻辑(可配合 discard 或 materialAlphaTest)。
将连续信号(噪声、灰度)量化为开/关两态,用作开关或条件分支。
如何调整
调节第二个参数 edge 以移动阈值;对输出调用 oneMinus() 可反相;与 smoothstep 联用可在硬边处加入抗锯齿过渡。函数等价于 step(edge, x)。
代码示例
1
2// 将 uv.x 与阈值比较:左黑右白
3const mask = stepElement( uv().x, float( 0.5 ) );
4material.colorNode = mix( color( 0x000000 ), color( 0xffffff ), mask );
5