GLSL 效果示例
距离雾:让远处的物体逐渐融入背景
近处轮廓保持清楚,远处同色物体逐渐趋近雾色。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
近处轮廓保持清楚,远处同色物体逐渐趋近雾色。
实现原理
命中距离驱动指数透射率,远处物体颜色逐渐混入雾色,而不是全屏覆盖一层透明色。
找到控制效果的代码
p.z=mod(p.z+1.,2.)-1.;return min(length(p-vec3(.4,0,0))-.3,p.y+.55);
动手修改
暂停时间后,把密度表达式 .1+u_parameter*.7 设为 .8。远处重复的球和地面会比近处表面更明显地融入 vec3(.08,.13,.23) 的雾色。
调试与成本
射线循环最多走 80 步或距离 12,只有命中表面后才叠雾。把 1.-exp(-t*(.1+u_parameter*.7)) 换成 0.5,即可看到统一强度的叠色,它会失去由近到远的深度线索。