3D术语总动员(I)
引言:近年来随着计算机发展应用地不断延伸,电脑处理三维图形、图像的能力也变得越来越强大了。逼真的三维效果使电脑越来越多的进入到各个不同的领域。由此一些象纹理、像素、多边形这样的术语,也和大家越混越脸熟;但同时三维处理技术中许多新的理论和技术词汇也一定让各位伤透了脑筋。
1.像素和图形分辨率
像素是电脑图像中能被单独处理的最小基本单元。同时它还具有显示地址、色彩、亮度等等数据。一幅计算机图像通常由一个像素矩阵构成(象bit map格式)。像素单元的大小可以由1位到32位不等。这主要是根据要显示的图像色彩多少来决定的。只显示黑白两种色彩的位图每个像素可以只用1位来表示;而真彩显示图片像素会有24位;如果是存在Alpha通道的真彩图像,则一般需要32位来表示。显示分辨率是用屏幕中显示像素的多少来定义的。一个800X600分辨率的屏幕每条水平线有800个像素,而垂直方向则有600个之多,总和起来,整个屏幕也就有480000个像素。相对于1600X1200,用同样的计算方法,我们可以知道它会有1,920,000个像素。但请不要把这理解成1600X1200的分辨率需要的屏幕大小是800X600下的四倍。这样的想法是不正确的。其实它们显示的尺寸并没有变化,但细节表现却提高了四倍。
2.多边形
多边形是由许多线段首尾相连构成的封闭图形,其中每两条线段连接所构成的点被称之为顶点(vertices)。很早我们就知道,最简单的多边形是三角形,同时它还有个很好的特性。你可以在该三角形的外部加一个顶点,并且借助已存在三角形中两个适当的点,就可以顺利构成两个相邻又不相交的三角形。这时的两个三角形只需要四个顶点和五条边来表示。原因很简单,它们公用了一条边。许许多多的多边形搭配在一起就构成了各种各样的三维物体。这个过程会需要成千上万的多边形,数量越多则细节描写越清晰,看上去则越接近真实物体。但同时消耗的的内存和处理时间也会相应地增加。所以程序员不得不在三维物体的平滑和游戏的流畅上做出权衡。
3.纹理像素和纹理
当一个程序员已经设计出一个三维物体,他就需要用图形、色彩、特殊的程序处理来装饰它,我们把这些用于装饰三维物体表面的素材称之为纹理(texture)。纹理像素(又叫Texel)就是对存在于其中的像素的叫法。请你相信,纹理几乎可以表现任何东西,从水波纹到砖墙图案,它几乎是无所不能的。例如你可以简单地通过使用一个木头纹理来把一个立方体改造成逼真的木箱;也可以让纹理凹凸不平来模拟砖块铺成的路面。一旦你已经开始用纹理来渲染三维物体,你将开始注意到多边形边缘会有很多锯齿的现象发生,这主要是因为在两个多边形的交界边缘上像素渲染不当和两侧色彩差距的问题造成的。这里有很多过滤的技术来平滑图像,大家比较熟悉的有双线性bilinear、三线性trilinear、各向异性anisotropic过滤等等 因为硬件方面的限制,今天绝大多数的游戏使用的纹理尺寸都小于256X256的尺寸。但是在不远的将来我们可以很快的看到支持更大尺寸的硬件和软件。S3的纹理压缩技术(S3TC)给了我们6:1的压缩比,我们已经可以使用更大的纹理了。