Shader之基础雾效 U3D-PostProcessing

本文介绍了雾在真实场景中的作用,以及在Unity3D中实现基础雾效的理论和数学运算。通过理解线性混合、递归应用雾的原理,结合Unity的PostProcessing,详细阐述了如何设置雾的颜色、密度和距离,以增强场景的真实感。
摘要由CSDN通过智能技术生成

在水汽充足、微风及大气稳定的情况下,相对湿度达到100%时,空气中的水汽便会凝结成细微的水滴悬浮于空中,使地面水平的能见度下降,这种天气现象称为雾(Fog)。

雾的渲染增加了真实性。在普通的场景中,无论物体有多远,它都会以清晰的形式渲染出来。但是在现实场景中,越远的物体越模糊,而且在雾霾天气下十分明显。因此,雾的效果变得额外重要。

这篇文章主要实现的是最基础的雾效。

理论部分

当空气中的粒子到达一定数量后,雾会变得额外明显。这是因为光线A在射到人眼的途中被粒子所吸收并散射出去了。其他方向上的光也有一定几率聚合并重新定向到光线A上。
在这里插入图片描述
当光被水蒸气散射的时候,光的颜色会趋于灰白色。当被其他污染物散射后,光的颜色可能会变成黑色或者其他颜色。

雾的属性

  1. 雾的颜色(fog color):到达人眼的散射光的聚合的颜色。
  2. 雾的密度(fog density):雾的密度越大,雾看上去越浓。
  3. 雾的距离(fog distance):雾的距离越大,物体看上去越模糊。

在我们基础雾运算的时候,我们假设雾的颜色、雾的密度不变。

雾的数学运算

C l e a v e = C e n t e r − C r e d u c t i o n + C i n c r e a s e C_{leave}=C_{enter}-C_{reduction}+C_{increase} Cleave=CenterCreduction+Cincrease
C l e a v e C_{leave} Cleave是沿着一条光线离开一个单位线段的光的颜色亮度。
C e n t e r C_{enter} Center是沿着一条光线进入一个单位线段的光的颜色亮度。
C r e d u c t i o n C_{reduction} Creduction是沿着单位线段所有被吸收或散射的颜色亮度。
C i n c r e a s e C_{increase} Cincrease是沿着光线方向单位线段上被雾重新定向的额外的光的颜色亮度。
其中:

0 ≤ C r e d u c t i o n ≤ C e n t e r 0\le C_{reduction}\le C_{enter}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值