roughness
roughness
提供材质的粗糙度,一个 0-1 的浮点值,用于在 PBR 工作流中定义表面的微观光滑度,从而决定反射的清晰或模糊程度。
核心优势
将 PBR 材质最核心的参数之一(粗糙度)标准化,并无缝链接到 JavaScript 的 `material.roughness` 属性,极大地简化了物理材质的创建和控制,无需手动管理 Uniform。
常见用途
定义具有均匀光滑度或哑光度的材质表面。
通过连接粗糙度贴图(Roughness Map)实现表面不同区域的粗糙度变化。
作为程序化效果(如噪点、磨损)的输出目标,以动态计算粗糙度。
如何调整
在 JavaScript 中修改 `material.roughness` 属性(0-1)。低值(如 0.05)产生镜面般清晰的反射;中等值(如 0.5)产生半光泽的模糊反射;高值(如 0.95)产生接近漫反射的哑光效果。也可将纹理节点连接到 `roughnessNode` 以实现局部变化。
代码示例
1// 将材质的基础粗糙度与贴图值相乘,以获得最终的粗糙度
2// 允许在保留贴图细节的同时,全局调整整体粗糙度
3const finalRoughness = roughness.mul( texture( roughnessMap, uv() ).g );