materialAttenuationColor
materialAttenuationColor
提供有色透明材质(如玻璃、液体)的体积吸收颜色,它决定了光线穿过物体后被染成的颜色。
核心优势
将复杂的比尔-朗伯物理定律(Beer-Lambert Law)封装成直观的颜色和距离参数,并与 `transmission` 无缝集成,极大地简化了物理精确的有色透明材质的创建。
常见用途
模拟彩色玻璃制品,如葡萄酒瓶或花窗。
渲染有色液体,如果汁、药水或威士忌。
表现玉石、翡翠或树脂等半透明固体的温润质感。
创建物理上可信的彩色宝石。
如何调整
首先需设置 `material.transmission > 0` 来激活效果。然后通过 `material.attenuationColor` 设置吸收的颜色。最关键的是调整 `material.attenuationDistance`:值越大,颜色越淡(浓度低);值越小,颜色越深(浓度高)。
代码示例
1// 概念上,该颜色用于比尔-朗伯定律计算透射光
2const transmittedLight = light.mul( exp( log( materialAttenuationColor ).mul( -attenuationDistance ) ) );