OpenGL雾化效果实现-每像素雾化
雾化实现原理 雾背后的基本思想是,物体离相机越远,它应该被雾覆盖得越多,因此就越不可见。 因为我们现在拥有现代 GPU,所以我们可以检查场景的每个片段有多远并计算雾。 我们需要得到一个叫做雾因子的东西,它是一个从 0.0 到 1.0 的数字,简单地说,应该对那个片段应用多少雾。 如果为零,则没有雾,如果为 1.0,则对象完全被雾覆盖。 介于两者之间的任何东西都会使物体出现/迷失在迷雾中。 雾需要三个控制变量: 雾强度因子的计算: 关于clamp函数: clamp翻译为夹具,就叫夹具函数吧,这个函数是什么意思呢?看看解释的意思是:获取x和minVal之间较大的那个值,然后再拿较大的那个值和最后那个最大的值进行比较然后获取较小的那个,意思就明白了,clamp实际上是获得三个参数中大小处在中间的那个值。函数有个说明:如果minVal > minMax的话,函数返回的结果是未定的。也就是说x的值大小没有限制,但是minval的值必须比maxVal小。 像素颜色计算: 关于mix()函数: mix(x,y,a) a控制混合结果 return x(1-a) +y*a 返回 线性混合的值。 s…