background image

计算机 3D 效果:

将三维的物体进行几何描述并且转换为屏幕上的一幅图像,这就是渲染( Render),渲染会使用如下
的 3D 效果。
1.视角透视,一个三维的物体有很多的线索,将视角看不到的隐藏。隐藏表面消除( Hidden surface 
removal)。
2.颜色和着色,给物体的每个表面添加颜色属性。
3.光照和阴影,添加光照,添加影子。
4. 纹 理 贴 图 ( texture ) , 表 面 贴 一 幅 图 像 , 称 之 为 纹 理 , 纹 理 的 每 个 单 独 元 素 称 为 纹 理 单 元
(texel)。
5.雾,逐渐模糊远处的物体,添加层次感,远近感。
6.混合和透明(blending),颜色或者物体组合,可以用于多种目的。例如透明,反射等。
7.抗锯齿(antialiasing),对多边形边缘做平滑处理,看起来更真实。

经过上述 3D 效果处理后的图像看上去更加逼真,具有三维效果。

三维物体描述:

二维图形绘图时最常用的坐标是笛卡尔坐标系统,由 x,y 坐标构成。三维物体绘制在一个 3D 笛卡尔坐
标,在笛卡尔坐标系统上添加了深度,来描述三维空间。

三维物体都是由多边形组成,最简单的多边形就是三角形,并且 OpenGL 硬件处理三角形也是非常快
的。有些硬件也支持其他形状,四边形,或者五边形,或者其他的通用图形。其实所有的多边形都可以拆
分成三角形,用三角形来描述。

多边形由顶点构成,在三维空间中将一个三维物体的顶点连线,就可以看到三维物体的表面。

计算机的屏幕是平面的,那意味着我们要看到我们绘制的三维物体要显示在计算机的屏幕上,需要将

3D 转换成 2D。将一个 3D 坐标投影到一个 2D 表面,称之为投影。

在 OpenGL 中,主要有两种类型的投影。第一种为正投影(平行投影),首先指定一个正方形或者长方
形的可视区域,可以区域之外的物体不会绘制,并且实际相同大小的物体,在屏幕上具有相同的大小。
不论物体与屏幕的距离。

第二种投影为透视投影,这种投影的可视区域为一个斗型,或者说一个顶部削平的金字塔,(平截头
体),距离屏幕较远的物体在屏幕上显的较大,类似与手影游戏,与光源近的影子更大。