要实现简单阴影,只需使用alpha混合在投下阴影的物体下方绘制一个位图阴影即可。要实现这种效果,首先需要两样东西:阴影纹理和用作广告牌的多边形网格。(在3D游戏编程中,术语广告牌billboard指的是一个其上被贴上2D图象的多边形,该多边形通常与视平面或其他平面平行,广告牌技术用于在2D平面上绘制3D物体的2D投影,使其看起来很真实。)
为物体创造阴影的步骤如下:
(1)使用z缓存渲染场景中所有的物体。
(2)对于要为其创建阴影的每个物体,使用支持alpha混合和透明的纹理映射函数在物体正下方的地形上渲染广告牌。
进行两遍渲染的原因是,要对阴影与地形(或下面的几何体)进行alpha混合,缓存中必须有用于alpha混合的图象。另外,由于假设阴影在地面上,因此不但需要确定地面的位置,还需要确定在离地面多高的地方绘制阴影。