荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: bily (x+y=z), 信区: Hardware
标  题: 3d图形处理的原理(下)
发信站: BBS 荔园晨风站 (Mon Dec 20 12:53:36 1999), 转信


光栅处理的最后一道工序是“平滑处理”。在这道工序中,所有斑驳或不自
                    然的外观都会被消除。可采用两种类型的处理技术。第一种是“
边缘修
                    补”,它可以生成更光滑的线条。第二种是“纹理修补”,它能
使纹理贴图
                    表面显得更光滑。
                      由于计算机的显示器并不具备现实世界的拟真度,所以图像的
许多细节都
                    会丢失。若想达到与现实世界完全相同的效果,那么每个像素要
小到跟原子
                    一样!目前这显然是不可能的。屏幕显示的精度取决于它的分辨
率(水平行
                    和垂直列的像素数量,以及颜色深度)。由于像素数量有限,造
成屏幕上显
                    示的线条粗糙,布满锯齿状的毛刺。本应光滑的线条映射成为一
个像素网
                    格,这就叫作“边缘失真”(Edge Aliasing)。而消除这种失真
锯齿的过程
                    就叫作“边缘抗失真”或“边缘修补”(Edge Anti-aliasing)

                      若在一个像素网格里强行显示一条直线(见下图),需要将那
条线穿过的
                    像素点都找出来。然后,将它接触到的所有像素都变成一种颜色
。最终的线
                    条看起来会非常粗糙,上面有一些锯齿。为消除这些锯齿,我们
可以根据每
                    个像素的中心距线条有多远,为每个受到影响的像素都赋予选定
颜色强度的
                    一个百分比。最接近中心的具有最高的颜色强度,最远的则具有最
弱的颜色强
                    度。这样处理以后,整个线条都被轻微“柔化”了。若从一定的
距离观看,
                    线条和它周围颜色间的过渡显得更加平滑。我们也用类似的方法
调匀纹理贴
                    图。
                      第二种类型的平滑技术叫作“纹理修补”。由于多边形发生了
旋转及缩
                    放,像素并非一定能与构成一张纹理贴图的元素(质素)完美地
配合。为获
                    得逼真的3D图形显示,非常重要的一项工作就是选择正确的质素
来表示一个
                    像素。有几种方法可做到这一点。其中最简单、但经常都差强人
意的方法是
                    选用最接近的质素值。按照刚才所说的选择办法,当像素和质素
比值非常小
                    时,一个像素可以从很多个质素中挑选出来(而这些质素差异是巨
大的),所
                    以会出现非常剧烈的质素跳跃,表现出来就是图像非常闪烁,3D
物件移动距
                    离很大时就会出现这种情况。当像素和质素比值非常大时,就必
须从等量的
                    质素中选出很多像素,图形就会变得非常斑驳,3D物件移动距离
小时会出现
                    这种情况。
                      双线过滤(Bilinear Filtering)、MIP贴图(MIP Mapping)
、双线MIP贴
                    图(Bilinear MIP Mapping)以及三线MIP贴图(Trilinear MIP
 Mapping)
                    都是为解决这些问题而设计的。双线过滤和MIP贴图是两种基本技
术,而双线
                    MIP贴图和三线MIP贴图则是两种基本技术的混合形式。
                    其中,双线过滤可使质素间的过渡变得更为平滑。一个像素位置
会映射到一
                    张纹理贴图上(参见图16)。随后,它的颜色由最接近的四个像
素的加权平
                    均值决定。像素距某个质素中心越近,那个质素在最后平均值中
获得的加权
                    分数越高。这是一种相当有效的方法,但若距离较远,仍会出现
一些色斑或
                    闪烁现象。
                      MIP贴图是另一类的纹理调匀技术。MIP是拉丁语“Multum in
Parvo”的缩
                    写,即“少中见多”。以同样的纹理为基础,MIP贴图要求事先创
建好包含了
                    不同细节的几张纹理贴图。每张图都代表从不同距离观看时的纹
理显示。在
                    屏幕上显示时,要根据物件的z坐标选出最恰当的贴图。随后,以
“最接近”
                    为标准,从这张图中选出要显示的像素颜色。
                      第三种类型的纹理调匀技术叫作“双线MIP贴图”。正如早先指
出的那样,
                    双线过滤与MIP贴图存在着一种混合形式。在这儿,我们先选出一
张合适的贴
                    图(MIP贴图),然后根据最接近四个质素的加权平均值,从这张
图中挑选出
                    像素颜色。这种技术的效率很高,一般都能消除所有斑驳的色块
以及闪烁。
                      最后一种调匀方法叫作“三线MIP贴图”,它是最有效和最准确
的。首先,
                    假设一个物件位于两张贴图的范围之间,选择这两张贴图(两次
MIP贴图)。
                    然后,根据这两张贴图计算出两个像素值,每个值都以单张贴图
四个最接近
                    的质素为基础(两次双线过滤),然后,计算出两张贴图的权重,
离物件近的
                    权重较大,远的权重较小。这个过程精确地确立了物件在z轴上的
最终坐标位
                    置。
                    流水线工作量的分配
                      每个计算机用户的目标都是尽可能发挥出机器的潜力,这正是
进行3D图形
                    处理时经常需要分配工作量的原因。目前3D图形处理领域非常不
稳定,技术
                    经常在变化,新的记录不断被打破。因此,每道工序的工作量也
发生着戏剧
                    性的变化。尽管几何处理是计算密集的一个阶段,但在整条图形
处理流水线
                    中,对带宽最敏感的还是光栅处理阶段。所以,为充分发挥每个
子系统的能
                    力,可采用几种技术分配3D图形处理的工作量。目前最新的趋势
是将几何处
                    理分配给CPU进行,而光栅处理则分配给图形加速器。
                      CPU可以很好地完成几何处理。这一阶段进行的操作要求使用浮
点计算。其
                    中大多数都属于矩阵或矢量运算。微处理器专门对此进行了设计
。软件对主
                    机处理器提出了很高的要求。由于设置/光栅处理与硬件加速器之
间是一条畅
                    通的链路,所以能增强硬件光栅加速器的能力。
                      在光栅处理阶段,所有数据都是建立在像素基础上的。随着显
示分辨率的
                    提高,这个阶段越来越消耗系统资源。单个处理器或许能完成全
部的几何及
                    光栅运算,但通常达不到每秒30帧的理想频率(为播放平滑的动
画的起码标
                    准)。由于屏幕必须持续刷新,所以会发生大量读写操作,这些
读写操作要
                    求占用大量带宽。(“带宽”描述了数据在单位时间内从一处移至
另一处的数
                    量。)图形控制器与本地(卡上)内存之间的带宽可高达800MB/s

                      此外,许多特殊效果或技术可在图形加速器里实现。若这些技
术不能由加
                    速器实现,则通常可通过软件模拟进行,但速度会慢很多。采用
硬件光栅加
                    速后,由于减轻了对内存敏感的光栅运算的沉重负担,所以能极
大地提高性
                    能。目前由图形芯片提供的功能包括纹理贴图、缩放、z缓冲、双
线和三线过
                    滤、MIP贴图以及色层混合透明。所有这些功能都严重依赖带宽,
所以会影响
                    输出速度。若以硬件形式实现,则可生成品质更高的图像。此外
,正如早先
                    指出的那样,若同样的技术用软件实现,速度会严重下降。
                    注意:几何处理阶段的最后一道工序--“设置”--可从CPU移至图
形加速器进
                    行。这样做的一个最主要的目的就是释放宝贵的处理器带宽,腾
出地方完成
                    后续帧的计算。为获得高品质的3D图形输出,必须依赖CPU、图形
加速器以及
                    系统内存。例如,几何处理阶段最好在CPU中进行(每秒能产生更
多的多边
                    形),如PentiumⅡ芯片。此外,通过使用纹理贴图,可表现出更
丰富的细
                    节。纹理贴图会消耗大量内存,同时要求非常快的访问速度。有
两个方案可
                    解决这个问题。一个是增加更多的卡上内存,另一个是提高系统
内存与图形
                    控制器间的通信速度。卡上内存的增加很快就会达到极限,所以
最合理、最
                    有效的方案还是在图形控制器与系统内存间建立一个快速通道。
PCI总线是目
                    前最常用的一种方案。但PCI的带宽(约80MB/s)不能满足高品质
图形的要求
                    (250~350MB/s)。为解决这个问题,Intel在系统内存和图形卡
之间设计了
                    一条快速通道,名为“加速图形端口”或者AGP。
                    3D图形的应用
                      对各种工程上的设计方案,一般都要先经历大量配置、模拟以
及测试,以
                    便消除潜在的问题。
                      为了使原始设计能适应用户的特定需求,3D计算机图形无疑是
最方便和最
                    灵活的一种检测手段。由于原始模型易于发生变化,所以对于需
要连续修改
                    的应用,3D计算机图形是一种出色的解决方案。
                      目前的多媒体PC大都配备3D相关的图形产品。今天,整个游戏
市场的10%
                    被PC游戏占据着。而且在不远的将来,这一比例还会持续攀升。
尽管视频游
                    戏的很大一部分属于3D图形应用,但多媒体PC的用途并不限于娱
乐领域。它
                    最终会成为多用途的家庭游戏、资讯、娱乐中心。除了在家庭使
用,3D图形
                    在其他领域也能够大显身手。下面仅列出了3D图形计算机应用的
几个例子。
                      * 游戏 视频游戏自70年代就已深入人心。然而,目前的3D视频
游戏业正逐
                    渐向个人计算机市场渗透,已成为一个新的经济增长点。今天,
提供互动式
                    3D游戏的PC已具有相当快的速度,可生成高品质的图形显示。3D
视频游戏的
                    发展趋势是生成更平滑的电影效果,更清晰的3D物件,以及基于
纹理修补技
                    术的光滑3D物件(更少的毛边和锯齿)。Quake(雷神之锤)、J
edi Knight
                    (杰迪骑士)、Descent Ⅱ(天旋地转Ⅱ)、Virtual Fighter(
虚拟战
                    机)、Mech Warrior Ⅱ(机甲战士Ⅱ)以及Super EF2000便是当
今流行的3D
                    游戏。
                      * 医疗 无论医学院的学生、科学家还是研究员,都可从实验室
的角度运用
                    3D计算机图形。优秀的3D图形软件能帮助拟真和计算复杂的科学
数据。例
                    如,Whole Frog Project使学生能用虚拟的解剖工具探索一只青
蛙的身体结
                    构。3D计算机图形在医疗领域的使用有助于简化数据密集型的实
验室研究。
                      * 建筑 建筑领域正在非常活跃地转向计算机图形应用,以便简
化设计过
                    程。由2D改为3D图形模拟后,能从中得益的包括商业建筑、电厂
、园林以及
                    电信网络。从城市建设的角度出发,需要3D图形的包括高速公路
、铁路、桥
                    梁以及水坝等等。
                      * 图形和动画 图形和计算机动画涉及的领域包括视频技术、广
告宣传、卡
                    通制作以及运动图像。从“侏罗纪公园”和“玩具总动员”这两
部电影,大
                    家可领略到3D计算机图形和动画的风采。
                      所有这些仅是最终用户能从3D计算机图形中获益的少数几个领
域。随着软
                    件与硬件的进步,用PC实现的信息及娱乐系统会变得越来越出色
。作为用
                    户,我们完全有信心期待高性能3D图形方案的问世。
                    附录一
                    加速图形端口(AGP)
                      对于桌面PC的高性能3D图形应用,最大的一个限制就是靠近图
形控制器的
                    帧缓冲内存的容量。3D图形要求为显示列表、纹理存储、z缓冲、
色层混合透
                    明提供空间,以及一个双缓冲区。为生成高性能的3D图形应用,
要求图形控
                    制器提供大量的本地帧缓冲内存,这会使显卡的成本增加。而倘
若换用系统
                    内存,则必须解决带宽限制的问题。
                      为装配出能生成专业级3D图形的高性能多媒体PC,“加速图形
端口”
                    (AGP)是一种非常廉价的方案。这种结构增大了图形控制器能够
访问的带
                    宽,并为图形控制器提供了必要的性能,可在系统内存里直接进
行纹理处
                    理。采用AGP后,不仅纹理可放到系统内存,其他数据(比如z缓
冲)亦可放
                    入其中。
                      图形控制器不仅使用了位于本地(卡上)的帧缓冲内存,也用
部分系统内
                    存保存图形数据。AGP会为图形控制器调用2MB的帧缓冲内存,以
便进行3D图
                    形处理。
                    附录二
                    术语对照表
                      加速图形端口(AGP):一种可自由扩展的图形总线结构,能增大
图形控制器的
                    可用带宽,并为图形控制器提供必要的性能,以便在系统内存里
直接进行纹
                    理处理。这是一种新的接口标准,在物理结构上与PCI存在显著区
别,专为图
                    形控制器设计。它同时使用了卡上帧缓冲内存与系统内存。
                      失真(Aliasing):真实图像映射成光栅网格后产生的图形质量下
降现象。
                      抗失真或边缘修补(Anti-aliasing):用于消除“锯齿”的一种
技术。它通过柔
                    化线条,产生更光滑的图形显示。
                      背墙剔除 (Back Face Culling):丢弃不必要的多边形,提高
绘图速度。
                      双线过滤/插补(Bilinear Filtering/Interpolation):决定
像素颜色时,不是简
                    单地将其与最接近的质素匹配,而是通过计算最接近的四个质素
的加权平均
                    值决定。
                      双线MIP贴图(Bilinear MIP Mapping):双线过滤和MIP贴图的一
种组合形式。
                    首先保存好一张纹理贴图的几个副本。接着,选中最接近选择的
贴图。最
                    后,求选中贴图最接近的四个质素的加权平均值。
                      位图(Bitmap):一种2D图形,用于表示不含多边形的物件。它通
常是一张大
                    的纹理贴图。
                      剪切(Clipping):将位于定义观察区域之外的部分或全部物件删
除的过程。
                      深度线索(Depth Cueing):根据离观察者的距离,改变物件的颜
色强度和亮
                    度。例如,即使一个闪亮、鲜艳的红球,如果越来越远离观察者
,也会变得
                    越来越阴暗。
                      双缓冲处理(Double Buffering):同时显示和准备图像数据的一
个过程。一个
                    缓冲区提供屏幕的显示数据,另一个则准备下一帧的显示数据。

                      雾化(Fogging):变化所见景物可视度的一个过程,取决于景物
离观察者的距
                    离。
                    帧缓冲(Frame Buffer):包含了所有帧的图形数据的显示内存。
                      高洛德上色(Gouraud Shading):一种光影渲染技术。它将照明
模型应用于一
                    个多边形的每个顶点,然后在整个表面铺开。结果便是一个平滑
渐变的表
                    面。
                      图形函数库(Graphics Library):图形处理函数与子例程的一个
集合,程序员
                    可用它作为接口,方便地调用低级任务。
                      锯齿(Jaggies):图像的锯齿效果,由映射失真造成。
                    照明模型(Lighting Model):一种图形处理公式,用于模拟灯光照
射到物件表
                    面的效果。
                      映射(Mapping):将一种坐标体系转换成另一种。
                    MIP贴图(MIP Mapping):为消除计算机图形的斑驳和闪烁,保存了
一张纹理贴
                    图的几个副本。每张贴图都代表离观察者不同距离时显示的纹理

                      荧光体(Phosphor):一种化学物质,被电子束击中时,可根据不
同特性发出不
                    同颜色的光。
                      三元荧(Phosphor triad):构成一个像素的三个荧光体,分别能
发出红光、绿
                    光或蓝光。
                      像素(Pixel):Picture Element(图形元素)的简称,屏幕颜色
与强度的一
                    个单位。像素其实是能够定址和分配颜色值的最小单位。
                      光栅(Raster):由像素构成的一个矩形网格。要在光栅上显示的
数据保存于
                    帧缓存内。
                      光栅处理(Rasterization):正确填充多边形,绘制物件表面的
一种过程。
                      缩放(Scaling):均匀缩放(Uniform Scaling)——保持比例不
变,使整个
                    物件增大或缩小。不均匀缩放(Non-uniform Scaling)——增大
或缩小部分
                    物件的尺寸。哈哈镜中的镜像便是不均匀缩放一个很好的例子。

                      上色或光影渲染(Shading):通过对3D物件应用一个照明模型,
从而生成逼真
                    的图形的一种技术。这要求为物件的各个像素应用适当的颜色。

                      设置(Setup):3D图形处理的一道工序,要求根据用户的观察角
度改变多边
                    形的形状。
                      镶嵌或嵌入(Tessellation):将用坐标(如x,y,z)定义的一
个物件重新定
                    义成多边形的过程(采用顶点与边的形式)。
                      质素(Texel):“纹理元素”(Texture Elements)的简称,代
表纹理贴图中
                    的一个彩色点。质素之于纹理贴图,就如像素之于显示帧。
                      纹理修补(Texture Anti-aliasing):决定像素颜色时,不是简
单地将其与最接近
                    的质素相配,而是通过一个过滤过程(参见双线过滤),一个MI
P贴图过程
                    (参见MIP贴图),或两者的一种组合形式(参见双线纹理贴图)
,从而决定
                    最终的像素颜色。
                      纹理贴图(Texture Mapping):通常把它想象成3D物件的壁纸,
亦即将一张2D
                    图纸“糊”到一个3D表面。如果想产生特殊的纹理效果,比如木
质或石质表
                    面,就需要用到这一技术。
                      z缓存(Z-buffer):包含显示图形深度坐标(z座标)的一个缓冲区


--
※ 修改:·bily 於 Dec 20 13:02:02 修改本文·[FROM: 192.168.28.220]
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.28.220]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店