materialAttenuationDistance
materialAttenuationDistance
提供一个浮点值,用于定义光线在有色透明材质中穿行多远后,颜色会被完全吸收,它直接控制了透射颜色的“浓度”。
核心优势
将抽象的物理“吸收系数”转换为直观的“距离”参数,并与 `attenuationColor` 解耦,让开发者能以符合逻辑的方式独立控制颜色和浓度。
常见用途
调节液体(如果汁、咖啡)的浓度。
区分不同厚度或类型的彩色玻璃。
模拟宝石的净度和颜色饱和度。
动态改变能量护盾等科幻效果的能量集中程度。
如何调整
在 JavaScript 中修改 `material.attenuationDistance` 属性(一个数字)。该值越小,材质颜色越深、越“浓”;该值越大,颜色越浅、越“稀薄”。设置为 `Infinity` 则完全不衰减。
代码示例
1// 概念上,该距离用于比尔-朗伯定律计算透射光
2const transmittedLight = light.mul( exp( log( materialAttenuationColor ).mul( -pathLength.div( materialAttenuationDistance ) ) ) );