bvec4
bvec4
将一个四维向量(如 RGBA 颜色)按分量转换为布尔向量(`bvec4`),其中 0 转换为 `false`,任何非零值都转换为 `true`。
核心优势
将最繁琐的手动布尔转换(四分量)封装为单一节点,提供了对颜色和透明度(RGBA)进行统一逻辑判断的强大能力,是实现高级混合与特效的关键。
常见用途
实现条件性透明或片段丢弃(如溶解、能量护盾特效)
作为 `mix` 函数的遮罩,进行完整的 RGBA 通道混合
分析打包在纹理通道中的材质数据(如金属度、粗糙度等)
如何调整
此节点的效果完全由其输入的 `vec4` 决定。要创建动态效果,需在转换前修改输入。例如,通过一个 `uniform` 变量(如 `dissolveFactor`)和噪点纹理来程序化地控制输入颜色的 Alpha 通道,即可实现常见的溶解消失特效。
代码示例
1// 从纹理获取布尔遮罩,包含 alpha 通道
2const mask = texture(myTexture, uv()).bvec4();
3
4// 如果原始 alpha 为 0 (mask.w 为 false),则丢弃该像素
5// 这是实现硬边缘透明度的一种高效方式
6discard( equal( mask.w, false ) );