materialDispersion
materialDispersion
提供材质的色散(Dispersion)强度,一个浮点值,用于控制光线穿过透明介质时产生的彩虹色分离效果。
核心优势
将复杂的色散物理现象抽象为一个标准化的材质属性,并与 `material.dispersion` 无缝集成,极大地简化了创建钻石、水晶等高级光学材质的工作流。
常见用途
模拟钻石或水晶的“火彩”效果。
为厚玻璃或棱镜的折射增加微妙的真实感。
创建具有迷幻色彩的科幻或艺术化效果。
作为其他效果(如闪烁)的驱动因子。
如何调整
在 JavaScript 中修改 `material.dispersion` 属性(一个数字)。值为 0 时无效果。随着值增加,透明折射物体的边缘会呈现出越来越明显的彩虹色分离(色差)现象。
代码示例
1// 概念上,色散效果通过为不同颜色通道应用微小偏移的折射率(IOR)来实现
2const iorR = ior.sub( materialDispersion.mul( 0.05 ) );
3const iorB = ior.add( materialDispersion.mul( 0.05 ) );
4
5const finalColor = vec3(
6 refract( incident, normal, iorR ),
7 refract( incident, normal, ior ),
8 refract( incident, normal, iorB )
9);