getRoughness
getRoughness
计算最终用于光照和反射的有效粗糙度。它融合了材质的基础粗糙度、模型的几何细节(通过`getGeometryRoughness`)以及一个防止镜面锯齿的最小粗糙度下限。
核心优势
封装了PBR渲染中关于粗糙度处理的“最佳实践”。它自动处理镜面抗锯齿和几何细节融合,让开发者只需关注材质本身,即可轻松获得更高质量、更稳定的渲染结果。
常见用途
在标准PBR材质中计算最终粗糙度
为环境贴图反射选择合适的Mipmap等级
为具有复杂几何细节的模型提供抗锯齿
结合粗糙度贴图与几何细节
如何调整
该节点没有直接参数。通过设置其输入 `roughness` 节点来控制它,通常是设置材质的 `roughness` 属性(一个常数值)或 `roughnessMap` 属性(一个纹理)。其输出也受模型几何体和法线贴图的间接影响。
代码示例
1// 概念性逻辑:
2// 1. 确保基础粗糙度不低于抗锯齿下限
3const baseRoughness = max( materialRoughness, 0.0525 );
4// 2. 叠加上几何细节带来的粗糙度
5const finalRoughness = baseRoughness + getGeometryRoughness();