materialAlphaTest
materialAlphaTest
提供材质的 alpha 测试阈值,一个 0-1 的浮点值,用于在着色器中决定是否要丢弃(不渲染)alpha 值低于该阈值的片元。
核心优势
将底层的 Uniform 管理和 `discard` 逻辑完全抽象化,并与 `material.alphaTest` 属性无缝集成,极大地简化了创建镂空或硬边缘透明效果的工作流。
常见用途
渲染植被(如树叶、草),以获得清晰的轮廓。
制作镂空效果,如铁丝网或带破洞的布料。
高效渲染不规则形状的粒子。
调试 alpha 通道,以可视化阈值效果。
如何调整
在 JavaScript 中修改 `material.alphaTest` 属性(0-1)。值为 0 时基本禁用测试。随着值增加,更多半透明像素会被丢弃,使物体的可见区域收缩,边缘“切割”得更厉害。
代码示例
1// 获取最终的 alpha 值,例如来自纹理
2const finalAlpha = texture( map, uv() ).a;
3
4// 如果最终 alpha 小于材质的 alphaTest 阈值,则丢弃该片元
5if ( finalAlpha.lessThan( materialAlphaTest ) ) {
6
7 discard();
8
9}