测品娱乐
您的当前位置:首页计算机图形学总结

计算机图形学总结

来源:测品娱乐

1、图形学简介1.1、解释计算机图形学中图形与图像两个概念的区别。

答:图形是指由外部轮廓线条构成的矢量图。即由计算机绘制的直线、圆、矩形、曲线、图表等;而图像是由扫描仪、摄像机等输入设备捕捉实际的画面产生的数字图像,是由像素点阵构成的位图。(百度知道)

从广义上说,凡是能够在人的视觉系统中形成视觉印象的客观对象都称为图形。它包括人年说观察到的自然界的景物,用照相机等设别所获得的图片,用绘图工具绘制的工程图,各种人工美术绘画和用数学方法描述的图形等。

图形学中的图形一般是指由点、线、面、体等几何要素(geometricattribute)和明暗、灰度(亮度)、色彩等视觉要素(visualattribute)构成的,从现实世界中抽象出来的图或形。图形强调所表达对象的点、线、面、结构等几何要素。

而图像则只是指一个二维的像素集合,至于这个集合所构成的图案的意义、几何元素等,计算机并不知晓。可以一条直线作比方来说明。

1.2、解释“计算机图形学”研究的主要内容。

答:是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。(百度百科)

Modeling建模构建三维模型的场景Rendering绘制(渲染)

渲染的三维模型,计算每个像素的颜色。颜色是有关照明,环境,对象材

Animation动画

1.3、能列举计算机图形学的一些应用实例。

答:CAD工业制造仿真、电影特效合成、3D动画、3D游戏

2、GraphicDevicesinComputerSystem

2.1、了解图形输出设备中“阴极射线管(CRT)”的主要工作原理。

答:显示屏、电子、和偏转控制装置三部分组成。当灯丝被加热时,电子阴极释放出电子,电子经过聚焦系统和加速系统后形成电子束,经过偏转控制装置时轨迹发生变化,打在显示屏磷粉涂层上发光。

Storing:为每个象素设置一个电容维持一定的电压,使象素持续发光。

Refresh:不断重复轰击像素,使其不断重复发光;由于人眼的视觉暂留效应,就会产生象素持续发光的印象。

2.2、解释“随机扫描显示器”与“光栅扫描显示器”的不同。

答:随机扫描显示器显示图形时,电子束的移动方式是随机的,电子束可以在任意方向上自由移动,按照显示命令用画线的方式绘出图形,因此也称矢量显示器。而光栅扫描显示器显示图形时,电子束依照固定的扫描线和规定的扫描顺序进行扫描。电子束先从荧光屏左上角开始,向右扫一条水平线,然后迅速地回扫到左边偏下一点的位置,再扫第二条水平线,照此固定的路径及顺序扫下去,直到最后一条水平线,即完成了整个屏幕的扫描。随机扫描显示器依靠显示文件对屏幕图形进行刷新;光栅扫描显示器则依靠帧缓存实现对屏幕图形的刷新。

随机扫描显示器(向量显示器):控制电路比较复杂,不适于显示非常复杂的图像,已基本被淘汰。

光栅扫描显示器:似乎很笨,但控制简单,可绘制任意复杂的图像,故远远优于vectordisplay;出现以后迅速成为主流,并大大促进了图形学的发展(因其能够绘制任意复杂的图像)。也有采用隔行扫描的,即先扫描所有偶数行,再扫描所有奇数行。

2.3、理解有关光栅扫描显示器的一些主要概念:光栅、像素、扫描线、分辨率(resolusion)、帧缓存(framebuffer)、刷新频率(refreshrate)。

光栅:一个点或点的矩形阵列

像素:一个点或图片元素的光栅

扫描线:一个像素行

分辨率:该点没有可显示的最大数目重叠的CRT被称为该决议

帧缓存:图片定义存储在一个称为帧缓冲区或刷新缓冲区的内存区

刷新率:在其中一张照片是在屏幕上绘制频率称为刷新率

3、AlgorithmsforDrawing2DPrimitives

答:取整

voidXXX(int_s,intys,int_e,intye)

intk=abs(_e–_s);

if(abs(ye–ys)>k)thenk=abs(ye–ys);

float_incre=(_e–_s)/k;

floatyincre=(ye–ys)/k;

float_,y;

for(i=1;i<=k;i++){

setPi_el(round(_),round(y));

_=_+_incre;

y=y+yincre;

3.2解释Bresenham直线算法的基本原理

3.3解释Bresenham画圆算法的基本原理

3.4解释中点圆算法(Midpointcirclealgorithm)的基本原理

4、Scan-lineConversionandAreaFilling

4.1解释何为扫描转换,解释何为区域填充,两者的区别是什么

答:光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示,这种转换称为多边形的扫描转换。区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。多边形的扫描转换主要是通过确定穿越区域的扫描线的覆盖区间来填充。区域填充是从给定的位置开始涂描直到指定的边界条件为止。

1.基本思想不同:多边形的扫描转换是指将多边形的顶点表示转换成点阵表示。在扫描转换过程中利用了多边形各种形式的连贯性。区域填充只改变区域的颜色,不改变区域的表示方法。在填充过程中利用了区域的连通性。

2.算法的要求不同:在区域填充中要求指定区域内的一点为种子点,然后从这点开始对区域进行着色。对多边形的扫描转换没有这个要求。

3.对边界的要求不同:在多边形的扫描转换中要求每一条扫描线与多边形边界的交点个数是偶数。在区域填充中要求4连通区域的边界为封闭的8连通区域,而8连通区域的边界为封闭的4连通区域。

4.2理解扫描线填充算法(Scan-linePolygonFillAlgorithm)的基本步骤

答:求出扫描线与多边形边的交点2)将交点按照_升序排列3)将排好序的交点两两配对,然后绘制相应线段。

4.2.1数据结构的使用

答:边的分类表(EdgeTable,ET);边的活化链表(ActiveEdgeList,AEL)

4.2.2奇点的处理方法

一是当扫描线与顶点相交时,交点的取舍。当与那个顶点关联的边在扫描线同侧时,交点自然算两次,当与那个顶点关联的边在扫描线两侧时,交点只能算一次。我们使用“下闭上开”的办法。

二是多边形边界上的像素取舍,我们采用“左闭右开”的办法。

4.3理解何为四连通区域和八连通区域

答:4-连通区域:从区域上的一点出发,通过访问已知点的4-邻接点,在不越出区域的前提下,遍历区域内的所有象素点。

8-连通区域:从区域上的一点出发,通过访问已知点的8-邻接点,在不越出区域的前提下,遍历区域内的所有象素点。4.4解释在光栅化显示中,何为走样走样的原因是什么列举出“走样”可能造成的显示问题

定义:用离散量表示连续量引起的失真,就叫做走样(Aliasing)。

原因:数学意义上的图形是由无线多个连续的、面积为零的点构成;但在光栅显示器上,用有限多个离散的,具有一定面积的象素来近似地表示他们。走样造成的显示问题:一是光栅图形产生的阶梯形。一是图形中包含相对微小的物体时,这些物体在静态图形中容易被丢弃或忽略,在动画序列中时隐时现,产生闪烁。

4.5解释克服“走样”的两类方法

以面积采样代替点采样(边界使用过度色阶)超采样(高分辨率计算,低分辨率显示)

4.6理解区域填充算法

5、GraphicsPipeline(图形流程)5.1、画出目前计算机中图形显示的主要流程(GraphicsPipeline),并解释各模块的主要任务。

答:流程:变换(Transformation)、光栅化(Rasterization)、片元处理(Fragmentoperations)、帧缓存(Framebuffer)3Dmodel

2Dgraph----transformation(verte_operations)

2Dgraph2Dimage----rasterizationandfragmentoperations

5.2图形流程中Transformation所要完成的任务是什么,它包含哪几个主要过程

任务是将三维模型转换为二位图表

主要过程有:几何变换、投影变换、裁减、窗口到视口的变换

5.2.1、写出平移变换(Translation)与放缩变换(Scaling)的矩阵表达式

平移变换:放缩变换:

_100__y010yy_s_0y0syz001zz

5.2.2、能够推出图形绕某一坐标轴旋转的矩阵表达式

Rotationrelativetothey-a_isand_-a_isz000_0yszz

5.2.3、解释几何变换中为何需要采用齐次坐标系,能够写出上述变换矩阵的齐次坐标表达形式

许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为p'=m1p+m2(m1旋转缩放矩阵,m2为平移矩阵,p为原向量,p'为变换后的向量)。

引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为p'=Mp的形式。即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。

_100___10平移:0__y010yyy010yy→z001zzz001zz100011

5.2.4、能够写出物体经过连续变换后的组合矩阵

5.2.5、理解全局变换与局部变换的区别,解释OpenGL中所采用的变换矩阵结合方式

Globaltransformation

1.每一次变换均可以看成是相对于原始坐标系执行的

2.我们前面讲的平移、放缩和旋转矩阵实现的都是全局变换

Localtransformation

1.每一次变换均可以看成是在上一次变换所形成的新的坐标系中进行

2.可以通过颠倒矩阵相乘的顺序来实现局部变换

每次的变换矩阵都乘在原矩阵的右侧,而最后变换顶点时,顶点也乘在总体变换矩阵的右侧。这样就造成了先调用的变换实际上是后执行的,因而如果是按照OpenGL的变换语句的顺序来理解的话,其效果应当是局部变换的效果。因此,如果按照变换语句的顺序来理解的话,OpenGL采用的是localtransformation

5.2.6、写出OpenGL中有关几何变换的相关函数

voidglTranslated(double_,doubley,doublez)/平移

voidglScale{fd}(TYPES_,TYPESy,TYPESz)/缩放

voidglRotate{fd}(TYPEangle,TYPE_,TYPEy,TYPEz);/旋转

5.3、投影变换(Projection)

5.3.1、解释何为透视投影,何为平行投影

一个点光源把一个图形照射到一个平面上、这个图形的影子就是它在这个平面上的中心投影,中心投影后的图形与原图形相比虽然改变较多、但直观性强、看起来与人的视觉效果一致。

有时光线是一组互相平行的射线,例如太阳光或探照灯光的一束光中的光线。由平行光线形成的投影是平行投影(parallelprojection).

5.3.2、写出OpenGL中关于这两种投影方式的函数

透视投影:voidglFrustum(…);

voidgluPerspective(…);

平行投影:voidglOrtho();

裁剪操作对编程人员来说是隐藏的;目前图形流水线中的裁剪发生在投影变换之前。裁剪之后往往就不是以前的多边形了,可能变成了一个或多个多边形。OpenGL中是三维裁剪。

5.4、窗口到视口的变换

5.4.1理解窗口到视口的变换过程

5.4.2如何才能使绘制的物体不会因“窗口到视口的变换”而变形

6、OpenGL

6.1、“OpenGL是一个状态机”,这句话如何解释

整个绘制操作会按照固定的流程进行,仿佛一台虚拟的机器。

OpenGL函数只是用来设置这台虚拟机器的一些状态参数,而并不是用来真正执行绘制操作的。

6.2、OpenGL中的模型变换(Model-ViewTransformation)采用了栈来管理变换矩阵,解释glLoadIdentity(),glPushMatri_()

和glPopMatri_()这三个栈管理函数的作用

glLoadIdentity()---Setthestacktopasanunitmatri_(使栈顶矩阵为单位矩阵)

glPushMatri_()-----

将栈顶矩阵复制一份,入栈.glPopMatri_()-----退栈.

6.3、给出一段模型变换的例程,可以解释它所完成的变换操作

6.4、如何计算一个面片的法向

Normaliscloselyrelatedtothelightingcomputation(法向与光照计算

紧密相关);Normalsshouldbegivenbyprogrammers

Thenormaloftrangle(v1,v2,v3):

vector1=v2-v1;

vector2=v3-v1;

NormalVectoristhecrossproductofvector1andvector2

7、Visible-SurfaceDetection(消隐)

7.1、解释图形显示中为何需要消隐处理

在绘制时需要消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。

消除二义性提高绘制效率

7.2、何为depthbuffer理解z-buffer方法的原理

Z轴缓冲也被称为深度缓冲,它保存在屏幕上每个像素的深度值。在把显示对象的每个面上每一点的颜色值填入帧缓冲器相应单元前,要把这点的z坐标值和z缓冲器中相应单元的值进行比较。只有前者大于后者时才改变帧缓冲器的那一单元的值,同时z缓冲器中相应单元的值也要改成这点的z坐标值。如果这点的z坐标值小于z缓冲器中的值,则说明对应象素已经显示了对象上一个点的属性,该点要比考虑的点更接近观察点。

对显示对象的每个面上的每个点都做了上述处理后,便可得到消除了隐藏面的图。

注意:如果当前像素的深度和深度缓存中的值相等,那么也认为当前像素被挡住了。

Z-Buffer算法在像素级上以近物取代远物。面片在屏幕上的出现顺序是无关紧要的。

这种取代方法实现起来远比总体排序灵活简单,有利于硬件实现;缺点:占用空间大,没有利用图形的相关性与连续性

8、Photo-realisticRenderinginComputerGraphics8.1、写出Phong光照明模型,理解模型中三个部分的意义及计算方法,并能解释各部分参数的含义

IlluminationModel(光照明模型)——Ambient+Diffuse+Specular

I=kaIa+kdIlcosθ+ksIlcosnΦ=kaIa+kdIl(N.L)+ksIl(R.V)n

Phong光照明模型

XXX(漫反射)

漫反射光可以认为是光穿过物体表面层被部分吸收后,重新发射出来的光。因此漫反射光均匀地散布在各个方向.观察者不论站在哪一方位上.他所观察到的漫射光的强度均相等。粗糙的物体表面可以理解为由一系列各向异性的微小平面构成的,这些平面将把光线反射到不同的方向上。由于这些微小平面的数量相当多,

因此,从总体上可视为光线均匀地反射到各个方向。越斜的灯光,反射之强度越弱。

N.L计算的就是法向和光线方向夹角的cos值。Kd反映了当前物体表面的反射属性。I,Il和kd都可以分解为针对R,G,B的三个分量。

XXX(镜面反射)

镜面反射光在空间中的分布具有一定的方向性。它们朝空间一定方向会聚,故表面上高光区域的位置随着观察者的方位不同而变化。根据光的反射定律,反射光线和入射光线对称地分布于表面法向的两侧。对于纯镜面,入射至表面上的光线将严格地遵循光的反射定律单向反射出去。

XXX(环境光)

准确计算环境光照是非常非常困难的,但是在一般的情况下,物体表面的明暗

变化主要还是决定于光源的直接照射,环境光的影响不是非常的直接。因此人们就将环境光大为简化,只用一个常数来表达它。环境光最难模拟环境光非常复杂,但是Phong模型中只采用一个常数来表示之Ie=kaIa

Ia:环境光亮度;ka:物体表面的环境光反射系数

8.2、Blinn-Phong模型和Phong模型的区别在哪里

实际使用中,由于R计算不方便,因此常用(N.H)代替(R.V);H为沿L和V的角平分线的单位向量。

H的计算非常方便。当V与R的夹角变大或变小时,H与N的夹角也同时变大或变小(事实上,可以证明:V与R的夹角是两倍的H与N的夹角),因此采用(N.H)是可以反映高光变化规律的。

因篇幅问题不能全部显示,请点此查看更多更全内容