雾化

雾化原理

雾化效果基于点到相机的距离将场景产生的颜色与雾的颜色进行混合而得到。距离相机近,雾化效果越不明显,距离相机越远雾化效果越强。由此有雾化混合公式:
Color = f * SceneColor + (1 - f) * FogClor,其中Color是混合后的结果颜色,SceneColor是没有雾化时场景的最初颜色,FogColor是雾的颜色,f是混合因子。

雾化混合因子的计算

雾化混合因子在不同的雾化模式中有不同的计算方式:
- 线性雾化:

f = (end - distance)/(end - start)

其中distance是点到相机的距离,很多应用了为了简化计算直接将点在相机空间中的z看成是到相机的距离。

  • 指数雾化:
f = 1 / ( exp(density * distance) )

其中density表示雾的浓度。 在unity中计算公式是:exp2( ln(2) / (distance * density) )

  • 二次指数雾化:
f = 1 / ( exp(density*density * distance * distance) )

在unity中计算公式是:exp2( ln(2) / (distance * distance * density * density) )

顶点雾化和像素雾化

雾化可以在顶点阶段,也可以在像素阶段进行。
顶点雾化是逐顶点计算的,并且在顶点阶段就根据点到相机的距离计算出雾化因子,在像素阶段进行混合。
像素雾化是逐像素计算的,在顶点阶段计算出点到相机的距离,在像素阶段计算出雾化因子并进行混合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值