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

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

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

班级: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. 开发环境和工具

本设计的实现主要应用的是Visual C++ 6.0,Visual C++ 6.0 开发环境Developer Studio 是由运行在Windows 环境下的一套集成工具所组成,包含输入程序源代码的文本编辑器(text editer)、设计用户界面(如菜单、对话框、图标等)的资源编辑器(resources editor)、跟踪程序源文件和建立项目配置的项目管理器(Project build facilities)、建立并运行程序的优化编译器(Optimizing compiler)和增量连接器(Incremental Linker)以及检查程序错误的集成调试器(Integrated debuger)等。Visual C++ 6.0 提供了具有功能强大的向导工具AppWizard 和ClassWizard 来简化图形程序设计的开发。AppWizard 向导用于帮助用户生成各种不同类型应用程序的基本框架,生成完整的从开始文件出发的基于WFC 类库的源文件和资源文件。在创建应用程序的基本框架后,使用ClassWizard 来创建新类,定义消息处理函数,重载虚拟函数,从对话框的控件中获取数据并验证数据的合法性。所有的这一切,使得应用Visual C++ 开发的Windows 系统下的图形应用程序变得很方便、简单,Visual C++也已成为专业程序员进行软件开发的首选工具。

3. 消隐算法的描述

3.1 消隐算法的提出

任何一个空间物体,无论是多么简单还是复杂,不论平面还是立体,在空间的任一方向上,都只能看得见其中的一部分表面和轮廓线。其中有一部分表面和轮廓线背向观察着,不可见,在计算机图形学中称为隐藏面和隐藏线。为了使计算机显示的图形更具真实的感觉,在确定了观察点及观察方向后,首先要解决的问题就是判断显示图形的哪些部分是可见的,哪些部分是不可见的。也就是要找出隐藏线和隐藏面,消除这些不可见的部分,保留可见的部分,经过消隐处理的图形可以增加图形的真实感,消隐也是图形学中非常重要的一个基本问题。要使计算机所显示的立体图形更具真实感,必须消除物体因自身遮挡或相互遮挡而无法看见的线条隐藏起来,最后画出可见线段和线段的可见部分,不画或用虚线画出不可见线段和线段的不可见部分,就得到经过消隐处理的线条图,这种经过线消隐处理的图形,只能输出线框图,更多的时候我们需要的是具有表面信息的图形,如色彩的鲜艳程度、光照的明暗效果等,这时候就必须还要求把每一个组成物体的平面(或曲面)与每一个不透明面进行遮蔽比较,把可见的或部分可见的与不可见的或部分不可见的区别开来。最后绘出那些可见面或面的可见部分,就得到经过面消隐处理的立体图B C 没有消隐的图形具有二义性:(a) 立方体的线框图;(b) 顶点B 离视点最近时的消隐;(c) 顶点C 离视点最近时的消隐线消隐:输出线框图面消隐:输出着色图

3.2 消隐算法的分类

消隐处理是计算机绘图中一个引人注意的问题,目前已经提出了多种算法,按照操作对象的不同表达方式,消隐算法分为两大类:

(1)对象空间算法(Object Space Method)。这种算法是在描述物体的坐标系空间中进行,通过分析对象的三维特性之间的关系来确定其是否可见。算法描述:for(坐标系中的每一个物体) { 确定未被遮挡的物体或者部分物体;用恰当的颜色绘制出可见部分;} 这种算法的特点是:算法精度高,与显示器的分辨率无关,适合于对精密要求较高的CAD 工程领域。比较常用的对象空间算法主要有:平面公式法、背面消除法、径向预排序法、径向排序法、深度排序法等。而比较常用的是前面的四种,它们都是基于背面消隐的原理,也就是对观察点来说朝向后面的物体表面是不可见的,应该进行消隐处理。

(2)图像空间算法(Image Space Method)。这种算法是将图像投影后分解为像素,然后在二维空间内对每一个像素位置,按照一定的规律比较像素之间的Z 值,从而确定其是否可见。算法描述:for(图像中每一个像素) { 确定由投影点与像素连线穿过的距离观察点最近的物体;用适当的颜色绘制该像素;} 这种算法的特点是:它是在屏幕坐标系中进行的,生成的图像一般受限于显示器的分辨率。比较常用的几种算法有:Z—Buffer 算法、

射线踪迹算法、扫描线算法。从理论上说,对于对象空间算法,一个对象必须和画面中其他对象进行比较,才能确定其可见性。如果画面还有n 个对象,则比较操作的计算量为n 2 次。对于图像空间算法,每个对象都分解为像素,像素之间进行比较。如果每个对象投影后含有N 个像素,则比较计算量为Nn 次,N 虽然很大,但像素之间的比较甚为简单,而且可以利用相邻像素之间的性质连贯性(Coherence)简化计算。因此,在光栅扫描显示系统中实现,有时效率较高。目前,实用的消隐算法常将对象空间算法和图形空间算法结合起来使用:首先,使用对象空间算法删除对象中一部分不可见的面;然后,对剩余面再利用图像空间算法加以分析。从应用的角度看,有两类消隐问题,即线消隐(Hidden-Line)和面消隐(Hidden —Surface)。前者用于线框图,后者用于填色图。

4. 消隐算法的数学知识

图形学在很大程度上就直接把数学表达式转换成代码,数学表达得越清晰,对应的代码就越容易被理解。所以在正式用到消隐算法之前,有必要对相关的数学知识进行一下梳理,这里只对后面经常用到的相关知识进行给出,不做详细的分析。

4.1 向量的叉积

叉积ab 常用于三维向量,它返回的是一个三维向量,该向量与另外两个向量a 和b 都是正交的,也就是说当a 和b 相交且不重合的时候,它们的叉积其实就是这两个向量所在平面的法向量,叉积结果得到的向量,其长度与sin 相关:a b a b sin既然a b 返回的是一个三维向量,那么它就也有方向,它的方向是用右手坐标系法则确定的,具体来说:假设把你的右手掌底部放在a 和b 箭尾相交的地方,然后将箭头以最小的角度推向箭头b,这个时候大拇指的指向就是叉积ab 的方向。

4.2 线性代数

4.2.1 行列式

我们通常认为行列式是在研究线性方程组解法的时候被提出来的。然而,从图像学的角度看,行列式是向量相乘的另一种方法。对于二维向量a 和b,行列式|ab|表示由a 和b 形成的平行四边形的面积。这个面积是有符号的,如果a 和b 符合右手法则,则面积为正,否则为负。对于三个三维向量a、b 和c,行列式|abc| 表示由这三个向量形成的平行六边形的体积,这个体积也是有正负的。有关行列式和矩阵的计算问题,这里也不做详述。矩阵矩阵就是由遵循一定算术法则的数字元素所组成的阵列,在图形学中,会因为各种目的频繁用到矩阵,例如空间变换等。在解析几何中,点可以用向量表示。在二维空间中可用(x,y)表示平面上的一点,在三维空间中则用(x,y,z)表示空间一点。因此,可以用点的集合(简称点集)来表示一个平面图形或三维立体,写成矩阵形式为:这样就建立了平面图形和空间立体的几何模型。在计算机绘图中,常常要进行诸如比例、对称、旋转、平移、投影等各种变换,既然图形学可以用点集来表示。也就是点集定了,则图形学也就确定了。那么,如果点的位置改变了,图形也就随之改变。因此,要对图形进行变换,只要变换点就可以了。yn xn y3 x3 y2 x2 y1 x1 zn yn xn ... ... ... z3 y3 x3 z2 y2 x2 z1 y1 x1 由于点集可以用矩阵的方式来表达,因此对点的变换就可以通过相应的矩阵运算来实现,即:旧点集变换矩阵矩阵运算新点集例如:设[X,Y]为变换前的坐标,T = 为变换矩阵,则有:[X,Y] =[ax+cy bx+dy] = [X' Y'] 这里,[X' Y']为变换后的坐标。变换矩阵中a,b,c,d 可取不同的值,可以实现各种不同的变换,从而达到对图形进行变换的目的。

4.3 三维坐标与二维坐标的转换

在计算机图形学里,我们无法把一个三维图形直接进行输出,因为图形输出设备一般都是二维的,所以对于一个三维图形来说,最后输出的时候还是要将其转换到二维的观察平面上。要实现这一转换的过程,就要用到投影的变换,由于本设计是要实现消隐算法的,对于具体的变换就不再赘述,只是重点讨论一下如何将空间范围内的三维坐标转换为二维

平面坐标,下面以三维空间内任一点A(x,y,z)为例,来具体说明如何转换。设三维空间内有一点A(x,y,z),则A 在x,y 平面上的投影为A'(x',y',0)。设视线OA 与x,y 平面所成的角为,并且OA 在x,y 平面上的投影与x 轴所成的角为。当、的值可以确定的时候,

则可以得到A 点沿视线方向在x,y 平面上的投影A'(x',y',0),如图4.3-1,则有:x'= x + tan z ·cos z A(x,y,z)y'= y + tan z ·cosy O A'(x',y',0) x d c b a d c b a 类似的,还可以得到空间上的一条线、一个面在二维平面上的标示。

5.几种常见的消隐算法分析与比较

5.1 凸多面体消隐处理

平面体是多个平面多边形构成的立体,一般分为凸多面体和凹多面体,这里主要讨论凸多面体的消隐处理。凸多面体具备这样一个性质:连接形体上不同表面的任意两点的线段完全位于形体的内部。凸多面体由多个平面凸多边形组成,它的多边形表面要么完全可见,要么完全不可见。无论从哪一个方向去观察凸多面体,不会发生表面上一部分可见而另一部分不可见的情形,即各朝前表面多边形的投影不发生互相重叠现象。在消隐问题中,凸多面体是最简单和最基本的情形,其消隐算法的关键在测试其上哪些表面是可见的,哪些表面是不可见的。利用表面外法线方向可测试物体表面的可见性,平面立体各表面多边形所在平面均有其法线,在此规定法线的方向由物体表面指向外部空间,将其称为外法线。多边形平面的外法线矢量可由其上任意相交且不重合的两线段矢量的乘积计算得出。在计算外法线矢量时,要注意线段断点的顺序,利用立体表面的外法线方向可判断物体表面的可见性,从而对物体作消隐处理。这种方法对凸多面体的消隐处理特别简单有效,对某些处在一定方向及角度范围内的图形也适用,但其应用范围受到限制。根据外法线方向对物体进行消隐处理的一般步骤为:1.求表面的外法线向量N;2.计算外法线向量N 与向量S 的夹角的余弦值cos或其符号;3.根据cos值得符号判断表面的可见性;4.表面可见时,画出其平面多边形;不可见时,不画出,处理下一个表面,直至最后一个表面。

5.2 隐藏面的消除

用线框图表达形体,显示过于原始和单调。人们希望能够得到色彩丰富和逼真的图形,这就首先要从线框图发展到平面图,即用不同的颜色或灰度来表示立体的各表面,于是也就引出了对隐藏面消隐算法的研究。任何消隐算法绘图都要进行可见性检测,检测中还要用到各种几何计算。

计算机图形学考试大纲

计算机科学与技术学科综合水平全国统一考试大纲及指南 计算机图形学 一、考试大纲 要求掌握设计和使用计算机图形学系统所必须的基本原理,其主要内容包括: 1.基本图形生成算法 2.二维图形显示 3.曲线和曲面的表示 4.三维物体的几何表示和几何变换 5.真实感图形的实现原理和算法 二、复习指南 (-)概述 1.计算机图形学和图形系统基本知识 计算机图形学研究对象及应用领域;图形系统的硬件和软件;图形标准接口。 2.基本图形的属性及生成算法 直线,曲线,填充区域,文字等。 (二)二维图形变换和显示 1.二维几何变换 平移、旋转、缩放及其组合,坐标系变换。 2.二维图形显示 点、线、多边形、曲线及文字的裁剪。 (三)曲线、曲面和三维图形 1.曲线和曲面的参数表示 Bezier曲线和曲面,双三次曲面的表示,B样条,插值,曲面拟合。 2.三维物体的几何表示方法 物体的定义及性质,特征参数法,边界表示法,曲面离散近似表示,实体构造表示法,八叉树表示法。 3.三维形体的输出过程 平面几何投影变换,观察空间,空间转换,三维裁剪。 (四)光学模型及其算法实现 l.简单光反射模型 基本光学原理,简单光反射模型(Phong模型)的导出和实现。 2.增量式光反射模型 双线性光强插值法(Crourand Shading),双线性法向插值法(Phong Shading),加速算法。 3.局部光反射模型 局部光反射模型及其实现。 4.光源模型 光源模型及其光强分布。 5.简单光透射模型 透明效果的模拟方法,Witted光透射模型,Hall光透射模型。 6.光线跟踪显示技术

基本光线跟踪算法,光线与物体求交,光线跟踪中的简单阴影。 (五)消隐显示和阴影生成技术 1.消隐显示技术 深度缓存算法(Z-Buffer),扫描线算法,多边形区域排序算法,列表优先算法。 2.阴影生成技术 阴影扫描线算法,阴影多边形算法,阴影空间算法,阴影深度缓存算法,反走样软影生成算法。 三、思考题 1.计算机图形显示器和绘图设备表示颜色的方法各是什么颜色系统?它们之间的关系如何? 2.简述侦缓存与显示器分辨率的关系。分辨率分别为640 * 480,1280 * 1024,和2560 * 2048的显示器各需要多少字节位平面数为24的帧缓存? 3.画直线的算法有哪几种?圆圆弧的算法有哪几种?写一个画带线宽的虚线的程序。 4.写一个画饼分图的程序,用不同的颜色填充各个区域。 5.写一个显示一串字符的程序。 6.分别写出平移、旋转、缩放及其组合的变换矩阵。 7.如何用几何变换实现坐标系的变换? 8.写出几种线裁剪算法;写出几种多边形裁剪算法。 9.写出Bezier曲线和面片的几种表达形式。 10.写出B样条的矩阵形式和调和函数。为什么使用非均匀有理B样条? 11.简述边界表示法(BREP)实体构造表示法(CSG) 12.写出透视变换矩阵和各种投影(三视图、正轴测和斜投影)变换矩阵。 13.观察空间有哪些参数?其作用是什么?写出从物体空间坐标系到观察空间坐标系转换矩阵。 14.分别写出对于透视投影和平行投影的从裁剪空间到规范化投影空间的转换矩阵。 15.写出从规范化投影空间到图象空间的转换矩阵。 16.写出简单光反射模型近似公式,并说明其适用范围及能产生的光照效果。 17.写出线光源的光强公式及其积分算法。 18.试描述Witted光透射反射模型和Hall光透射模型。 19.写出光线跟踪算法。 20.写出光线与几种常见物体面的求交界法。 21.简述消隐算法的分类。 22.简述深度缓存算法及其特点。 23.简述点与多边形之间的包合性检测算法。 24.描述扫描线算法。 25.简述阴影生成算法的分类及各种算法。 四、考试样卷 请从以下每小题的所给A~D答案中选出一个正确答案: 1.计算机绘图设备一般使用什么颜色模型? A)RGB;B)CMY:C)HSV;D)HLS 2.计算机图形显示器一般使用什么颜色模型? A)RGB;B)CMY;C)HSV;D)HLS 3.分辨率为1024*1024的显示器各需要多少字节位平面数为24的侦级存? A)512KB;B)1MB;C)2MB;D)3MB

2015年计算机图形学期末复习题(学生版)

期末复习题 一.填空题 1.X扫描线算法中,每次用一条扫描线进行填充,对一条扫描线填充的过程可分为4个步骤:求交、排序、交点配对、区域填色。 2.一组型值点来指定曲线曲面的形状时,形状完全通过给定的型值点列,用该方法得到的曲线曲面称为曲线曲面的拟和,而用控制点列来指定曲线曲面 的形状时,得到的曲线曲面不一定通过控制点列,该方法称为曲线曲面 的逼近。 3.在中点画线算法中(假设直线的斜率00,下一个点取_____________,d的增量表达式为_____________;若d<0,下一个点取_____________,d的增量表达式为_____________。 4.种子填充算法的填充区域可以分为_________连通区域和____________连通区域。 5、在生成圆弧的正负法中,设圆的方程为 F(x,y)=X2+Y2-R2=0;假设求得 Pi 的 坐标为(xi,yi);则若F(xi,yi)<0,下一个点取_____________;若 F(xi,yi)>0, 下一个点取_____________。 6、在Cohen-Sutherland线段裁剪算法中,假设线段P1P2的编码分别为 CODE1、 CODE2,则若_____________成立,表示线段 P1P2 是显然可见线段;若 _____________成立,表示线段P1P2是显然不可见线段。 7.常用的直线扫描转换算法有:_____________,_______________, _______________。 8.曲线和曲面的基本表示方法有两种:______________,______________。参数表 示,非参数表示。 9.反走样的目的是_______________________________________________。

计算机图形学考试题目答案

1.用于减少或克服在“光栅图形显示器上绘制直线、多边形等连续图形时,由离散量表示连续量引起的失真”技术叫(反走样),常用方法有(提高分辨率方法),(非加权区域采样),(加权区域采样)。 2.三维对象建模类型分为(线框模型),(表面模型),(实体模型) 3.阴极管(CRT)的(聚焦系统)通过电场和磁场控制“交细….”保证…..提高分辨率。 5.圆的中点生成算法中,通常把圆分为(八)个部分。假定当前取点为(Xi,Yi),那么下一点只能是正右方的A(Xi+1,Yi)或右下方B (Xi+1,Yi‐1)设M为中点,F(M)<0.取(正右)方。 7.在光栅显示器上显示任何一种图形,实际上都是一些具有一种或多种颜色的像素集合,确立最佳逼近的像素集合,并用指定属性写像素的过程称为(光栅化)。 8.消隐算法根据算法实现时所在的坐标系或空间进行分类,可分为(物体空间的消隐算法)(图像空间的消隐算法)(物体空间和图像空间的消隐算法)三类。 9.增量算法的目的是:(加快扫描转换)。11.纹理是物体表面的细小结构,根据纹理的表现形式可分为(图像纹理)(几何纹理)(过程纹理)三类。 12.凹凸纹理是通过对(物体的表面几何性质)进行扰动来产生凹凸不平的视觉效果。13.penGL的工作方式是一种(状态机制),可以进行各种状态或技术设置。 14.画家算法原理是先把屏幕置成背景色,再把物体的各个面按其离视点远近进行排序,远者在表头近者在表尾,构成一张(深度优先)表。 1.光栅显示系统的优点是刷新率一定与图形的复杂度无关,但会产生走样。(对) 2.若要对某点进行比例、旋转交换、首先需要把坐标原点平移至该点,在新的坐标下作比例或旋转变换,然后将原点平移回去。(错) 3.光线跟踪算法与光传播方向是相同的,是视线跟踪。(错) 4.将线段两端的分区编码的逐位取逻辑“与”,若结果为零,则该线相对于裁剪窗口必为完全不见。(错) 5.Phong 明暗处理算法先计算出曲面在各多边形顶点 处的光强,然后再采用双曲线插值法确定在扫描线上每个像素处的光强值,得到多边形的光 滑颜色分布。(错)6.阴影由两部分组成,本影 和半影,位于中间全黑的轮廓分明的部分称为 半影。(错)7.非理想镜面反射中,镜面反 射指数n模拟镜面反射光在空间的汇聚程度, n越大,表面越粗糙。(错)8.用光线跟踪法渲 染,自然完成物体消隐,不用事先消隐。(对) 9.环境映射的效果比光线跟踪好,计算量也小 很多。(错)10.利用连贯性和包围盒等技术可 以提高消隐算法的效率。(对)11.(不掌 握)OpenGL是一个与硬件无关的软件接口, 可在不同操作平台之间移植。(对)12.利用不 在同一直线上的多边形3个顶点求得两个矢 量,这两个矢量的点积垂直于多边行。(错)(叉 积垂直于多边形)13.(不掌握)OpenGL中的 视图交换是将视见体内投影的物体显示在二 维的视口平面上。(对)14.在Z缓冲器消隐算 法中,第一次消隐后,阴影缓冲器保存的是距 光源最近的物体表面上的深度值。(对) 1.灰度等级为16级,分辨率为1024×1024的 显示器,至少需要的帧缓存(A.512) 2.使用下面二维图形交换矩阵,产生交换结果 为(C.以Y=X作对称轴图形) 0 1 0 A.绕原点顺时针转90° T= 1 0 0 B.绕原点逆时针转90° 0 0 1 C.以Y=X作对称轴图形 D.以Y=‐X作对称轴图形 3.下述绕坐标原点逆时针转a角的坐标交换阵 阵错的是(A.‐cosa)|A B| A.‐cosa B.‐sina C.sina D.cosa |C D| 4.在多边形逐边裁剪法中,对于某多边形的边 (其方向是S‐>P)与某条裁剪线(即窗口的 一条边),比较有四种情况,分别输出一些顶 点,错误的是(C) A. s和p均在可视一侧,输出p B. s和p均 在不可见一侧,输出0个顶点 C. s在 可见,p在不可见,则输出s和sp的交点 D. s 在不可见,p可见,则输出sp和裁剪线的交点 和p 5.透视投影中,灭点最多(D.3) 8.关于平面几何投影,正确的论述为(B.平行 几何投影中能真实反应精确的尺寸和形状。) 9.关于深度缓存消隐算法(Z-Buffer)哪一条不 正确(C) A.需要开辟两个与图像大小相等的缓存数组 B.不能用于处理对透明物体的消隐 C.不能处理空间多边形的相贯与交叉重叠 D.不需要对多边形排序 10.在扫描转换多边形中,扫描线与多边形交点 计数(C) A.扫描线与多边形交于某顶点时,且为局部最 高点,计数2次。 B.扫描线与多边形交于某 顶点时,且为局部最高点,该点两个相邻边在 扫描线一侧,计0次C.扫描线与多边形交 于某顶点时,且为局部最高点,该点两个相邻 边在扫描线两侧,计1. D.扫描线与多边形 交于某顶点时,且为局部最低点,计2 11.关于光照模型,错误的论述为(B) A.光线跟踪算法是简单的光照模型 B.全光照 模型不仅考虑了直接光源且间接光源 C.简单 光照模型,不考虑直接和间接光源,忽略了光 在环境中传递 D.简单光照模型中,对于物体间 的光反射作用,只用一个环境光变量做近似 12.种子填充算中,正确的是(C) A.按扫描线的顺序进行像素点的填充 B.四连接算法可填八连接区域 C.最简单的……由于多重递归,费时,….效 率不高。 D.八连接算法不能填四连接区域 13.齐次坐标和坐标系,错误的是(A) A.齐次坐标的引入使交换具有统一模式,便于 交换合成。 B.齐次坐标的引入,增加实现难 度,不适合便件实现 C.使用局部齐次坐标, 简化了图形对象的描述 14.光线跟踪,下列哪一种情况不再跟踪(C) A.光线的光强度对于视点光强贡献很小 B.深度小于一定值。 C.遇到某一物体 D.未遇到背景。 15.画家算法,错误的是(C) A.原理最简单B.能处理相互序适面 C.属于物体空间和图像空间的消隐算法 D.关键是对物体按深度排序,建立优先级表 1. 叙述cohen‐sutherland裁剪算法的基本 思想。Cohen_Sutherland裁剪算法的基本思 想是:对于线段P1P2分为三种情况处理。(1) 若P1P2完全在窗口内,显示线段P1P2即“取” 该线段;(2)若P1P2明显在窗口外,丢弃该 线段P1P2;(3)若线段P1P2不满足上述两条 件,则把线段P1P2分为两部分,其中一段完

计算机图形学试卷3及答案

计算机图形学作业III 一、判断题 1.Gouraud光照模型和Phone模型的绘制真实感效果和计算速度是一样的. (×) 2.光的三基色为:红绿蓝. (√) 3.镜面反射光会在反射方向附近形成高光现象。( √) 4.光线追踪算法的效果逼真,计算量也不大。(× ) 5.画家算法不能处理重叠交错的面。(√) 二、填空题 1.光照效应中,简单的明暗模型考虑光的因素有环境光、漫反射、镜面反射几种。 2.阴影可以分为软阴影、硬阴影。 3.按照光源的大小或光源离被照物体的距离,光源可以分为点光源、平行光源。 4.计算机图形显示器表示颜色的方法是RGB颜色系统,绘图设备表示颜色的方法是CMY 颜色系统,它们之间的关系为R=1-C; G=1-M; B=1-Y。 5.在Z缓冲器消隐算法中Z缓冲器每个单元存储的信息是深度。 三、问答题 1. 简要叙述Z-Buffer消隐算法的基本思想及其优点 答:Z_Buffer需要帧缓冲器保存个像素颜色,还需要一个用于保存各像素处物体深度值的Z缓冲器。在计算时,当要改变某个像素的颜色值,首先检查当前多边形的深度值是否大于该像素原来的深度值,如果大于则说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;否则说明在该像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。其优点是对多边形绘制的顺序没有特别要求,而且不需要深度排序,能够处理相互遮挡的情况。 2.何谓“光线跟踪算法”?请简要叙述光线跟踪算法的基本思想 答:光线跟踪是一种真实的现实物体的方法,该方法由Appel在1968年提出。光线跟踪方法沿着到达视点的光线的反方向跟踪,经过屏幕上每一个像素,找出与视线相交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有光源,从而算出P0点上精确的光线强度,在材质编辑中经常用来表现镜面效果。 基本思想是:对于每一个可见点,从该点向光源发出一根测试光线,若该光线在到达光源之前与其他物体相交,则该点位于阴影区域中,S i=0;否则,它受到光源的直接照射, S i=1. 3.简要光线跟踪算法的跟踪终止条件 答:(1)光线不与场景中的任何物体相交

图形学实验五 消隐算法实例实现

中国民航大学计算机与技术学院 图形学实验报告 课程名称:计算机图形学 姓名:汪何媛 系:计算机科学与技术 专业:计算机科学与技术 年级:2010级 学号:100341324 指导教师:惠康华 2012年12 月17 日

实验项目:消隐算法实例实现 一、实验目的与要求 了解各种消隐算法,初步掌握消隐算法的实现。 了解真实感图形的基本原理,掌握真实感图形绘制的基本方法,为进一步掌握计算机图形学中图形处理技术奠定基础。 二、实验内容 给定一个长方体8个顶点坐标,编程实现正投影变换和轴侧投影变换。 自给定长方体个顶点坐标,编程实现一点透视绘图。 修改上面程序,实现两点透视变换图形。 给定一个三维几何体坐标,实现它的轴侧变换和一点透视变换。 三、重要算法分析 Z-Buffer算法的基本思想是:将Z缓冲器中各单元的初始值设为-1。当要改变某像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的Z缓冲器的单元中),如果大于,说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;否则,说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。Z-Buffer算法流程如下:帧缓冲区置背景色; Z缓冲区置最小值(离观察点最远); for(场景中的每个多边形) { 扫描转换该多边形; for(多边形所覆盖的每一像素点(x,y)) {

计算多边形在该像素点的深度值z(x,y); if(z(x,y)>Z-buf中对应此像素点(x,y)的z值) { 把多边形在(x,y)处的深度值z(x,y)存入Z-buf中(x,y)处; 把多边形在(x,y)处的亮度值存入F-buf中的(x,y)处; } } } 四、程序运行截图 程序运行结果分别如以下各图所示: 其中图1至图5是按键盘中“上”箭头时凸多面体的变化过程: 图1图2

计算机图形学论文-计算机图形学概论

计算机图形学概论 摘要:计算机图形学是一门研究计算机图形原理、方法和技术的学科。本文介绍了计算机图形学中的几个研究重点,包括消隐技术、真实感图形显示技术和复杂曲线曲面造型技术,叙述了其中涉及到的消隐算法的实现、光照模型和Bezier 曲线的有关知识。 关键词:计算机图形学;消隐技术;真实感图形;曲线曲面; 1 引言 计算机图形学(Computer Graphics)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。计算机图形学一个主要目的就是要利用计算机产生令人赏心悦目的真实感图形。为此,必须建立图形所描述场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、非真实感绘制,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。 2 消隐技术 2.1 消隐算法的提出 真实感图形绘制过程中,由于投影变换失去了深度信息,往往导致图形的二义性(如图1所示)。要消除这类二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称之为消除隐藏线和隐藏面,或简称为消隐,经过消隐得到的投影图称为物体的真实图形。

计算机图形学习题库

3、画直线的算法有哪几种?画圆弧的算法有哪几种? c1)逐点比较法;(2)数值微分法;(3)Bresenham算法。 画弧线的常用方法有:(1)逐点比较法;(2)角度DDA法;(3)Bresenham算法。 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轴矢量在世界坐标系的表示 org为lcs1中原点在世界坐标系的表示 a = - x_axis.x * org.x - x_axis.y * org.y - x_axis.z * org.z b = - y_axis.x * org.x - y_axis.y * org.y - y_axis.z * org.z c = - z_axis.x * org.x - z_axis.y * org.y - z_axis.z * org.z 6、写出几种线裁剪算法;写出几种多边形裁剪算法。 (1)、矢量裁剪法(2)、编码裁剪法(3)、中点分割裁剪法多边形的裁剪算法: (1)、逐边裁剪法(2)、双边裁剪法 7、写出Bezier曲线和面片的几种表达形式。

图形学消隐

一、消隐 当我们观察空间任何一个不透明的物体时,只能看到该物体朝向我们的那些表面,其余的表面由于被物体所遮挡我们看不到。 若把可见的和不可见的线都画出来,对视觉会造成多义性。 会有后边两种情况 要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。 消隐不仅与消隐对象有关,还与观察者的位置有关。 二、消隐的分类 1.按消隐对象分类 线消隐:消隐对象是物体的边 面消隐:消隐对象是物体上的面 2.按消隐空间分类 客体(物体)空间的消隐算法: 以场景中的物体为处理单位。假设场景中有k个物体,将其中一个物体与其余k-1个物体逐一比较,仅显示它可见表面已达到消隐的目的。(此类算法通常用于线框图的消隐!) 图像空间的消隐算法: 以屏幕窗口内的每个像素为处理单元。对屏幕上每个像素进行判断,决定哪个多边形在该像素可见(这类算法是消隐算法的主流) 三、图像空间的消隐算法: 1.Z-buffer算法 2.扫描线算法 3.区域分割算法 深度排序算法: 画家算法: 这两种算法即是客体空间算法也是图像空间算法 原理:若场景中有许多物体,就是先画远的物体,再画近的物体。这样一来,近的物体自然就会盖住远的物体。

但实际情况并不理想,在三维场景中,一个物体可能有些部分远,有些部分近,所以不管用什么顺序画,都无法得到正确的结果,所以画家算法只能解决简单场景的消隐问题。 Z-buffer算法 1、也称Z缓冲区算法和深度缓冲器算法(能跟踪屏幕上每个像素深度的算法),让计算机生成复杂图形成为可能。 2、该算法有帧缓冲器和深度缓冲器,对应两个数组: Intensity(x,y)-属性数组(帧缓冲器),存储图像空间每个可见像素的光强或颜色 Depth(x,y)-深度数组(Z-buffer),存放图像空间每个可见像素的Z坐标。 Z-buffer保存的是经过投影变换后的z坐标,距离眼睛近的地方z坐标的分辨率比较大,远处的分辨率小。 3、Z-buffer算法思想 (开一个和帧缓存一样大小的存储空间,利用空间上的牺牲换取算法上的简洁) (1)先将z缓冲器中各单元的初始值置为最小值

《计算机图形学》练习题(答案)

《计算机图形学》练习题 1.直线扫描转换的Bresenham 算法 (1) 请写出生成其斜率介于0和1之间的直线的Bresenham 算法步骤。 (2) 设一直线段的起点和终点坐标分别为(1,1)和(8,5),请用Bresenham 算法生成此直线段,确定所有要绘制象素坐标。 (1)①输入线段的两个端点,并将左端点存储在(x0,y0)中 ②将(x0,y0)装入帧缓存,画出第一个点 ③计算常量?x, ?y, 2?y, and 2?y-2?x,并得到决策参数的第一个值: p0 = 2?y - ?x ④从k=0开始,在沿线路径的每个xk 处,进行下列检测: 如果pk < 0,下一个要绘制的点就是(xk +1,yk) ,并且pk+1 = pk + 2?y 否则下一个要绘制的点就是(xk +1, yk +1),并且 pk+1 = pk + 2?y- 2?x ⑤重复步骤4,共 ?x-1次 (2)m=(5-1)/(8-1)=0.57 ?x=7 ?y=4 P0=2?y-?x=1 2?y=8 2?y-2?x=-6 k pk (xk+1,yk+1) 0 1 (2,2) 1 -5 (3,2) 2 3 (4,3) 3 -3 (5,3) 4 5 (6,4) 5 -1 (7,4) 6 7 (8,5) 2.已知一多边形如图1所示,其顶点为V 1、V 2、V 3、V 4、V 5、V 6,边为E 1、E 2、E 3、E 4、E 5、E 6。用多边形的扫描填充算法对此多边形进行填充时(扫描线从下到上)要建立边分类表(sorted edge table)并不断更新活化边表(active edge list)。 (1) 在表1中填写边分类表中每条扫描线上包含的边(标明边号即可); (2) 在表2中写出边分类表中每条边结构中各成员变量的初始值 (3) 指出位于扫描线y=6,7,8,9和10时活化边表中包含那些边,并写出这些边中的x 值、 y max 值、和斜率的倒数值1/m 。 表1边分类表 4 8 1 y 10 2 3 5 6 7 9 V 1 V 2 V 3 V 4 V 5 V 6 E 1 E 2 E 3 E 4 E 5 E 6

景物空间消隐算法研究综述

景物空间消隐算法研究综述 摘要 本文从景物空间消隐算法的原理、实现及特点等方面出发,并结合目前两种比较典型的景物空间实现算法:BSP(Binary Space Partition)树算法和多边形区域算法对景物空间消隐算法进行了详细的阐述和总结。 关键字:景物空间消隐算法 BSP树算法多边形区域算法 1 前言 图形消隐就是在给定观察点(视点)和观察方向的前提下,运用某种算法把场景中物体上看不见线或面从画面中消去或者用虚线画出。目前,主要的消隐算法有:深度缓存器算法、区间扫描线算法、深度排序算法、BSP树算法、多边形区域排序算法、光线投射算法等。图形消隐技术在三维造型、真实感图形的显示、虑拟场景的显示以及在地形,地图的绘制中都发挥重要的作用。 景物空间是指物体所在的空间,即规范化投影空间;图像空间是相对于景物空间而言的,在消隐算法中,图像空间就是屏幕坐标空间。根据消隐所在的空间,我们可以将消隐算法分为三大类:景物空间的消隐算法、图像空间的消隐算法和介于两者之间的消隐算法。其中BSP树算法、多边形区域排序算法属于景物空间消隐算法,本文主要介绍了这两种算法,以期能对景物空间的消隐算法有一个整体的了解。 2 景物空间消隐算法 景物空间消隐算法是在三维坐标系中,通过分析物体模型间的几何关系,如物体的几何位置、与观察点的相对位置等,来进行隐藏面判断的消隐算法,通过比较物体和物体的相对关系来决定可见与不可见的。因此算法是以场景中的物体为处理对象的,所以算法可大体描述为如下形式: for(场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; } 这类算法将物体表面是上的k个多边形中的每一个面与其余的k-1个面进行比较,精确求出物体上每条棱边或每个面的遮挡关系。 虽然消隐算法的种类繁多,但它们必然都涉及排序和相关性这两个基本原则。(1)排序:排序是为了确定消隐对象之间的遮挡关系。通常x,y,z三个方向上都要进行排序。一般来说,先对那个坐标排序不影响消隐算法的效率,但大多数消隐算法都是先在z方向排序,确定体、面、边、点相对于观察点的距离,因为一个物体离观察点越远,越有可能被离观察点近的物体所遮挡,如图1(a)

计算机图形学大作业 课程设计 实验报告 消隐算法

安徽建筑工业学院 计算机图形学大作业 大作业名称:消隐算法演示 院(系)名称: 专业: 班级: 姓名: 学号: 指导老师: 2011 ~ 2012年度第一学期

计算机图形学——消隐算法 一、设计目的: 通过检测可见面,消除隐藏线和隐藏面,以在二维平面上显示具有真实感图形。 消除隐藏线和隐藏面,是计算机图形学中比较因难但又是十分关键的一个问题。消隐算法是决定相对于空间给定位置的观察者,哪些线、表面或物体是可见的,哪些是不可见的。本章主要展示和计论一些最常用的隐藏线和隐藏面的消隐方法及技术。 二、设计思想: 投影变换失去了深度信息,往往导致图形的二义性,要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。经过消隐得到的投影图称为物体的真实图形。 ●确定算法类 到目前为止,已经提出了很多有效的消隐算法,这些算法可以依据算法实现时所在的坐标系或空间进行分类,一般可分成两大类:对象空间算法和图像空间算法。 本文采用的就是图像空间算法(image-space methods),这种方法是对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。这种算法比较粗糙.而且按图像空间算法得到的画面在放大后往往不能令人满意。但这种算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质。 ●确定集体的实现算法 1.消除隐藏线 对造型的要求

在线框显示模型中,要求造型系统中有面的信息,最好有体的信息。 坐标变换 将视点变换到Z轴的正无穷大处,视线方向变为Z轴的负方向。 最基本的运算 判断面对线的遮挡关系.反复地进行线线、线面之间的求交运算 2.面消隐 面消隐算法的分类(图像空间的消隐算法,物体空间的消隐算法) 提高消隐算法效率的常见方法(利用连贯性,将透视投影转换成平行投影,包围盒技术,背面剔除,空间分割技术,物体分层表示) 本文是利用Z-Buffer算法的思想运用几何知识实现的,称为Z-Buffer算法的改进算法。 三、设计过程: Z-Buffer算法的思想:先将Z缓冲器中个单元的初始值置为最小值。当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的Z缓冲器的单元中),如果大于,说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;否则说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。 改进法:通过记录投影与当前扫描线相交的多边形。 1.求点的平行投影和透视投影坐标值 2.用三维点坐标直接从当前点画线到某点 3.三维坐标下直接将当前点移动到某点 4.表面三个顶点调用求该表面的法矢

实验四 图形消隐(完结版)

《计算机图形学》 实验报告 2011年1月 实验四图形综合运用 4.1 实验目的 1、通过本次实验,掌握三维图形的旋转等变换和消隐的基本概念和相关算法。 2、掌握凸多面体的消隐算法和实现。 3、进一步熟练和掌握编程环境中三维图形的绘制和消隐的程序设计方法。 4.2 实验内容 利用openGL绘制模型

4.2.1绘制一个三维几何图形简单光照例程"light0.cpp" #include "glos.h" #include #include #include void myinit(void); void CALLBACK myReshape(GLsizei w, GLsizei h); void CALLBACK display(void); void myinit(void) { GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; glLightfv(GL_LIGHT0, GL_POSITION, light_position); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); } void CALLBACK display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); auxSolidSphere(1.0); glFlush(); } void CALLBACK myReshape(GLsizei w, GLsizei h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0); else glOrtho (-1.5*(GLfloat)w/(GLfloat)h, 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity();

计算机图形学总结(自我)

计算机图形学总结(自我)

1. 什么是图橡的分誘举? 解答,在水平和垂直方向上釘单位长度(如英寸)所包含的像袁点的数目。 2. 为什么需要隐藏面消翱法? 解答;雪要用隐藏面消影法来判物体和衷面虺挡了放在它们后面的物依和衷面, 从而产生更逼真的图隊。 3. 局部光照檯型和全局光照檯型的不同之处是什么? 解答:局部光照模型主要是考虎光源岌出的光对物体的直接影响。另外,全局光照模型 徐了处 锂光源发出的光之外,还考虑其他辅助光的影响,如光线穿过適明或半透明 物体,以及光线从一个物体夷面反射到另一个夷面等9 7. 什么是中点分割裁剪法? 解答:中点分割栽勇法又称对分裁剪法,该方法用于代替求交运算。如图11所示,AB 为 FiP 2的可见部分。记PI 和P?的中点为PHo 从Pl 出发求A ,如果PlP aS 部分 可见部分不可见,则A 点在该线段上,用该绒段代PiP 2续求解;否则,用P =P2 代≡ PiP 2维续求斛。求解过程直到PiP?的匠度小于预先给定的一个常数时结束,这 时,P;为离A 最近的可见点。类似地可以求解B 。 8. 二维编码裁剪法如何对线段的端点进行编码? 解答^将用户诚用为9个区诫,每个区诚都有相应的偏码,当线段的端点落在某个区城 内 时,对该端点逬行相应的術咼。从高位开始,每位堀咼如下: 端点在>≡>τnax 上方则取1,否则取0; 谕点在y=ymin T 方则取1, 否则取0; 端点在X=X i n a X 右方则取1,否则取0; 卿点在X=Xmtn 左方则取11否则取Oo 如果线段两端点的J 位煽码全为零,则线段全部在窗口内;如果 两端点的 4位编冯 按位进行与运算,结果为非零,则此线段全部在窗口之外;其他情况下,线段却分 在窗口内,部分在窗口外。煽码栽剪法的骗码用于判断线段与窗?口的关系Q 区域偏码 (1) 第1位, (2) 第2位, (3) 第?位, (4) 第4位,

计算机图形学复习题+试卷

一、名词解释: 1.计算机图形学 研究怎样用计算机生成、处理和显示图形和科学。 2.图象处理 将客观世界中原来存在的物体映象处理成新的数字化图象。 3.凸多边形 是指这样一类多边形:在多边形内任选两个点,将这两个点用线段连接后,此线段上所有的点都在多边形内。 4.种子填充算法 根据已知多边形区域内部的一个象素点来找到区域内其它象素点,从而对多边形区域内部进行填充。 5.窗口 在用户坐标系中的图形根据需要常用一个矩形区域确定一个矩形部分,然后将这个区域内的图形输出到屏幕上去,这个矩形称这窗口。 6.视区 在图形设备的显示范围内,由设备坐标系定义的一个矩形区域。 7.图形变换 指对图形的几何信息经过几何变换后产生新的图形。 8.齐次坐标系 就是N维向量由N+1维向量来表示。一个N维向量的齐次坐标表示不惟一,由哑坐标决定大小。 9.轮廓线 指物体与周围环境的交线。 10.图形的翼边表示 图形的一种表示方法。表示一个物体,可以指出它的相邻边及相邻面、有关的端点等,如对于一条边,指出它相邻的面、边的两个端点以及四条邻边,这四条边好象翅膀一样。 11.图形消隐 计算机为了反映真实的图形,把隐藏的部分从图中消除。 12.本影 物体表面上那些没有被光源直接照射的部分。 13.半影 景物表面上那些被特定光源直接照射,但并非被所有特定光源直接照射的部分。 14.用户坐标系 用户为处理自已的图形时所采用的坐标系,单位由用户自己决定。 15.规范化设备坐标系 将各个设备坐标系中的数据化为统一的数据范围从而得到的设备坐标系。 16.光线跟踪 光线跟踪是自然界光照明物理过程的近似逆过程,即逆向跟踪从光源发出的光经环境景物间的多次反射、折射后投射到景物表面,最终进入人眼的过程. 17、走样 在光栅显示设备上,由于象素点和象素点之间是离散的,因此用象素点阵组合出的图形,与真实景物之间必然存在一定的误差。比如,直线或曲线往往呈现锯齿状,细小物体在图上显示不出来等。这种现象就是图形的走样 18、隔行扫描

《计算机图形学》习题

一、名词解释 计算机图形学、图形消隐、裁剪、走样、反走样、参数方程、曲线拟合、曲线插值、曲线的参数化、区域填充、扫描转换 二、判断正误(正确写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用于控制端点函数值

《计算机图形学(本科)》20年12月作业考核【四川农业大学答案】

《计算机图形学(本科)》20年12月作业考核 红字部分为答案! 单选题 1..扫描消隐算法在何处利用了连贯性(相关性Coherence)? (1)计算扫描线与边的交点;(2)计算多边形在其边界上的深度; (3)计算多边形视窗任意点处的深度值;(4)检测点与多边形之间的包含性。 A.仅在(1)和(2)处 B.仅在(1)和(3)处 C.仅在(1)(2)和(3)处 D.在(1)(2)(3)(4)处 2.4.下面哪个答案不是定位任务需要考虑的问题() A.分辨率 B.坐标系统 C.文字识别 D.反馈 3.17.光线跟踪算法中包含了哪些光照效果? () A.仅有光反射 B.仅有光透射 C.有光反射和光透射 D.都没有 4.1.在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的?() A.S和P均在可见的一侧,则输出S和P. B.S和P均在不可见的一侧,则输出0个顶点. C.S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点. D.S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P. 5.在计算机图形学中,用矢量表示的图一般称为 A.动画 B.图象 C.图形 D.图片 6.在用射线法进行点与多边形之间的包含性检测时,下述哪一个操作不正确? A.当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数0次 B.当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数2次 C.当射线与多边形交于某顶点时且该点的两个邻边在射线的两侧时,计数1次 D.当射线与多边形的某边重合时,计数1次 7.6.在面片的数量非常大的情况下哪一个消隐算法速度最快?() A.深度缓存算法(Z-Buffer) B.扫描线消隐算法 C.深度排序算法(画家算法) D.不知道

相关文档
最新文档