体积的表现
上一节实现了初步的垂直高度雾效果(点击查看链接),在四周开发的情况下,表现不理想,缺少体积的表现。如下图,目前(上一篇实现方案)P点显示的Fog值是根据P'点的高度h计算的,而实际显示的Fog值是与光线的传递长度L有关的,求出L值就可以了,这里主要是使用微分近似的方法,从P点向P'点进行梯度逼近。学习率(逼近值)使用的是0.01m。

核心代码如下:
//使用逼近的方法,求出光线的传递的距离
int ii = 0;
half4 heightColor = tex2Dlod(_HeightTexture, ray.xyww);
float len = 0;