materialRefractionRatio
materialRefractionRatio
提供对当前材质 `refractionRatio`(折射率)属性的访问,这是实现玻璃、水等逼真折射效果的核心物理参数。
核心优势
将底层的 Uniform 管理完全自动化,并与标准材质的 `.refractionRatio` 属性无缝集成,让开发者能以符合物理直觉的方式轻松控制折射效果。
常见用途
作为 `refract()` 函数的核心输入,用于计算玻璃或液体的折射光线方向。
作为基准值,在模拟色散(Chromatic Aberration)效果时为不同颜色通道提供偏移。
作为强度控制器,用于模拟热浪或空气扭曲效果。
在非真实感渲染中,作为艺术化参数控制“鱼眼”或“放大镜”效果的强度。
如何调整
在 JavaScript 中,首先需设置 `material.transmission > 0` 来激活效果。然后通过修改 `material.refractionRatio` 属性(一个数字)来调整。值为 1.0 时无扭曲;1.33 产生类似水的效果;1.52 产生类似玻璃的效果;更高的值则产生钻石般的剧烈扭曲。
代码示例
1// 使用 materialRefractionRatio 计算折射向量
2const refractedDirection = refract( incidentVector, normalVector, materialRefractionRatio );
3
4// 使用折射向量采样背景,得到扭曲后的颜色
5const refractedColor = texture( background, refractedDirection );