雾 胡红丽 2004-4-16 雾是什么? 它形状千变万化,行踪飘忽不定,时而给人带来缥缈如仙境般的感受,时而给人一种神 秘莫测的感觉。其实,雾只是漂浮在空气中,由成千上万的小水滴组成的可见聚合体罢了。 雾是这么常见的一种自然现象,相信大家都体会过。所以为了增加虚拟世界的真实感, 在现在的 3D 游戏中大量运用雾化效果来营造气氛,增强场景的纵深感和距离感。其实,在 游戏中运用雾效果的深层原因是为了掩盖硬件的不足。 在绘制每一帧场景的时候, 由于受到 目前硬件的限制, 只能绘制一定距离内的场景, 在这个距离之外即后裁剪面 (back clip plane) 之后的部分是空白的。为了弥补这个缺陷,很多游戏采用雾来掩盖这些没有画出的场景。 那么,在游戏中是怎么产生这些雾的呢? 最简单的是深度雾。它假设空间中雾无处不在,并且均匀分布。所以对于观察者而言, 他所看到的雾的浓度与他和目标物之间的距离是一个简单的线性关系。 距离越远雾越浓。 但 是距离的计算本身不是一件简单的事情, 它一般要进行平方根的计算, 这样的计算量对于游 戏这种需要实时反馈的应用显然是太大了, 所以需要进一步的简化。 我们可以假设观测者处 于一个无穷远的位置,这样,距离就可以用目标物体的 Z 值来表示。 得到了雾的浓度,接下来我们需要确定观察到的雾的颜色。 观察者为什么能看见雾呢?这是因为雾吸收一部分光线,同时又散射出自己本身的颜 色。