1、图形学简介1.1、解释计算机图形学中图形与图像两个概念的区别。答:图形是指由外部轮廓线条构成的矢量图。即由计算机绘制的直线、圆、矩形、曲线、图表等;而图像是由扫描仪、摄像机等输入设备捕捉实际的画面产生的数字图像,是由像素点阵构成的位图。(百度知道)·从广义上说,凡是能够在人的视觉系统中形成视觉印象的客观对象都称为图形。它包括人年说观察到的自然界的景物,用照相机等设别所获得的图片,用绘图工具绘制的工程图,各种人工美术绘画和用数学方法描述的图形等。·图形学中的图形一般是指由点、线、面、体等几何要素(geometricattribute)和明暗、灰度(亮度)、色彩等视觉要素(visualattribute)构成的,从现实世界中抽象出来的图或形。图形强调所表达对象的点、线、面、结构等几何要素。·而图像则只是指一个二维的像素集合,至于这个集合所构成的图案的意义、几何元素等,计算机并不知晓。可以一条直线作比方来说明。1.2、解释“计算机图形学”研究的主要内容。答:是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。(百度百科)·Modeling建模构建三维模型的场景·Rendering绘制(渲染)渲染的三维模型,计算每个像素的颜色。颜色是有关照明,环境,对象材料等。·Animation动画1.3、能列举计算机图形学的一些应用实例。答:CAD工业制造仿真、电影特效合成、3D动画、3D游戏……2、GraphicDevicesinComputerSystem2.1、了解图形输出设备中“阴极射线管(CRT)”的主要工作原理。答:显示屏、电子枪、和偏转控制装置三部分组成。当灯丝被加热时,电子枪阴极释放出电子,电子经过聚焦系统和加速系统后形成电子束,经过偏转控制装置时轨迹发生变化,打在显示屏磷粉涂层上发光。·Storing:为每个象素设置一个电容维持一定的电压,使象素持续发光。·Refresh:不断重复轰击像素,使其不断重复发光;由于人眼的视觉暂留效应,就会产生象素持续发光的印象。2.2、解释“随机扫描显示器”与“光栅扫描显示器”的不同。答:随机扫描显示器显示图形时,电子束的移动方式是随机的,电子束可以在任意方向上自由移动,按照显示命令用画线的方式绘出图形,因此也称矢量显示器。而光栅扫描显示器显示图形时,电子束依照固定的扫描线和规定的扫描顺序进行扫描。电子束先从荧光屏左上角开始,向右扫一条水平线,然后迅速地回扫到左边偏下一点的位置,再扫第二条水平线,照此固定的路径及顺序扫下去,直到最后一条水平线,即完成了整个屏幕的扫描。随机扫描显示器依靠显示文件对屏幕图形进行刷新;光栅扫描显示器则依靠帧缓存实现对屏幕图形的刷新。·随机扫描显示器(向量显示器):控制电路比较复杂,不适于显示非常复杂的图像,已基本被淘汰。·光栅扫描显示器:似乎很笨,但控制简单,可绘制任意复杂的图像,故远远优于vectordisplay;出现以后迅速成为主流,并大大促进了图形学的发展(因其能够绘制任意复杂的图像)。也有采用隔行扫描的,即先扫描所有偶数行,再扫描所有奇数行。2.3、理解有关光栅扫描显示器的一些主要概念:光栅、像素、扫描线、分辨率(resolusion)、帧缓存(framebuffer)、刷新频率(refreshrate)。光栅:一个点或点的矩形阵列像素:一个点或图片元素的光栅扫描线:一个像素行分辨率:该点没有可显示的最大数目重叠的CRT被称为该决议帧缓存:图片定义存储在一个称为帧缓冲区或刷新缓冲区的内存区刷新率:在其中一张照片是在屏幕上绘制频率称为刷新率3、AlgorithmsforDrawing2DPrimitives3.1解释DDA算法的原理,并写出DDA算法的主要流程答:取整voidlineDDA(intxs,intys,intxe,intye){intk=abs(xe–xs);if(abs(ye–ys)k)thenk=abs(ye–ys);floatxincre=(xe–xs)/k;floatyincre=(ye–ys)/k;floatx,y;for(i=1;i=k;i++){setPixel(round(x),round(y));x=x+xincre;y=y+yincre;}}4.1解释何为扫描转换,解释何为区域填充,两者的区别是什么?答:光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示,这种转换称为多边形的扫描转换。区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。多边形的扫描转换主要是通过确定穿越区域的扫描线的覆盖区间来填充。区域填充是从给定的位置开始涂描直到指定的边界条件为止。1.基本思想不同:多边形的扫描转换是指将多边形的顶点表示转换成点阵表示。在扫描转换过程中利用了多边形各种形式的连贯性。区域填充只改变区域的颜色,不改变区域的表示方法。在填充过程中利用了区域的连通性。2.算法的要求不同:在区域填充中要求指定区域内的一点为种子点,然后从这点开始对区域进行着色。对多边形的扫描转换没有这个要求。3.对边界的要求不同:在多边形的扫描转换中要求每一条扫描线与多边形边界的交点个数是偶数。在区域填充中要求4连通区域的边界为封闭的8连通区域,而8连通区域的边界为封闭的4连通区域。4.2理解扫描线填充算法(Scan-linePolygonFillAlgorithm)的基本步骤答:求出扫描线与多边形边的交点2)将交点按照x升序排列3)将排好序的交点两两配对,然后绘制相应线段。4.2.1数据结构的使用答:边的分类表(EdgeTable,ET);边的活化链表(ActiveEdgeList,AEL)4.2.2奇点的处理方法一是当扫描线与顶点相交时,交点的取舍。当与那个顶点关联的边在扫描线同侧时,交点自然算两次,当与那个顶点关联的边在扫描线两侧时,交点只能算一次。我们使用“下闭上开”的办法。二是多边形边界上的像素取舍,我们采用“左闭右开”的办法。4.3理解何为四连通区域和八连通区域答:4-连通区域:从区域上的一点出发,通过访问已知点的4-邻接点,在不越出区域的前提下,遍历区域内的所有象素点。8-连通区域:从区域上的一点出发,通过访问已知点的8-邻接点,在不越出区域的前提下,遍历区域内的所有象素点。4.4解释在光栅化显示中,何为走样?走样的原因是什么?列举出“走样”可能造成的显示问题定义:用离散量表示连续量引起的失真,就叫做走样(Aliasing)。原因:数学意义上的图形是由无线多个连续的、面积为零的点构成;但在光栅显示器上,用有限多个离散的,具有一定面积的象素来近似地表示他们。走样造成的显示问题:一是光栅图形产生的阶梯形。一是图形中包含相对微小的物体时,这些物体在静态图形中容易被丢弃或忽略,在动画序列中时隐时现,产生闪烁。4.5解释克服“走样”的两类方法以面积采样代替点采样(边界使用过度色阶)超采样(高分辨率计算,低分辨率显示)5、GraphicsPipeline(图形流程)5.2图形流程中Transformation所要完成的任务是什么,它包含哪几个主要过程?任务是将三维模型转换为二位图表主要过程有:几何变换、投影变换、裁减、窗口到视口的变换5.2.1、写出平移变换(Translation)与放缩变换(Scaling)的矩阵表达式平移变换:放缩变换:5.2.2、能够推出图形绕某一坐标轴旋转的矩阵表达式Rotationrelativetothey-axisandx-axis5.2.3、解释几何变换中为何需要采用齐次坐标系,能够写出上述变换矩阵的齐次坐标表达形式许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为p'=m1*p+m2(m1旋转缩放矩阵,m2为平移矩阵,p为原向量,p'为变换后的向量)。引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为p'=M*p的形式。即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。平移:→缩放:zyxssszyxzyx000000zyxzyxzyx100010001zyxzyxzyx100010001110001000100011zyxzyxzyx旋转:Globaltransformation1.每一次变换均可以看成是相对于原始坐标系执行的2.我们前面讲的平移、放缩和旋转矩阵实现的都是全局变换Localtransformation1.每一次变换均可以看成是在上一次变换所形成的新的坐标系中进行2.可以通过颠倒矩阵相乘的顺序来实现局部变换每次的变换矩阵都乘在原矩阵的右侧,而最后变换顶点时,顶点也乘在总体变换矩阵的右侧。这样就造成了先调用的变换实际上是后执行的,因而如果是按照OpenGL的变换语句的顺序来理解的话,其效果应当是局部变换的效果。因此,如果按照变换语句的顺序来理解的话,OpenGL采用的是localtransformation5.2.6、写出OpenGL中有关几何变换的相关函数voidglTranslated(doublex,doubley,doublez)//平移voidglScale{fd}(TYPESx,TYPESy,TYPESz)//缩放voidglRotate{fd}(TYPEangle,TYPEx,TYPEy,TYPEz);//旋转5.3.1、解释何为透视投影,何为平行投影一个点光源把一个图形照射到一个平面上、这个图形的影子就是它在这个平面上的中心投影,中心投影后的图形与原图形相比虽然改变较多、但直观性强、看起来与人的视觉效果一致。有时光线是一组互相平行的射线,例如太阳光或探照灯光的一束光中的光线。由平行光线形成的投影是平行投影(parallelprojection).5.3.2、写出OpenGL中关于这两种投影方式的函数透视投影:voidglFrustum(…);voidgluPerspective(…);平行投影:voidglOrtho();裁剪裁剪操作对编程人员来说是隐藏的;目前图形流水线中的裁剪发生在投影变换之前。裁剪之后往往就不是以前的多边形了,可能变成了一个或多个多边形。OpenGL中是三维裁剪。6、OpenGL6.1、“OpenGL是一个状态机”,这句话如何解释?整个绘制操作会按照固定的流程进行,仿佛一台虚拟的机器。OpenGL函数只是用来设置这台虚拟机器的一些状态参数,而并不是用来真正执行绘制操作的。6.2、OpenGL中的模型变换(Model-ViewTransformation)采用了栈来管理变换矩阵,解释glLoadIdentity(),glPushMatrix()和glPopMatrix()这三个栈管理函数的作用glLoadIdentity()---Setthestacktopasanunitmatrix(使栈顶矩阵为单位矩阵)glPushMatrix()-----将栈顶矩阵复制一份,入栈.glPopMatrix()-----退栈.6.4、如何计算一个面片的法向?Normaliscloselyrelatedtothelightingcomputation(法向与光照计算紧密相关);NormalsshouldbegivenbyprogrammersThenormaloftrangle(v1,v2,v3):vector1=v2-v1;vector2=v3-v1;NormalVectoristhecrossproductofve
本文标题:计算机图形学总结
链接地址:https://www.777doc.com/doc-5603544 .html