述和渲染地形有很多优点,最主要的是它能够很好地使用硬件加速,并且能够和其他多边形对象一起统一管理。因此本课题仅对基于这种多边形面片的场景渲染技术进行研究。
2.1基于多边形面片的3D渲染原理
2.1.1基于多边形面片的图形绘制流程
用多边形面片来建立物体的三维模型有容易表示、计算简单、容易绘制几个方面的好处,因此在游戏三维图形渲染中被广泛采用(通常是三角形面片)。从模型的顶点送入渲染管道到最后形成二维图像的过程如下图2.1所示:
2.1.2变换
渲染管道中大部分工作是把对象模型的顶点在一个坐标系中的表示转化为另一坐标系中的表示,一般需要经过模型变换和相机变换两个过程。
通常,几何模型被保存在自身的建模空间,即每个模型拥有单独的局部坐标系统。为了建立场景几何关系,模型将统一放置到世界坐标系中,从建模坐标系变换到世界坐标系叫模型变换。几何模型的最终成像是在摄像机坐标下,将场景物体从世界坐标系变换到摄像机坐标系叫相机变换。相机的外部参数决定了相机坐标系,因此场景在屏幕上的成像位置与形状和相机的外部参数有关。模型和相机变换采用4×4齐次矩阵表示,其形式如下:
比如平移变换可表示如下:
点(x,y,z)平移(tx,ty,tz)后的坐标为(x",y",z")。此外还有旋转、缩放变换,这三种基本的变换可以合成任意几何变换。
通常把模型变换和相机变换的矩阵复合成一个矩阵处理,便于提高效率。在所有的图形绘制库中,都提供了程序接口供应用程序设置模型和相机变换对应的矩阵。其中,模型变换由场景物体的平移和旋转、缩放变换组成,相机变换则通过设置相机的位置、相机方向和向上向量来决定。
2.1.3裁剪
相机的参数包括投影方式、近平面、远平面、视野和屏幕的长宽比率,它们决定了物体从相机坐标系投影变换到屏幕坐标系的位置。这些参数实际上定义了一个视域四棱锥,也叫做视锥体。
位于视锥体之外的场景部分不需要送入后续阶段处理。因此,对完全位于规一化的设备空间之外的几何元素,可简单地舍弃。而部分位于规一化的设备空间之外的几何元素则需要进行裁剪操作。由于裁剪的面就是立方体的6个表面,实现起来非常简便。应用程序也可以定义额外的平面对场景进行裁剪。视域裁剪通常由底层图形A