文档库 最新最全的文档下载
当前位置:文档库 › 常用的消隐算法及总结

常用的消隐算法及总结

常用的消隐算法及总结

数学092邹继瑶 090064

摘要:用计算机生成三维物体的真实图形是计算机图形学研究的重要内容。真实图形在仿真模拟、几何造型、广告影视、指挥控制和科学计算的可视化等许多领域都有广泛应用。经过消隐得到的投影图称为物体的真实图形。较常用的消隐算法有画家算法、Z-Buffer算法及其它一些改进算法。消隐算法从算法基本思想、算法描述和算法步骤等方面对画家算法、Z-Buffer算法和其它改进算法进行了分析,并得出了它们相关的特点。

关键词:计算机图形学消隐景物空间消隐图像空间消隐算法

引言:近年来,产生真实的虚拟环境是计算机图形学孜孜以求的目标。在虚拟对象或场景的创建中要用到许多综合处理过程,每一种都非常令人感兴趣也非常重要。计算机辅助设计、科学可视化、模拟训练、医疗成像、娱乐、广告等等,所有的这些,都要依赖于当今最前沿的计算机图形技术。伴随着计算机硬件、软件的飞速发展,计算机图形学技术也得到了质的飞跃。特别是面向对象技术和多媒体技术取得的成功,使得图形学成为计算机软件业中一个重要的分支。而程序设计方法、数据库系统和人工智能等新技术渗入到计算机图形学领域,又为计算机图形学提供了更加宽阔的发展空间和强劲动力。计算机图形学是研究通过计算机将数据转换成图形,并在专用显示设备上显示的原理、方法和技术的学科。主要介绍了计算机图形系统的基本知识,图形生成与显示的算法,图形的表示与图形的数据结构,图形的几何变换与投影变换,图形的裁剪技术,图形消隐处理,真实感图形的生成等内容。面消隐作为图形学中一个分支是本文的一个重要的研究内容。

一.消隐的基本概念

由于屏幕上的一些图元被另一些图元挡住所造成的。例如,当需要描绘一个由多边形面组成的三维物体时,那么它的一部分必然要被挡住,要在屏幕上显示的必须是可见的东西。打个比方,对于一个立方体,无论从哪个方向进行透视处理,最多只能看到其中的三个面。这样,就要想出一种方法来决定哪些面是所能看到的。

如果使用从屏幕到世界的视处理方法,那么很自然的就能保证只有图元上正确的部分才显示在屏幕上。在这种视处理中,可见性在屏幕的每一个像素上进行判断。从人眼发出一条射线,穿过一个给定的像素,那么首先与这条射线相交的表面在这一个像素上就是可见的。从这个表面反射的光线能够进入我们的眼睛。

用计算机生成三维物体的真实图形,是计算机图形学研究的重要内容。真实图形在仿真模拟、几何造型、广告影视、指挥控制和科学计算的可视化。等许多领域都有广泛应用。在用显示设备描述物体的图形时,必须把三维信息经过某种投影变换,在二维的显示表面上绘制出来。由于投影变换失去了深度信息,往往导致图形的二义性。要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,或简称为消隐。经过消隐得到的投影图称为物体的真实图形。

消隐算法是把线框图变成实体图必要的算法。通过看相关的报道知道,地面勘测卫星,气象卫星等要不断的向地面的工作站发送图片资料来帮助技术人员进行研究。而那个量是非常庞大的,因而接收到图像时往往是已经过压缩和消隐后得到的图片。由于最普通的图元就是多边形,所以讨论的许多技术都是只针对多边形模型的。由此将重点讨论用于多边形地形、体素模型的一些技术,为了能够更深入的了解消隐有关的基本知识,做了如下的一些介绍和

研究。

二.常用的消隐算法

消隐算法按其实现方式可分为图像空间消隐算法和景物空间消隐算法两大类。图像空间(屏幕坐标系)消隐算法以屏幕像素为采样单位,确定投影于每一像素的可见景物表面区域,并将其颜色作为该像素的显示颜色。景物空间消隐算法直接在景物空间(观察坐标系)中确定视点不可见的表面区域,并将它们表达成同原表面一致的数据结构。图像空间消隐算法有深度缓存器算法、A缓存器算法、区间扫描线算法等;景物空间消隐算法则包含BSP算法、多边形区域排序算法等;介于二者之间的有深度排序算法、区域细分算法、光线投射算法等。(1)深度缓存器算法

深度缓存器算法最早由Catmull提出,是一种典型的,也是最简单的图像空间面消隐算法,但其所需的存储容量较大,不仅要有帧缓存器来存放每个像素的颜色值,还需要有深度缓存器来存放画面上每一像素对应的可见表面采样点的深度值。由于通常选择z轴的负向为观察方向,因此算法沿着观察系统的z轴来计算各景物距离观察平面的深度,故该算法也称为Z-buffer算法。

Z-buffer算法的原理是:先将待处理的景物表面上的采样点变换到图像空间(屏幕坐标系),计算其深度值,并根据采样点在屏幕上的投影位置,将其深度值与已存贮在Z缓存器中相应像素处的原可见点的深度值进行比较。如果新的采样点的深度(z值)大于原可见点的深度,表明新的采样点遮住了原可见点,则用该采样点处的颜色值更新帧缓存器中相应像素的颜色值,同时用其深度值更新Z缓存器中的深度值;否则,不做更改。

深度缓存器算法最大的优点是算法原理简单,不过算法的复杂度为O(N),N为物体表面采样点的数目。另一优点是便于硬件实现。现在许多中高档的图形工作站上都配置有硬件实现的Z-buffer算法,以便于图形的快速生成和实时显示。

深度缓存器算法的缺点是占用太多的存储单元,假定屏幕分辨率为1024×768,则需要2×1024×768个存储单元,即使每一存储单元只占一个字节,也需要超过100万个字节。不过,若采用扫描线Z-buffer算法时,可以每次只对一条扫描线进行处理,这样深度缓存器所需的存储量仅为1×屏幕水平显示分辨率×深度存储位数,当然需要增加边表和多边形表的存储量。

深度缓存器算法的其它缺点还有它在实现反走样、透明和半透明等效果方面的困难。同时,在处理透明或半透明效果时,深度缓存器算法在每个像素点处只能找到一个可见面,即它无法处理多个多边形的累计颜色值。

(2)区间扫描线算法

每一条扫描线被物体中多边形的边界在屏幕的投影分割成若干相互邻接的子区间,每一子区间上只有一个可见面,如图9-3。因此,只要在每一个子区间内任一点处,在投影于该处的各多边形中找出在该处深度(z值)最大的多边形(最近的多边形),则这一多边形为该扫描线子区间内的唯一可见面,可按这一多边形的光照属性和几何位置计算确定子区间内各像素的显示颜色。这就是所谓的区间扫描线算法。区间扫描线算法也是一种图像空间消隐算法。

区间扫描线算法原理

算法首先为各多边形建立一张边表和一张多边形表。边表需包含的内容有:进行消隐的场景中所有线段的端点坐标、线段斜率的倒数、指向多边形表中对应多边形的指针。多边形表需包含的内容有:各多边形的平面方程系数、各多边形的颜色值、指向边表的指针。在消隐算法执行的过程中,从边表和多边形表中提取信息,构造一张有效边表。有效边表中包含与当前扫描线相交的边,按x的升序进行排列。排列后这些边将扫描线分成一个个的子区间[xi, xi+1],如图9-2,可将扫描线上的子区间分为三种类型:

图扫描线子区间

(1)子区间为空,如图中的子区间1和5。

(2)子区间中只包含一个多边形,如图(a)中的2和4,图(b) 中的2和4,图(c) 中的4。

(3)子区间中包含多个多边形,如图(a)中的3,图(b) 中的3,图(c)中的2和3。

若这些多边形在子区间内不相互贯穿,如图(a)中的3,则仅需计算这些多边形在子区间任一端点处的深度,深度(z值)大的平面为可见面。若两多边形交于子区间一端点但不贯穿,如图(b) 中的3,则只要计算它们在区间另一端点处的深度,深度大者为可见面。为了使算法能处理互相贯穿的多边形,如图(c),扫描线上的分割点不仅应包含各多边形的边与扫描线的交点,而且应包含这些贯穿边界与扫描线的交点,如图(c)中增加了一个分割点,从而形成了子区间2和3,否则算法不能处理多边形相互贯穿的情形。当然还有另外一种难以处理的情形就是循环遮挡(实际上贯穿也可看作循环遮挡的一种),若存在这种情况,则需将多边形进行划分以消除循环遮挡。在形成了子区间后,只要取其投影覆盖该子区间的各多边形,计算它们在区间端点处采样点的z值(深度),深度最大的平面为可见面。于是,需要在有效边表的每个分割点对应的数据结点中增加一类信息:为每个多边形建立一个标志

位,以表示扫描线上每一子区间所对应的覆盖多边形。

(3)深度排序算法

排序算法(Depth-Sorting Method)是介于图像空间消隐算法和景物空间消隐算法之间的一种算法,它在景物空间中预先计算物体上各多边形可见性的优先级,然后再在图像空间中产生消隐图。深度排序算法可分为两步进行:

(1)将多边形按深度进行排序:距视点近的优先级高,距视点远的优先级低。

(2)由优先级低的多边形开始,逐个对多边形进行扫描转换。其中步骤(1)是关键。

假定沿z轴的负向进行观察,因而z值大的距观察者近,多边形A上各点z坐标的最小值和最大值分别记作zmin(A)、zmax(A)。将多边形按深度进行排序的算法步骤为:(1)对场景中的所有多边形按zmin(多边形)由小到大的顺序存入一个先进先出队列中,记为M,同时初始化一空的先进先出队列N(N中存放已确定优先级的多边形,优先级低的先进,扫描转换时也先处理)。

(2)若M中的多边形个数为1,则将M中的多边形直接加入到N中,算法结束;否则按先进先出的原则从M中取出第一个多边形A进行处理(A是M中zmin值最小的多边形),同时将A从M中删除。

(3)从当前M中任意选择一多边形B,对A与B进行判别。

①若对M中任意的B均有zmin(B)>zmax(A),则说明A是M中所有多边形中深度最深的,它与其它多边形在深度方向上无任何重叠,不会遮挡别的多边形。将A按先进先出原则加入N中,转(2);否则继续。

②否则说明存在某一多边形B,A与B有深度重叠,则需要依次进行以下判别:

a. 判别多边形A和B在xoy平面上投影的包围盒有无重叠,若无重叠,则A、B在队列中的顺序无关紧要,将A按先进先出原则加入N中,转(2);否则继续。

b. 判别平面A是否完全位于B上A与B的重叠平面之后,若是,将A按先进先出原则加入N中,转(2);否则继续。

c. 判别B上平面A与B的重叠平面是否完全位于A之前,若是,将A按先进先出原则加入N中,转(2);否则继续。

d. 判别多边形A和B在xoy平面上的投影有无重叠,若无重叠,则A、B在队列中的顺序无关紧要,将A按先进先出原则加入N中,转(2);否则在A与B投影的重叠区域中任取一点,分别计算出A、B在该点处的z值,若A的z值小,说明A距视点远,优先级低,将A按先进先出原则加入N中,转(2);若A的z值大,则交换A和B的关系,即将B看作是当前处理对象,转(3)进行M中其它多边形的判别。

排序完成后得到队列N,由于N是按优先级由低到高顺序排列的多边形先进先出队列,因此只需从N中逐个取出多边形进行扫描转换即可。

(4)区域细分算法

区域细分算法的出发点是投影平面上一块足够小的区域可以被至多一个多边形所覆盖。因此,可以这样来构造算法:考察投影平面上的一块区域,如果可以很“容易”地判断覆盖该区域中的哪个或哪些多边形是可见的,则可按这些多边形的光照属性和几何位置计算确定子区域内各像素的显示颜色;否则就将这块区域细分为若干较小的区域,并把上述推断原则递归地应用到每个较小的区域中去。当区域变得越来越小时,每块区域上所覆盖的多边形就

越来越少,最终的区域会易于分析判断。这显然是图像空间消隐算法的一种,它利用了区域相关性。

在循环细分过程的每一阶段,可将每个多边形根据其投影与所考察的区域之间的关系分为4类:

(1)围绕多边形:多边形的投影完全包含了考察的那块区域;

(2)相交多边形:多边形的投影与该区域相交;

(3)被包含多边形:多边形的投影完全落在该区域之中;

(4)分离多边形:多边形的投影完全落在该区域之外。

根据这4种类别可以进行多边形的可见性测试。若以下条件之一为真,则可不必再对区域进一步加以细分而直接处理:

(1)所有多边形均是该区域的分离多边形,于是可直接将该区域中的所有像素点置为背景颜色。

(2)针对该区域,仅存在一个相交多边形,或仅存在一个被包含多边形,或仅存在一个围绕多边形。则可先将该区域中的所有像素点置为背景颜色,再将相应多边形的颜色值填入对应像素点的帧缓存中。

(3)针对该区域,有多于一个的相交多边形、被包含多边形或围绕多边形,则计算所有围绕的、相交的、以及被包含的多边形在该区域4个顶点处的z坐标,如果存在一个围绕多边性,它的4个z坐标比其它任何多边性的z坐标都大(最靠近视点),那么,可将该区域中的所有像素点置为该多边形的颜色值。

区域细分方式有两种,一种是将区域简单地分割为四块大小相等的矩形;另一种是自适应细分,即沿多边形的边界对区域进行细分,这样可以减少分割次数,但在区域细分和测试多边形与区域的关系方面处理更为复杂。

(5)光线投射算法

光线投射算法是建立在几何光学基础上的一种算法,它模拟人的视觉效果,沿视线的路径跟踪场景的可见面。其基本思想是:由视点出发通过投影窗口(屏幕)的任一像素位置构造一条射线(投影线),将射线与场景中的所有多边形求交,如果有交点,就将该像素点的颜色置为深度(z值)最大的交点(最近的交点)所属的多边形的颜色;如果没有交点,就将该像素点的颜色置为背景颜色。算法步骤可简单描述如下:

(1)通过视点和投影平面(显示屏幕)上的所有像素点作一入射线,形成投影线。

(2)将任一投影线与场景中的所有多边形求交。

(3)若有交点,则将所有交点按z值的大小进行排序,取出最近交点所属多边形的颜色;若没有交点,则取出背景的颜色。

(6)BSP树

BSP树与画家算法类似,BSP算法也是从远到近往屏幕上覆盖景物的画面,BSP算法在对场景进行消隐之前需建立场景的BSP树。

实际上,建立场景BSP树的过程是对场景所含景物多边形递归地进行二叉分类的过程。先在场景中选取任意一剖分平面P将场景的整个空间分割成两个子空间(相对于视点,这两个子空间一个位于P之前,一个位于P之后)。相应地,场景中的景物也被P分成两组。由

于C与P相交,因此P把C分割成两个物体C和D。这样,用剖面P进行第一次分割后,形成两组景物B、D和A、C(B、D在P之前,A、C在P之后)。然后再用剖分平面Q对第一次剖分生成的两个子空间进行分割,并对每一子空间中所含的景物进行分类,分为D和B,C和A(D、C在Q之前,B、A在Q之后)。

递归进行上述空间剖分和景物分类过程,直至每一子空间中所含景物少于给定的阈值为止,可表示成一棵BSP树,图9-14(b)示出了图9-14(a)的分割过程和形成的分类景物。对于由多边形组成的场景,常选择与某一多边形重合的平面作为分割平面。一旦构造完BSP 树,即可依据当前视点所在的位置,对场景中每一分割平面所生成的两个子空间进行分类,其中包含视点的子空间标记为“front”,位于分割平面另一侧的子空间标记为“back”。然后,递归搜索场景的BSP树,优先绘制标识为“back”的子空间中所含景物。

BSP算法非常适合在场景不变视点变化的场合对场景中各多边形作快速排序,是一种决定场景可见性的有效方法。目前已有许多系统借助硬件来完成BSP树的生成和处理。

(7)多边形区域排序算法

多边形区域排序算法是一种景物空间消隐算法。算法思想源于对隐藏面的观察:由于隐藏面是场景中位于场景可见面之后的多边形表面或表面的一部分,它们在投影面上的投影区域完全为可见面的投影所覆盖,因此,可以将多边形按深度值由小到大排序,是完全不可见的。

设场景内有n+1个多边形,且假定沿z轴的负向进行观察,记zmin(P)为多边形P上各顶点z坐标的的最小值。另外设定三个集合M、N和L,集合M存放待处理的多边形,集合N存放可见的多边形,集合L中存放排好序的多边形。多边形区域排序算法可简单描述如下:

(1)初始化:将场景中的多边形全部放入集合M中,集合N、L置为空。

(2)若集合M中的多边形的个数为1,则从集合M中取出该多边形放入N中,转(6)。否则对M中的所有多边形按zmin(P)由大到小(由近到远)的顺序进行预排序,放入L中。

(3)从L中取出当前深度(z值)最大的多边形,即最近的多边形作为裁剪多边形PA,求出该多边形在xoy面上的投影多边形A。且从集合M和L中去掉PA。

(4)若L为空,则将PA放入N中(可见面),转(2)。否则,从L中取出一个多边形PB,并从集合L中去掉PB,用A对PB的投影B进行裁剪,得到Bin。

(5)若Bin为空,即没有重叠部分,转(4);否则求出重叠多边形PAin和PBin各自顶点的z值,据此比较其深度,以确定PA是否是离视点较近的多边形。若是,将多边形PB从M中去掉,将PBout加入到M中,转(4);否则,将多边形PAout放入M中,L置空,转(2)。

(6)扫描转换集合N中的多边形。

多边形区域排序算法可适用于任意多边形构成场景的消隐处理,比如它可以正确消隐循环遮挡的情况。多边形剔除在多边形表面模型中,一个面包括正面和反面,通常正面会被观察着看见,而反面通常看不见,这种看不见的面,可以直接进行消隐处理,这种处理可以使用OpenGL中的多边形剔除函数:

glEnable(GL_CULL_FACE);

glCullFace (mode);

这里用GL_CULL_FACE符号常量调用glEnable函数表示开启多边形表面剔除功能。然后调用glCullFace函数指定多边形所要剔除的面,参数mode可以赋值为GL_FRONT、GL_BACK和GL_FRONT_AND_BACK,分别表示剔除多边形的前面、后面以及前后面。剔除操作可以影响从开启剔除功能开始绘制直至调用函数:

glDisable(GL_CULL_FACE);

关闭剔除功能为止的所有多边形。

程序:多边形剔除

#include

#include

void Initial()

{

glEnable(GL_DEPTH_TEST);

glFrontFace(GL_CW);

glClearColor(1.0, 1.0, 1.0, 0.0);

}

void ChangeSize(int w, int h)

{

if(h == 0) h = 1;

glViewport(0, 0, w, h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

if (w <= h)

glOrtho (-4.0f, 4.0f, -4.0f*h/w, 4.0f*h/w, -4.0f, 4.0f);

else

glOrtho (-4.0f*w/h, 4.0f*w/h, -4.0f, 4.0f, -4.0f, 4.0f);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void Display(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(1.0,0.0,0.0);

glPushMatrix();

/* 第一个茶壶使用了剔除*/

glEnable(GL_CULL_FACE);

glCullFace (GL_BACK); //剔除茶壶的后向面

glTranslatef(-2.0f, 0.0f, 0.0f);

glRotatef(180.0f, 0.0f, 1.0f, 0.0f );

GLdouble equ[4] = { -1.0f, 2.3f, 2.3f, 2.3f }; // equ中保存平面方程的系数

glClipPlane(GL_CLIP_PLANE0, equ); //glClipPlane定义裁减平面

glEnable(GL_CLIP_PLANE0);

glutSolidTeapot(1.0);

glPopMatrix();

/* 第二个茶壶关闭了剔除操作*/

glDisable(GL_CULL_FACE);

glTranslatef(2.0f, 0.0f, 0.0f);

glRotatef(180.0f, 0.0f, 1.0f, 0.0f );

glClipPlane(GL_CLIP_PLANE0, equ);

glEnable(GL_CLIP_PLANE0);

glutSolidTeapot(1.0);

glPopMatrix();

glDisable(GL_CLIP_PLANE0);

glFlush();

}

int main(int argc, char* argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );

glutInitWindowSize(400,400);

glutCreateWindow("茶壶的剔除操作");

glutReshapeFunc(ChangeSize);

glutDisplayFunc(Display);

Initial();

glutMainLoop();

return 0;

}

深度测试

OpenGL中的深度测试是采用深度缓存器算法,消除场景中的不可见面。在默认情况下,深度缓存中深度值的范围在0.0到1.0之间,这个范围值可以通过函数:glDepthRange (nearNormDepth, farNormalDepth);将深度值的范围变为nearNormDepthfarNormalDepth

之间。这里nearNormDepth和farNormalDepth可以取0.0到1.0范围内的任意值,甚至可以让nearNormDepth > farNormalDepth。这样,通过glDepthRange函数可以在透视投影有限观察空间中的任意区域进行深度测试。

另一个非常有用的函数是:glClearDepth (maxDepth);参数maxDepth可以是0.0到1.0范围内的任意值。glClearDepth用maxDepth对深度缓存进行初始化,而默认情况下,深度缓存用1.0进行初始化。由于在进行深度测试中,大于深度缓存初始值的多边形都不会被绘制,因此glClearDepth函数可以用来加速深度测试处理。这里需要注意的是指定了深度缓存的初始化值之后,应调用:glClear(GL_DEPTH_BUFFER_BIT);完成深度缓存的初始化。

在深度测试中,默认情况是将需要绘制的新像素的z值与深度缓冲区中对应位置的z

值进行比较,如果比深度缓存中的值小,那么用新像素的颜色值更新帧缓存中对应像素的颜

色值。这种比较测试的方式可以通过函数:glDepthFunc(func);进行修改。其中参数func 的值可以为GL_NEVER(没有处理)、GL_ALWAYS(处理所有)、GL_LESS(小于)、GL_LEQUAL (小于等于)、GL_EQUAL(等于)、GL_GEQUAL(大于等于)、GL_GREATER(大于)或GL_NOTEQUAL (不等于),其中默认值是GL_LESS。这些测试可以在各种应用中减少深度缓存处理的的计算。

结论:景物空间算法是在物体被定以时所处的坐标系中实现的。这种算法精度高,通常只受限于所采用的显示设备的分辨率,生成的图形可以放大多倍仍让人满意。景物空间算法特别适用于要求精密的工程应用领域。图像空间算法是在物体先试试所在的屏幕坐标系中实现的,一旦达到屏幕的分标率,计算就不再进行下去,生成的画面放大后往往不能令人满意,但是由于它在光栅扫描过程中易于利用画面的连贯性,实现的效率往往更高。物体从简单到复杂有许多种不同的情况,所以没有一种绝对适合所有图形及图像的消隐算法。实际使用时,应根据模型对图像的要求、硬件配置、算法以及编程的难易程度等因素来综合考虑,选择最适合的方法。

参考文献:

[1] 王汝传,黄海平,林巧民.计算机图形学教程(第二版).北京:人民邮电出版社.2009.8

[2] 夏小玲。三维消隐算法研究【J】东华大学学报(自然科学版)。2002(28)2:137~142

[3] 靳海亮高景祥《图像消隐算法综述》第34卷(2006)第9期

计算机图形学复习总结

一、名词解释: 1、计算机图形学:用计算机建立、存储、处理某个对象的模型,并根据模型产生该对象图形输出的有关理论、方法与技术,称为计算机图形学。 3、图形消隐:计算机为了反映真实的图形,把隐藏的部分从图中消除。 4、几何变换:几何变换的基本方法是把变换矩阵作为一个算子,作用到图形一系列顶点的位置矢量,从而得到这些顶点在几何变换后的新的顶点序列,连接新的顶点序列即可得到变换后的图形。 6、裁剪:识别图形在指定区域内和区域外的部分的过程称为裁剪算法,简称裁剪。 7、透视投影:空间任意一点的透视投影是投影中心与空间点构成的投影线与投影平面的交点。 8、投影变换:把三维物体变为二维图形表示的变换称为投影变换。 9、走样:在光栅显示器上绘制非水平且非垂直的直线或多边形边界时,或多或少会呈现锯齿状。这是由于直线或多边形边界在光栅显示器的对应图形都是由一系列相同亮度的离散像素构成的。这种用离散量表示连续量引起的失真,称为走样(aliasing )。 10、反走样:用于减少和消除用离散量表示连续量引起的失真效果的技术,称为反走样。 二、问答题: 1、简述光栅扫描式图形显示器的基本原理。 光栅扫描式图形显示器(简称光栅显示器)是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度,它不能直接从单元阵列中的—个可编地址的象素画一条直线到另一个可编地址的象素,只可能用尽可能靠近这条直线路径的象素点集来近似地表示这条直线。光栅扫描式图形显示器中采用了帧缓存,帧缓存中的信息经过数字/模拟转换,能在光栅显示器上产生图形。 2、分别写出平移、旋转以及缩放的变换矩阵。 平移变换矩阵:?????? ????? ???101000010 000 1z y x T T T (2分) 旋转变换矩阵: 绕X 轴????? ?? ?? ???-10 000cos sin 00sin cos 00001 θθθθ(2分) 绕Y 轴????? ???? ???-10 0cos 0sin 0010 0sin 0cos θθθθ(2分)

计算机图形学消隐算法的分析与实现

计算机图形学消隐算法的分析与实现 班级:13级计科专升本1班学号:201320910149 姓名:颛孙盼 盼 摘要:用计算机生成具有真实感的三维物体图形,是计算机图形学的一个重要研究内容,而要实现这一过程就不得不提到消隐算法。目前已经提出了多种算法,本设计对几种常见的消隐算法进行了分析比较,进而得出它们的相关特点,重点给出了凸多面体的消隐算法、画家算法、Z 缓冲器算法这三种算法原理及分析,并且在Visual C++中给出了算法的实现。 关键词:计算机图形学;消隐算法;分析;实现 ABSTRACT:It is one of the important researches in Computer Graphics to draw the realistic Three-dimensional Graphics with the aid of a computer. Blanking Algorit —hm, by which this process can be achieved. Currently, there have already been many roposed algorithms. After analyzing and comparing several common blanking algorithms, the design has concluded their related characteristics, especially the key principles and analysises of the Blanking Algorithm, the Painters Algorithm, and the Z-buffer Algorithm of convex polyhedron as well as the implementations in Visial C++. Keywords: computer graphics; blanking algorithm; analysis; achieve 1.前言 计算机图形学作为一门建立在计算机科学、数学、物理、心理学以及艺术学等学科基础上的综合性学科,主要是20 世纪60 年代以后发展起来的。随着计算机图形学及其相关技术的飞速发展,我们跨入了一个三维时代,各种扣人心弦的三维游戏、震撼人心的虚拟场景不断冲击着人们的感官和体验。计算机图形学已经成为计算机科学中最为活跃的领域之一,在世界范围内得到了普遍的重视。计算机图形学研究图形生成算法、处理算法、显示算法及输出算法。特别是新的计算机与新的图形输入设备的出现,诸如586 微机、多媒体微机的出现,给图形处理在速度上带来了飞跃;彩色喷墨绘图机、热生化打印机、热生化彩色绘图机的出现,更促使计算机图形学有了新的发展。其应用无处不在,从产品和工程设计到广告设计,从科学计算可视化到计算机辅助医疗诊断,从电影电视制作到数字娱乐,在各个领域中起着越来越大的作用。随着科学技术的飞速发展和广泛应用,人类需要处理的数据越来越多,例如,天体物理、航空航天、医学图像等领域的大量数据。计算机图形学就是这样一门学科,它从海量的数据中找出其隐藏的规律并且抽取对我们有用的信息,然后,以高度直观的视觉形式表现出来。用计算机生成具有真实感的图形是计算机图形学研究的重要内容之一。真实图形在虚拟现实、几何造型、指挥控制、科学计算的可视化等许多领域都有广泛的应用。而对于任何一个空间物体,无论是多么简单还是多么复杂,无论是平面体还是立体,在空间的任一方向上,都只能看得见其中的一部分表面和轮廓线。其中有一部分表面和轮廓线背向观察着,不可见。在计算机图形学中成为隐藏面和隐藏线。因此,在计算机屏幕上显示或绘制三维物体时,不能将其所组成的面和线都画出来,否则难于确定物体的形状和位置,同时也给看图带来许多困难,只能画出其中可见的部分,消去隐藏线和隐藏面,或者用虚线画出。这种经过消隐处理的图形称为真实图形,消隐处理是计算机绘图中一个引人注意的问题,目前已经提出了多种算法,消隐算法是针对空间内观察者的视点位置来来判断,哪些线段、棱边、表面或物体是可见的,哪些是不可见的。 2. 开发环境和工具

计算机图形学复习题及答案

一、名词解释 1.图形:能够在人们视觉系统中形成视觉印象的对象称为图形,包括自然景物和人工绘图。 2.像素图:点阵法列举图形中的所有点。用点阵法描述的图形称为像素图。 3.参数图:参数法描述图形的形状参数和属性参数。用参数法描述的图形称为参数图。 4.扫描线:在光栅扫描显示器中,电子枪扫过的一行称为一条扫描线。 5.构造实体几何表示法:用简单的实体(也称为体素)通过集合运算组合成所需的物体的方法称为构造实体几何表示法。 6.投影:投影是从高维(物体)空间到低维(投影)空间的一种映射。 7.参数向量方程:参数向量方程是包含参数和向量的方程。 8.自由曲线:形状比较复杂、不能用二次方程来表示的曲线称为自由曲线,通常以三次参数方程来表示 9.曲线拟合:给定一个点列,用该点列来构造曲线的方法称为曲线拟合。 10.曲线插值:已知曲线上的一个点列,求曲线上的其他点的方法称为曲线插值。 11.区域填充:根据像素的属性值、边或顶点的简单描述,生成区域的过程称为区域填充。 12.扫描转换:在矢量图形中,多边形用顶点序列来表示,为了在光栅显示器或打印机等设备上显示多边形,必须把它转换为点阵表示。这种转换称为扫描转换。 二、判断正误(正确写T,错误写F) 1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位图。(T) 2.光栅扫描显示器的屏幕分为m行扫描线,每行n个小点,整个屏幕分为m╳n个中点,其中每个小点称为一个像素。―――――――――――――――――――――(T)3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘制。――――――――――――――――-(F)4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。―――――――――――(T)5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效果。―――――――――――――――――――――――――(F)6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内部。―――――――――――――――――――――――(T)7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。――――――(T)

《计算机图形学》练习试题及参考答案(六)

《计算机图形学》练习试题及答案 一、名词解释 1、齐次坐标系 2、光顺性 3、种子填充算法 4、镜面反射光 5、投影变换 6、光线跟踪 7、复合变换 8、走样 9、几何造型技术 10、虚拟现实 二、简答题 1、前截面距离F和后截面距离B定义了什么? 2、计算机动画的制作主要步骤 3、计算机图形显示器和绘图设备表示颜色的方法各是什么颜色系统?它们之间的关系如何? 4、图形软件主语言的选择应考虑哪些因素? 5、制定CGI,CGM,IGES标准的目的分别是什么? 6、自由曲面的表示通常有哪两种?

7、什么叫做走样?什么叫做反走样?反走样技术包括那些? 8、简述区域连贯性、扫描线的连贯性以及边的连贯性。 9、简述Bezier曲线的不足之处。 10、建立图形软件可采用哪三种方法? 11、在观察空间中,如何确定投影的类型和方向? 12、简述编码裁剪法(即Cohen-Sutherland线段裁剪法)的算法过程。 三、应用题 1、分析边标志算法的实现过程,并写出其算法的C语言描述。 2、简述深度缓存算法及其特点。 3、假设在观察坐标系下窗口区的左下角坐标为(wxl=10,wyb=10),右上角坐标为(wxr=50,wyt=50)。设备坐标系中视区的左下角坐标为(vxl=10,vyb=30), 右上角坐标为(vxr=50,vyt=90)。已知在窗口内有一点p(20,30),要将点p映射 到视区内的点p`,请问p`点在设备坐标系中的坐标是多少?(本题10分) 4、如下表是采用DDA算法画出(0,0)到(5,2)的直线的数据,请填写空格处。 i xi yi yi+0.5 int(yi+0.5) 1 0 0 0.5 0 2 1 3 2 4 3 5 4 6 5 2 2.5 2 5、已知三角形ABC各顶点的坐标A(1,2)、B(5,2)、C(3,5),相对直线Y=4做对称变换后到达A’、B’、C’。 试计算A’、B’、C’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵) 6、试对下图中的多边形进行裁剪,用图表示裁剪过程。 7、计算机图形系统包含哪些外部设备? 8、简述消隐算法的分类。

常用的消隐算法及总结

常用的消隐算法及总结 数学092邹继瑶 090064 摘要:用计算机生成三维物体的真实图形是计算机图形学研究的重要内容。真实图形在仿真模拟、几何造型、广告影视、指挥控制和科学计算的可视化等许多领域都有广泛应用。经过消隐得到的投影图称为物体的真实图形。较常用的消隐算法有画家算法、Z-Buffer算法及其它一些改进算法。消隐算法从算法基本思想、算法描述和算法步骤等方面对画家算法、Z-Buffer算法和其它改进算法进行了分析,并得出了它们相关的特点。 关键词:计算机图形学消隐景物空间消隐图像空间消隐算法 引言:近年来,产生真实的虚拟环境是计算机图形学孜孜以求的目标。在虚拟对象或场景的创建中要用到许多综合处理过程,每一种都非常令人感兴趣也非常重要。计算机辅助设计、科学可视化、模拟训练、医疗成像、娱乐、广告等等,所有的这些,都要依赖于当今最前沿的计算机图形技术。伴随着计算机硬件、软件的飞速发展,计算机图形学技术也得到了质的飞跃。特别是面向对象技术和多媒体技术取得的成功,使得图形学成为计算机软件业中一个重要的分支。而程序设计方法、数据库系统和人工智能等新技术渗入到计算机图形学领域,又为计算机图形学提供了更加宽阔的发展空间和强劲动力。计算机图形学是研究通过计算机将数据转换成图形,并在专用显示设备上显示的原理、方法和技术的学科。主要介绍了计算机图形系统的基本知识,图形生成与显示的算法,图形的表示与图形的数据结构,图形的几何变换与投影变换,图形的裁剪技术,图形消隐处理,真实感图形的生成等内容。面消隐作为图形学中一个分支是本文的一个重要的研究内容。 一.消隐的基本概念 由于屏幕上的一些图元被另一些图元挡住所造成的。例如,当需要描绘一个由多边形面组成的三维物体时,那么它的一部分必然要被挡住,要在屏幕上显示的必须是可见的东西。打个比方,对于一个立方体,无论从哪个方向进行透视处理,最多只能看到其中的三个面。这样,就要想出一种方法来决定哪些面是所能看到的。 如果使用从屏幕到世界的视处理方法,那么很自然的就能保证只有图元上正确的部分才显示在屏幕上。在这种视处理中,可见性在屏幕的每一个像素上进行判断。从人眼发出一条射线,穿过一个给定的像素,那么首先与这条射线相交的表面在这一个像素上就是可见的。从这个表面反射的光线能够进入我们的眼睛。 用计算机生成三维物体的真实图形,是计算机图形学研究的重要内容。真实图形在仿真模拟、几何造型、广告影视、指挥控制和科学计算的可视化。等许多领域都有广泛应用。在用显示设备描述物体的图形时,必须把三维信息经过某种投影变换,在二维的显示表面上绘制出来。由于投影变换失去了深度信息,往往导致图形的二义性。要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,或简称为消隐。经过消隐得到的投影图称为物体的真实图形。 消隐算法是把线框图变成实体图必要的算法。通过看相关的报道知道,地面勘测卫星,气象卫星等要不断的向地面的工作站发送图片资料来帮助技术人员进行研究。而那个量是非常庞大的,因而接收到图像时往往是已经过压缩和消隐后得到的图片。由于最普通的图元就是多边形,所以讨论的许多技术都是只针对多边形模型的。由此将重点讨论用于多边形地形、体素模型的一些技术,为了能够更深入的了解消隐有关的基本知识,做了如下的一些介绍和

计算机图形学复习提纲

计算机图形学复习提纲 第一章计算机图形学概论 1.什么是矢量图?什么是点阵图? 矢量图:由短的直线段(矢量)组成的图形称为矢量图——Graphics 点阵图:由一系列象素点组成的图形称为点阵图——Image 2.计算机图形学的定义及其应用领域。 国际标准化组织ISO给出的定义:研究用计算机将数据转换为图形,并在专门的显示设备上显示的原理、方法和技术的学科。 也有教材给出的定义为:借助计算机及输入和输出设备,描述、存储、处理和生成对象的模型及其图形的理论、方法和技术的学科。 图形的输入;图形的生成、显示和输出;图形的变换;图形的组合、分解和运算 如今已在电子、机械、航空航天、建筑、造船、轻纺、影视等部门的产品设计、工程设计和广告影视制作中得到了广泛应用 3.计算机图形学中的四个研究方向是? 计算机图形、图像处理、模式识别、计算几何 4.计算机生成图形的工作模式有哪两个? 被动式计算机绘图;交互式计算机绘图 5.交互式用户接口的表现形式有哪些?(孙家广——计算机图形学(第三版)清华大学出版社) 图形用户界面、可视化、计算机制图、图像处理、计算机艺术、教育和培训、虚拟现实、办公自动化、娱乐 第二章计算机图形系统 6.计算机图形系统= 通用计算机系统+图形输入、输出设备+图形软件 7.简述计算机图形系统的基本功能。 1.计算功能实现图形处理过程中的计算、变换和分析。 2. 存储功能存储与图形有关的各类信息(几何、拓扑),并能对其进行检索、增删和插入等处理。 3. 输入功能输入与图形生成和操作相关的各类参数和命令。 4. 输出功能在各类图形输出设备上输出图形。 5. 对话功能通过各种人-机交互设备实现人与计算机的交互操作(人机通信)。 8.简述光栅扫描显示处理的过程。

计算机图形学第五次实验报告

《计算机图形学》实验报告 实验十一真实感图形 一、实验教学目标与基本要求 初步实现真实感图形,并实践图形的造型与变换等。 二、理论基础 运用几何造型,几何、投影及透视变换、真实感图形效果(消隐、纹理、光照等)有关知识实现。 1. 用给定地形高程数据绘制出地形图; 2. 绘制一(套)房间,参数自定。 三.算法设计与分析 真实感图形绘制过程中,由于投影变换失去了深度信息,往往导致图形的二义性。要消除这类二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称之为消除隐藏线和隐藏面,或简称为消隐,经过消隐得到的投影图称为物体的真实图形。 消隐处理是计算机绘图中一个引人注目的问题,目前已提出多种算法,基本上可以分为两大类:即物体空间方法和图象空间方法。物体空间方法是通过比较物体和物体的相对关系来决定可见与不可见的;而图象空间方法则是根据在图象象素点上各投影点之间的关系来确定可见与否的。用这两类方法就可以消除凸型模型、凹形模型和多个模型同时存在时的隐藏面。 1).消隐算法的实现 1.物体空间的消隐算法 物体空间法是在三维坐标系中,通过分析物体模型间的几何关系,如物体的几何位置、与观察点的相对位置等,来进行隐藏面判断的消隐算法。世界坐标系是描述物体的原始坐标系,物体的世界坐标描述了物体的基本形状。为了更好地观察和描述物体,经常需要对其世界坐标进行平移和旋转,而得到物体的观察坐

标。物体的观察坐标能得到描述物体的更好视角,所以物体空间法通常都是在观察坐标系中进行的。观察坐标系的原点一般即是观察点。物体空间法消隐包括两个基本步骤,即三维坐标变换和选取适当的隐藏面判断算法。 选择合适的观察坐标系不但可以更好地描述物体,而且可以大大简化和降低消隐算法的运算。因此,利用物体空间法进行消隐的第一步往往是将物体所处的坐标系转换为适当的观察坐标系。这需要对物体进行三维旋转和平移变换。 常用的物体空间消隐算法包括平面公式法、径向预排序法、径向排序法、隔离平面法、深度排序 法、光线投射法和区域子分法。其中前三种算法最常用,它们的基础都是背面消隐原理。所谓背面消隐原理,即是相对观察点来说朝向后面的物体表面是不可见的,应被隐藏。下面只对平面公式法作详细介绍,其他方法可参看有关文献。 根据解析几何原理,通过标准的平面方程可以判断给定点是在平面的正面还是背面。平面公式法利用此原理来判断观察点位于物体表面的哪一面,如位于背面一侧,则表面不可见,应被消隐;反之则可见。对物体的任意表面,可将其划分为若干个平面,在根据平面上任意三点的坐标可以求得其平面方程。标准的平面方程为: Ax+By+Cz+D=0; 其中A、B、C、D 为决定平面的常数。当把一个平面想象成一个凸型多面体时,设观察点坐标为(x,y,z),如果: ①Ax+By+Cz+D=0,则观察点(x,y,z)是该平面表面上的一个点; ②Ax+By+Cz+D>0,则观察点(x,y,z)在凸型多面体内部(称该表面是不可见的或隐藏的); ③Ax+By+Cz+D<0,则观察点(x,y,z)在凸型多面体外表面(称该表面是可见的),应被画出。 通过对物体进行适当旋转和平移后,可将物体变换到以观察点为原点的观察坐标系中,如果在观察坐标系中求得了平面的方程Ax+By+Cz+D=0,将观察点坐标代入上面的判断准则,则可得出如下的简单判据: ①D>0,则平面不可见,应被隐藏; ②D<0,则平面是可见面,应被画出。

计算机辅助设计与制造 教案

《计算机辅助设计与制造》教案 讲课:范青

目录 第一章概述 (1) 第一节CAD/CAM的基本概念 (2) 第二节CAD/CAM的发展历史 (3) 第三节CAD/CAM的发展趋势 (4) 第四节我国CAD/CAM的发展状况 (6) 思考题 (7) 第二章 CAD/CAM系统 (8) 第一节CAD/CAM系统的基本组成与分类 (9) 第二节CAD/CAM系统的典型硬件 (11) 第二节CAD/CAM系统的软件系统 (12) 思考题 (13) 第三章计算机辅助图形处理 (14) 第一节图形的几何变换 (15) 第二节图形的消隐技术 (17) 第三节图形的裁剪技术 (19) 第四节图形的生成方法 (21) 思考题 (23) 第四章 CAD/CAM建模技术 (24) 第一节建模的基本概念与要求 (24) 第二节线框建模 (25) 第三节曲面建模 (28) 第四节实体建模 (30) 第五节特征建模 (31) 思考题 (34) 第五章计算机辅助工程分析 (35) 第一节概述 (36) 第二节有限元法 (37) 第三节优化设计 (38) 第四节仿真技术 (39) 思考题 (41)

第六章计算机辅助工艺设计 (42) 第一节CAPP概述 (43) 第二节CAPP中零件信息的描述和输入 (46) 第三节CAPP的类型 (47) 思考题 (49) 第七章数控编程和仿真 (50) 第一节概述 (51) 第二节ATP语言编程技术 (54) 第三节图形交互式自动编程技术 (57) 第四节MasterCAM数控加工编程 (59) 第五节数控加工仿真 (61) 思考题 (63) 第八章计算机辅助质量系统技术 (64) 第一节概述 (65) 第二节计算机辅助质量系统 (66) 第九章计算机辅助生产管理与运行控制 (67) 第一节概述 (68) 第二节物料需求计划管理 (70) 第三节企业资源计划简介 (73) 第十章 CAD/CAM技术的新发展 (74) 第一节CAD/CAM集成系统 (75) 第二节计算机集成制造系统(CIMS)简介 (77) 第三节并行工程、智能化与虚拟现实技术 (78)

《计算机图形学》练习试题及参考答案(三)

《计算机图形学》练习试题及参考答案 三、简答题(每题10分): 1、 简述随机扫描显示器、存储管式显示器和光栅扫描式图形显示器的工作特点。 答:随机扫描显示器中电子束的定位和偏转具有随机性,即电子束的扫描轨迹随显示内容而变化,只在需要的地方扫描,而不必全屏扫描。 存储管式显示器从表面上看极象一个有长余辉的荧光屏,一条线一旦画在屏幕上,在很长时间之内都将是可见的,常用于显示大量而复杂稳定的图形。 在光栅扫描式图形显示器中,电子束横向扫描屏幕,一次一行,从顶到底顺次进行。当电子束横向沿每一行移动时,电子束的强度不断变化来建立亮点的图案 2、 简述区域连贯性、扫描线的连贯性以及边的连贯性。 答:区域连贯性:对于一个多边形及两条扫描线,会有如下情况:两条扫描线之间的长形区域被多边形的边分割成若干个梯形,位于多边形内部和外部的梯形相间排列。扫描线的连贯性:多边形与扫描线相交,其交点数为偶数,相邻两交点间的线段有些位于多边形内,有些位于多边形外,且两者间隔排列。边的连贯性:相邻两条扫描线与多边形的的同一条边相交,其交点可按递增一个常量来计算,如:x2=x1+1,则y2=y1+1/k (k 为该多边形边的斜率)。 3、 写出二次曲线的一般参数方程,并讨论何时是抛物线、双曲线、椭圆。 答:二次曲线的一般参数方程为:[]1,0)(2 2122101∈=++++t t r t e t e t a t a a , 当e1=0,e2=0时为抛物线;当e1=0,e2=1时为椭圆;当e1=1,e2=0时为双曲线。 4、 试述多项式拟合中最小二乘法的基本原理。 答:多项式拟合是给定一组数据点(x i,,y i )(i=0,1,…,n ),构造一个多项式函数y=f(x)去逼近这些数据点,并使得偏差平方和最小。 20100101(,,,)[()](,,,)。()()m n n i i i i n m a a a f x y a a a f x a a x a x m n δ=⎧Φ•••=-⎪Φ•••⎨ ⎪=++•••+≤⎩ ∑使得取得最小值 加权系数i δ一般取1。根据求极值原理,必须有: 20100 (,,,)2()0(0,1,...,)n m j k n i i k i i i k j a a a x a x y j m a δ==∂Φ•••==-==∂∑∑ ,,*?k k x y ∂k 由于都是已知的,因此上式有m+1程 可求出m+1个未知数a k ,即求出了最佳多项式拟合函数f(x)。 5、 写出以下特殊情况时的插值函数:1)过P 0(x0,y0)、P 1(x1,y1)的线性插值;2)过 P 0(x0,y0)、P 1(x1,y1)、P 2(x2,y2)的抛物线插值。 另外,写出n+1个数据顶点时的Lagrange 插值多项式。 答:见教材P144-145. 8、构造三次B 样条曲线时,请分别写出满足以下要求的处理办法: 1)要求插值端点;2)要求曲线是封闭的。

CAD消隐简介

摘要:深入研究了二维消隐的原理,设计了零件视图内、外边界表示的数据结构,通过以零件视图的内外边界对图形实体的显示进行裁剪的方法实现了二维消隐。在实现中零件视图的设计信息保存在该视图的扩展数据域中,用户以交互方式定义零件视图及零件视图相互间的遮挡关系。 关键词:消隐;零件视图;边界 产品装配图是产品设计与制造中不可缺少的技术文档。为了提高装配图的绘图效率,充分利用已绘制好的零件图,仿照产品装配过程把许多零件视图“装配”到一起,并加以少量的编辑修改来绘制装配图,是二维CAD系统不可缺少的手段。因此,能否实现二维工程绘图的装配消隐是衡量二维CAD系统的重要指标。装配图的每个视图可以看作由几个零件的部分或全部视图进行遮挡消隐和装配而成。 消隐是二维CAD系统向用户提供具有正确遮挡关系的零件装配图显示的功能。图形设计用户在使用绘制好的零件图构造装配图时,零件间的遮挡关系使得图纸中出现部分多余的线条,这种情况给用户带来很大不便,因此对零散的图形单元进行集成和在图中加入设计信息,从而使得计算机能够对这样的结构化图形进行处理,消隐的概念由此产生。消隐功能可以这样简单地描述:把零散的图形实体定义成零件视图块,并指定不同零件视图块的遮挡关系,用户通过命令的方式调用消隐功能,根据这些信息进行计算并构造具有正确遮挡关系的图形显示。 1零件视图块[1] 消隐是由于不同零件图之间的遮挡而产生的概念,零件视图块是消隐的基本单位,用户选择零散图形实体以块的方式生成零件视图块。零件视图块具有遮挡能力,不同的零件视图块可以具有不同的遮挡能力,这由用户指定零件视图块之间的遮挡关系并赋予消隐高度值的方法进行实现。消隐高度值的不同确定了零件视图块之间的遮挡关系,零件视图块之间的遮挡关系可以表示为1棵树,从树根到树叶逐级被遮挡,普通实体可以被任意零件视图块遮挡,它具有最低的消隐高度,这样零件视图之间的相互遮挡关系由它们的消隐高度值唯一确定。 2 消隐的原理[2] 装配消隐的过程如图1所示,用户从图形实体数据中选择图形实体并定义为零件视图块,利用边界搜索算法得到该零件视图块的内外轮廓信息,这些信息作为用于消隐的零件图设计信息而被记录于零件视图块的扩展数据域中。然后用户指定零件视图块之间的遮挡关系,对

计算机图形学作业及答案

计算机图形学作业及答案 1、计算机图形系统的组成包括哪些? 答:计算机图形系统由硬件和软件两部分组成,硬件包括:主计算机、图形显示器以及I/O 交互工具和存储设备;软件包括操作系统、高级语言、图形软件和应用软件。现代计算机图形系统与一般计算机系统最主要的差别是具有图形的输入、输出设备以及必要的交互工具,在速度和存储容量上具有较高的要求。另外,人也是这个系统的组成部分。 2、简述光栅扫描式显示器的性能指标? 答:⑴分辨率:指显示器在屏幕水平(垂直)方向可显示多少像素,分辨率以象素点为基本单位。表示方法为320×200、640×480等。显示分辨率与显卡上的缓冲存储器的容量有关,容量越大,显示分辨率越高。分辨率越高,显示的字符或图像越清晰。 ⑵ 亮度等级数目和色彩:指单种颜色亮度可变化的数目,亮度等级范围的提升可使图像看 上去更柔和自然色彩包括可选择显示颜色的数目以及一帧画面可同时显示的颜色数。 ⑶ 显示速度:指显示字符、图形,特别是动态图像的速度,可用最大带宽表示:水平像素 数*垂直像素数*最大刷新率。 3、具有相同分辨率的彩色光栅显示器与黑白光栅在结构上有何区别? 答:彩色: 对于红、绿、蓝的三个原色有三个位面的帧缓存和三个电子枪,每个位面的帧缓冲对应一个电子枪即对应一种颜色;对每个颜色的电子枪可以通过增加帧缓存位面来提高颜色种类和灰度级,通过三种原色的组合可以产生不同种类的颜色。 彩色光栅显示器主要是有红、绿、蓝的三个原色所组成,每种原色电子枪有8个位面的帧缓存和8位的数模转换器,每种原色有256种亮度,三种原色组合可为16771216种颜色,也可以通过颜色查找表查找,故帧缓存位数至少24位。 黑白: 黑白光栅显示器的帧缓存是一块连续的计算机存储器,每个像素需1位存储器,每个存储器只有0或1两个状态。因此一个位面的帧缓存只能产生黑白图形。可以增加象素点的位面数,通过多个位面显示出多种灰度级。 4、对于分辨绿为1024*1024的光栅系统,若每一像素用8位和12位二进制来表示存储信息,各需多大光栅存储容量?每一屏幕最多能显示多少颜色?若R ,G ,B 灰度都占8位,其显示颜色的总数是多少? 答:每一像素用8位二进制来表示存储信息,所需容量为1024*1024*1=2 20 (byte )=1MB 彩色素:8 2 =256( 项) 若每一像素用12位二进制表示存储信息,所需容量为:1024*1024*1.5=1.5*2 20 (byte)=1.5MB 彩色素: 2 12 =4096( 项) 颜色总数: 28*28*28=2 24 (种) 5、对于19英寸显示器,若X 和Y 两方向的分辨率相等,即-1024*1024,那么每个像素点的直径是多少? 答: 210244.25*19=0.33(mm )或2102419 =0.013(英寸) 6、什么叫做走样?什么叫做反走样?反走样技术包括那些?

球体消隐课程设计报告

一. 设计内容与要求 (2) 1.1总体目标和要求 (2) 1.2内容与要求 (2) 二. 总体设计 (2) 2.1球的消隐处理基本原理 (2) 2.2具体设计实现 (3) 三. 详细设计 (3) 3.1程序流程图 (3) 3.2调试后正确的程序清单 (5) 四. 功能实现 (10) 4.1程序运行结果 (10) 4.2功能实现及分析 (10) 五. 总结 (11)

六. 参考文献 (11)

球体背面剔除消隐算法 第1章设计内容与要求 1.1 总体目标和要求 课程设计的目的:以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到: 1)巩固和实践计算机图形学课程中的理论和算法; 2)学习表现计算机图形学算法的技巧; 3)培养认真学习、积极探索的精神; 4)具备通过具体的平台实现图形算法的设计、编程与调试的能力; 5)完成对实验结果分析、总结及撰写技术报告的能力。 总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。 开发环境:Viusal C++ 6.0 1.2内容与要求 球体背面剔除消隐算法 内容: (1)掌握背面剔除消隐算法原理; (2)实现矢量点积与叉积运算; (3)透视投影变换 (4)曲面体经纬线划分方法 功能要求: (1)绘制球体线框模型的透视投影图,使用背面剔除算法实现动态消隐; (2)通过右键菜单显示消隐效果,右键菜单有两个选项:未消隐与消隐; (3)使用键盘的上下左右控制键旋转消隐前后的球体; (4)单击左键增加视距,右击缩短视距; 第2章总体设计 2.1球的消隐处理基本原理 球体的曲面通常采用一组网格多边形来表示,即把曲面离散成许多小平面片,用平面逼近曲

计算机图形学考核题库(消隐等)

第六七章(曲线曲面和分形) 一、选择题: 1、在三维几何造型方法中,局部操作能力比较弱的方法是() A. 体素造型 B. 八叉树造型 C. B-rey造型 D. 特征造型 2、三维空间实体的八叉树表示属于一种什么表示方法?() A. 分解表示; B. 构造表示; C. 边界表示; D. 单元分解法; 3、在实体的定义中对边的哪条限制不存在() A. 边的长度可度量且是有限的; B. 一条边有且只有两个相邻的面; C. 一条边有且只有两个端点 4.在几何造型中,下列论述中那些是正确的?() A. 在形体定义中,允许存在孤立的点; B. 面是形体上一个有限、非零的区域,一般由一个外环和若干个内环组成,但也可以没有任何环; C. 环是有序、有向边组成的面的封闭边界,环中的边不能相交,相邻的两条边可以共享一个端点; D. 形体上任意一点的足够小的邻域在拓扑上应该是一个等价的封闭圆; 5、下列有关边界表示法的叙述语句中,错误的论述为() A. 定义了物体的边界也就唯一的定义了物体的几何形状边界; B. 物体的边界上的面是有界的,而且,面的边界应是闭合的; C. 物体的边界上的面是有向的,面的法向总是指向物体的内部; D. 物体的边界上的边可以是曲线。 6、下列有关边界表示法的叙述语句中,正确的论述为()。 A. 边界是物体的一部分,它将物体的内部点与外部点划分开; B. 物体边界上的面是有向的,面的法向可指向物体的内部或外部; C. 物体边界上的面是曲面,但在该面的有效区域内,不允许自相交; D. 物体边界上的边的长度可度量且是有限的。 7、下列有关边界表示法的叙述句中,正确的论述为()。 A. 边界表示是用面、环、边、点来定义物体的位置和形状; B. 物体边界上的面是各种曲面,包括自相交的曲面; C. 物体边界上的面是有向的,面的法向总是指向物体的内部; D. 物体边界面上的边的长度可度量且是有限的。 二、简答题: 简述边界表示法(BREP); 简述实体构造表示法(CSG);

计算机图形学-习题库及答案

1、计算机图形显示器和绘图设备表示颜色的方法各是什么颜色系统?它们之间的关系如何? 1、计算机图形显示器是用RGB方法表示颜色,而绘图设备是用CMY方法来表示颜色的。它们之间的关系是:两者都是面向硬件的颜色系统,前者是增性原色系统,后者是减性原色系统,后者是通过在黑色里加入一种什么颜色来定义一种颜色,而后者是通过指定从白色里减去一种什么颜色来定义一种颜色 2、简述帧缓存与显示器分辨率的关系。分辨率分别为640×480,1280×1024,和2560×2048的显示器各需要多少字节位平面数为24的帧缓存? 2、帧缓存的大小和显示器分辨率之间的关系是:帧缓存的大小=显示器分辨率的大小*帧缓存的 3、画直线的算法有哪几种?画圆弧的算法有哪几种? c1)逐点比较法;(2)数值微分法;(3)Bresenham算法。 画弧线的常用方法有:(1)逐点比较法;(2)角度DDA法;(3)Bresenham算法。 4、分别写出平移、旋转、缩放及其组合的变换矩阵。 4、 1)平移变换: 其中, , , 是物体在三个坐标方向上的位移量。 2)旋转变换: 绕Z轴旋转的公式为: 绕X轴旋转的公式为: 绕Y轴旋转的公式为: 如果旋转所绕的轴不是坐标轴,设其为任意两点p1,p2所定义的矢量,旋转角度为。则可由7个基本变换组合构成: 1.使p1,点与原点重合;

2.,使轴p1p2落入平面xoz内; 3.,使p1p2与z轴重合; 4.,执行绕p1p2轴的角旋转; 5.,作3的逆变换; 6.,作2的逆变换; 7.作1的逆变换。 3)缩放变换: 其中,,,是物体在三个方向上的比例变化量。记为。 若对于某个非原点参考点进行固定点缩放变换,则通过如下的级联变换实现: 5、如何用几何变换实现坐标系的变换? 坐标系的变换,亦即将某一坐标系lcs1中的点变换为另一个坐标系lcs2下的坐标 。若,矩阵的推导分三步。 1)将lcs1中的点变换到世界坐标系的矩阵 ; x_axis, y_axis, z_axis 为lcs1中x,y,z轴矢量在世界坐标系的表示 org为lcs1中原点在世界坐标系的表示 2)将世界坐标系的点变换到lcs2中的点矩阵 ; x_axis, y_axis, z_axis 为lcs1中x,y,z轴矢量在世界坐标系的表示

《计算机图形学》习题

一、名词解释 计算机图形学、图形消隐、裁剪、走样、反走样、参数方程、曲线拟合、曲线插值、曲线的参数化、区域填充、扫描转换 二、判断正误(正确写T,错误写F) 1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为 位图。 2.光栅扫描显示器的屏幕分为m行扫描线,每行n个小点,整个屏幕分为m╳n 个中点,其中每个小点称为一个像素。 3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制; 位图中的1对应未点亮的像素,用背景色绘制。 4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。 5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不 会改变点阵字符的显示效果。 6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性 值或者它们位于某边界线的内部。 7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。 8.用DDA算法生成圆周或椭圆不需要用到三角运算,所以运算效率高。 9.找出并消除物体中的不可见部分,称为消隐。 10.经过消隐得到的图形称为消隐图。 11.深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组,深度缓存 算法能并行实现,深度缓存算法中没有对多边形进行排序。 12.在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区。 13.Bezier曲线不一定通过其特征多边形的各个顶点,Bezier曲线两端点处的切 线方向必须与起特征折线集(多边形)的相应两端线段走向一致,Bezier曲线可用其特征多边形来定义。 14.由三个顶点可以决定一段二次B样条曲线,若三顶点共线时则所得到的曲线 褪化为一条直线段。 15.插值得到的函数严格经过所给定的数据点。 16.参数曲线的表示有形式和几何形式两种。 17.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当直线平行于裁剪边界的 条件Q k=0。 18.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当P k<0时表示线段从裁剪 边界外部指向内部。 19.多边形的裁剪可直接利用直线段的裁剪算法进行裁剪。 20.三次曲线方程的几何形式中P0、P1的调用函数F0、F1用于控制端点函数值

计算机图形学课程设计-Z-Buffer隐面算法的实现

枣庄学院 信息科学与工程学院课程设计任务书题目:Z-Buffer隐面算法的实现 姓名:秦云 学号:201012110128 专业班级:计算机科学与技术、2010级本1班 课程:计算机图形学 指导教师:燕孝飞职称:讲师 完成时间:2012年12 月----2013年1 月 枣庄学院信息科学与工程学院制 2012年12 月30日

课程设计任务书及成绩评定

目录 第1章引言 (1) 第2章计算机图形学的发展历史 (2) 2.1 智能CAD (2) 2.2计算机美术与设计 (2) 2.2.1 计算机美术的发展 (2) 2.3计算机动画艺术 (3) 2.3.1历史的回顾 (3) 2.4科学计算可视化 (4) 2.5虚拟现实 (4) 第3章计算机图形学的研究方向 (6) 第4章 Z-Buffer隐面算法的相关原理 (7) 4.1 Z-Buffer隐面算法简介 (7) 4.2 Z-Buffer隐面算法程序 (7) 第5章系统设计的相关代码 (8) 5.1坐标设置函数的相应代码 (8) 5.2旋转角度函数相应代码 (8) 5.3多边形填充 (9) 第6章系统的运行效果 (12) 6.1运行主界面 (12) 6.2不同方向键的运行效果 (13) 第7章总结 (16)

第1章引言 计算机图形学一个主要的目的就是要利用计算机产生令人赏心悦目的真实感图形。为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。所以计算机图形学与另一门学科计算机辅助设计有着密切的关系。事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。 真实感图形绘制过程中,由于投影变换失去了深度信息,往往导致图形的二义性。要消除这类二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称之为消除隐藏线和隐藏面,或简称为消隐,经过消隐得到的投影图称为物体的真实图形。 计算机图形学狭义上是一种研究基于物理定律、经验方法以及认知原理,使用各种数学算法处理二维或三维图形数据,生成可视数据表现的科学。它是计算机科学的一个分支领域与应用方向,主要关注数字合成与操作视觉的图形内容。广义上来看,计算机图形学不仅包含了从三维图形建模、绘制到动画的过程,同时也包括了对二维矢量图形以及图像视频融合处理的研究。计算机图形学经过将近40年的发展,已进入了较为成熟的发展期。目前,其主要应用领域包括计算机辅助设计与加工,影视动漫,军事仿真,医学图像处理,气象、地质、财经和电磁等的科学可视化等。由于计算机图形学在这些领域的成功运用,特别是在迅猛发展的动漫产业中,带来了可观的经济效益。动漫产业是目前各国优先发展的绿色产业,具有高科技、高投入与高产出等特点。据统计,截至2009年3月,美国动画梦工厂所拍摄的三维动画片《怪物史莱克II》在预算为1.5亿美元的情况下,获得了超过9.2亿的全球累计票房。而我国在2008年度共制作完成的国产电视动画片249部,计131042分钟,与2007年度相比增加了近28%。另一方面,由于这些领域应用的推动,也给计算机图形学的发展提供了新的发展机遇与挑战。

计算机图形学复习题目

第一章 1.1 名词解释:图形、图像、点阵法、参数法。 1.2 图形包括哪两方面的要素?在计算机中如何表示它们? 1.3 什么叫计算机图形学?分析计算机图形学、数字图像处理和计算机视觉学科间的关系。 1.4 有关计算机图形学的软件标准有哪些? 1.5 试从科学发展历史的角度分析计算机图形学以及硬设备的发展过程。 1.6 试发挥你的想象力,举例说明计算机图形学有哪些应用范围,解决的问题是什么? 1.7 一个交互性计算机图形系统必须具有哪几种功能? 第二章 2.1 名词解释:随机扫描、光栅扫描、图形显示子系统、像素点、光点、屏幕分辨率、显示分辨率、存储分辨率、组合像素法、颜色位面法、位平面、颜色查找表。 2.2 试列举出你所知道的图形输入与输出设备。 2.3 阴极射线管由哪几部分组成?它们的功能分别是什么? 2.4 简述什么叫桶形失真?如何校正? 2.5 简述荫罩式彩色阴极射线管的结构和工作原理。 2.6 比较荫罩式彩色阴极射线管和穿透式彩色阴极射线管的异同。 2.7 简述黑底荫罩式彩色阴极射线管的结构和特点。 2.8 简述光栅扫描图形显示器的工作逻辑。 2.9 基于光栅扫描的图形显示子系统由哪几个逻辑部件组成?它们的功能分别是什么? 2.10 什么是像素点?什么是显示器的分辨率? 2.11 某些显示卡为什么要采用颜色查找表?采用颜色查找表的系统的工作原理是什么?

2.12 确定用你的系统中的视频显示器x和y方向的分辨率,确定其纵横比,并说明你的系统怎样保持图形对象的相对比例。 2.13 如何根据显示器的指标计算显示存储器的容量。 2.14 图形的硬拷贝设备有哪些,简述其各自的特点。 第三章 3.1 名词解释(可用图示):回显、约束、网格、引力域、橡皮筋技术、草拟技术、拖动、旋转、形变。 3.2 什么是用户模型,设计一个好的用户接口要涉及到哪些因素? 3.3 gks的有哪六种逻辑输入设备,试评价这六种逻辑分类方法。 3.4 举例说明什么是请求方式、取样方式、事件方式及其组合形式。 第四章 4.1 名词解释:造型技术、规则对象、不规则对象、几何造型、几何模型、图元、图素、体素、段、图形信息、非图形信息、几何信息、拓扑信息、刚体运动、拓扑运动、拓扑等价、建模坐标系、用户坐标系、观察坐标系、规格化设备坐标系、设备坐标系。 4.2 欧氏空间中的几何元素包含那些内容,如何表示。 4.3 试比较线框模型和实体模型的优缺点。 4.4 简述三维形体的扫描表示方法。 4.5 简述如何利用csg树来表示三维形体。 4.6 举例说明如何用四叉树表示二维形体。 4.7 图形系统中为什么要建立图形对象的层次结构。 5.1 名词解释:扫描转换、八分法画圆、多边形的顶点表示、多边形的点阵表示、字库、矢量字符、点阵字符、区域填充、边界填充、4-邻接点、8-邻接点、4-连通区域、8-连通区域、方刷子、线刷子、走样、反走样。

相关文档
相关文档 最新文档