本文的实现
用Single Scattering实现的In Scattering作为天空,对地表的物体运用大气密度恒定的空中透视模型。
参考文献:
Rendering Parametrizable Planetary Atmospheres with Multiple Scattering in Real-Time[4]
Rendering Outdoor Light Scattering in Real Time[5]
参考项目:
SlightMad的Atmospheric Scattering for Unity 5[6]
Unity的Atmospheric Scattering in The Blacksmith[7]
SlightMad这一篇是完全全程用不均匀密度的Single Scattering计算的。他的完成度很高,并且提供RayMarching和预计算LUT两种方法,很适合学习。
Unity的这一篇则是典型的空中透视模型。并且它的参数设置比较偏向美术,初次学习看不太懂,但是效果非常不错。此外他还额外叠加了“指数高度雾”,用于弥补大气密度恒定带来的问题。
根据空中透视模型的公式:
Extinction项:
In Scattering项:
叠加结果: Sun