计算机图形学考试资料整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.选择题1
a)显存概念
i.帧缓存(俗称显存):存储屏幕上像素的颜色值。
ii.帧缓存中单元数目至少与显示器上像素的数目相同,单元与像素一一对应,各单元的数值决定了其对应像素的颜色。
iii.显示颜色的种类与帧缓存中每个单元的位数有关。
iv.帧缓存与分辨率的关系:
分辨率M*N、颜色个数K 与显存大小V 的关系
系
例:颜色为真彩色、分辩率是1024×1024的显示器,需要
1024×1024 ×log2224 /8 =3兆字节
b)图形学应该考虑的问题
i.如何在计算机中构造一个客观世界:几何建模(几何)
ii.如何将计算机中的虚拟世界展现出来:几何的视觉实现(绘制)
c)各种消隐算法的特点
i.图像空间消隐
●描述
for(图像中每一个像素) {
确定由投影点与像素连线穿过的距离观察点最近的物体;
用适当的颜色绘制该像素;
}
●特点:在屏幕坐标系中进行的,生成的图像一般受限于显示器的
分辨率
●算法复杂度为O(nN):场景中每一个物体要和屏幕中每一个像素
进行排序比较,n为物体个数,N为像素个数
●代表方法:z缓冲器算法,扫描线算法等
1.Z-Buffer算法
z缓冲器:存储的是对应像素的z值
假设在视点坐标系(oxyz)中,投影平面为z=0,视线方向沿(-z)轴
方向,投影为平行投影
深度值就是物体沿着视线(-z)方向、与视点的距离
离视点近的物体遮挡离视点远的物体:z值越大,离视点越近
算法思路:
(1) 帧缓冲器中的颜色置为背景颜色
(2)z缓冲器中的z值置成最小值(离视点最远)
(3) 以任意顺序扫描各多边形
1缘_枫Only防伪。
a) 对于多边形中的每一像素,计算其深度值z(x,y)
b) 比较z(x, y)与z缓冲器中已有的值zbuffer(x,y)如果z(x,
y) > zbuffer(x, y),那么计算该像素(x, y)的光亮值属性并写入
帧缓冲器更新z缓冲器zbuffer(x, y)=z(x, y)
优点:
●算法复杂度(O(nN)):对于给定的图像空间,N是固定的,
所以算法复杂度只会随着场景的复杂度线性地增加
●无须排序:场景中的物体是按任意顺序写入帧缓冲器和z缓
冲器的,无须对物体进行排序,从而节省了排序的时间
●适合于并行实现(硬件加速)
不足:
●z缓冲器需要占用大量的存储单元:一个大规模复杂场景中:
深度范围可能为106,一个像素需要24bit来存储其深度信
息。如果显示分辨率为1280×1024,那么深度缓冲器需要
4MB存储空间
●深度的采样与量化带来走样现象
●难以处理透明物体
解决存储问题:逐区域进行z缓冲器消隐
ii.景物空间消隐
●描述
for(世界坐标系中的每一个物体) {
确定未被遮挡的物体或者部分物体;
用恰当的颜色绘制出可见部分;
}
●特点:算法精度高,与显示器的分辨率无关,适合于精密的CAD
工程领域
●算法复杂度为O(n2):场景中每一个物体都要和场景中其他的物
体进行排序比较,n为物体个数
●代表方法:背面剔除、表优先级算法等
●理论上:如果n(物体数) O(n2)小于图像空间算法O(nN) ●实际应用中:通常会考虑画面的连贯性,所以图像空间算法的效 率有可能更高 1.背面剔除算法: 利用视线方向V和物体表面法向N之间的关系 ●N⋅V<0:不可见 ●N⋅V≥0:可见 作为消隐算法,背面剔除适用于凸多面体,不适用于凹多面体或 其它复杂物体 对于蓝色与绿色的面,简单的背面剔除不能实现完全消隐 适用于场景消隐的预处理:消除一些显然不可见表面,从而提高 其它消隐算法的效率 2.表面优先级算法(画家算法) a)三维物体的深度排序算法 原理:离视点近的物体可能遮挡离视点远的物体 在景物空间确定物体之间的可见性顺序(物体离视点远近), 由远及近地绘制出正确的图像结果——油画家算法 ●条件:场景中物体在z方向上没有相互重叠 ●二维半物体的深度排序算法只要简单地比较其z值即可 算法思路: 1.将场景中的多边形序列按其z坐标的最小值zmin (物体上 离视点最远的点)进行排序 2.当物体间的z值范围不重叠时:假设多边形P的zmin 在上述排序中最小,如果多边形P的z值范围与Q的z 值范围不重叠,即Pzmax< Qzmin,此时可以断定多边形 P的优先级最低(见下图) 3.当物体间的z值范围重叠时:判断多边形P是否遮挡场 景中多边形Q,需作如下5个判别步骤 1.多边形P和Q的x坐标范围是否不重叠 2.多边形P和Q的y坐标范围是否不重叠 3.从视点看去,多边形P是否完全位于Q的背面 4.从视点看去,多边形Q是否完全位于P的同一侧 4.P和Q交换顺序后,仍不能判断其优先级顺序,可以按 如下方法处理:将其中一个多边形沿另一个物体剖分 特点: ●三维物体的深度排序算法适合于固定视点的消隐 ●通过多边形的剖分,总是可以实现多边形物体在 三维空间中的深度排序 ●深度排序算法可以有效地实现透明效果 ●在视点变化的场合中(如飞行模拟),深度排序算法难以满 足实时性的要求 b)二叉空间剖分树算法(BSP)(见计算题) d)OpenGL库函数的分类 i.OpenGL核心库(GL) 这部分函数用于常规的、核心的图形处理,是OpenGL的核心部分, 包含300多个函数,函数名前缀一律是“gl”,核心库可以在所有的 OpenGL平台上运行 ii.OpenGL实用库(GLU) 这部分函数通过调用核心库的函数,为开发者提供相对简单的用法, 实现一些较为复杂的操作。如:坐标变换、纹理映射、绘制椭球、 茶壶等简单多边形。包含约50个函数,函数名前缀一律是“glu”,实 用库可以在所有的OpenGL平台上运行 iii.OpenGL辅助库(GLAUX) 这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物 体。包含约30个函数,函数名前缀一律是“aux”,OpenGL中的辅