在场景中使用雾不但可以提高真实感,特定的情况下还能优化性能。具体是指当物体离摄像机足够远时,雾就足够浓,此时只能看到雾而看不到物体,也就不必对物体着色进行详细计算,这样可以大大提高渲染效率。
雾有很多数学模型
线性模型:
f=max(min((end-dist)/(end-start),1.0),0.0)
- f为雾化因子,其取值范围为0.0~1.0(0表示雾很浓,只看见雾)
- dist为当前要绘制的片元离摄像机的距离。
- end表示一个特定的距离值,当片元据摄像机的距离超过end时,雾化因子为0
- start表示一个特定的距离值,当片元距摄像机的距离小于start时,雾化因子为1
非线性计算公式:
f=1.0-smoothstep(start,end,dist)