图形学与可视化计算复习题2014(共12页).doc
精选优质文档-倾情为你奉上图形学与可视化计算复习题20141 简述计算机图形学的含义计算机图形学是利用计算机研究图形的表示、生成、处理和显示的学科。2 计算机图形主要分哪两类?线框图与真实感图形各有什么特点?图形主要分为两类,一类是由线条组成的图形,如工程图、等高线地图、曲面的线框图等,另一类是类似于照片的明暗图(Shading),也就是通常所说的真实感图形。3 简述科学计算可视化的含义科学计算可视化是指运用计算机图形学和图像处理技术,将科学计算过程中或计算结果的数据转换为图形或图像在屏幕上显示出来并进行交互处理的理论、方法和技术。 4 三维数据可视化有哪几类主要的绘制方法?第一类是面绘制方法,首先由三维空间数据场构造出中间几何图元(如物体表面、等值面等),再由传统的计算机图形学技术实现面绘制第二类是体绘制方法,不需要构造中间几何图元,直接由三维数据生成屏幕上的二维图像,称为体绘制(Volume Rendering)算法,或称为直接体绘制(Direct Volume Rendering)方法第三类是混合绘制方法。在可视化应用中,有时需要将几何形体与体数据场在一幅图像中混合显示,将面绘制和体绘制技术结合起来,如通过面绘制表现骨骼,而通过直接体绘制表现肌肉、血管等结构,称为混合绘制(Hydrid Rendering)。5 光栅扫描显示器有什么特点?有什么优点和缺点?光栅扫描方式将需要显示的图形点阵分解成红、绿、蓝三基色,并将各像素对应的色彩编码储存在帧缓存器内,用来控制电子束在每一像素点的亮度,因而可在屏幕上产生一幅绚丽多彩的图像光栅扫描显示器则依靠帧缓存实现对屏幕图形的刷新。光栅扫描显示器最突出的优点是:它不仅可以显示物体的轮廓线,而且可以对每一象素的灰度或色彩进行控制,能够进行面积填充,为真实感图形的显示提供了技术基础。 6 简述光栅图形的特点光栅图也叫做位图、点阵图、像素图,简单的说,就是最小单位由像素构成的图,只有点的信息.缩放时会失真。每个像素有自己的颜色,7简述图形学中光栅化的含义为了显示三角形的三条边,图形系统必须生成一组像素,使这组像素看起来像三角形的边线。将几何形体的数据转换为像素在帧缓存里的位置和颜色的过程称为光栅化或扫描转换。8 简述图形学中帧缓存的含义 这里“帧”是指整个屏幕范围,该存储器保存一组对应于屏幕所有像素点的颜色值,电子束在屏幕上逐点移动时从帧缓存中取出对应的值,控制像素点的颜色和亮度。9 屏幕坐标系的原点,x轴及y轴的方向一般是怎么规定的?10 屏幕上的图形坐标系(笛卡尔坐标系)的x轴及y轴的方向一般是怎么规定的?右手系的笛卡尔坐标系中给出对象的几何描述。11 简述计算机图形学中建模坐标系、世界坐标系以及观察坐标系的基本概念以及它们之间的联系。通常,在构造或显示一个场景的过程中会使用几个不同的笛卡尔坐标系。为了建模的方便,首先在各自的坐标系统中构造每一个对象的形状,这些坐标系称为建模坐标系或局部坐标系。指定了单个物体的形状后,就可以将所有对象放到一个统一的世界坐标系中,构造用户设定的场景,这一步涉及从各自的建模坐标系到统一的世界坐标系的变换。如可以在各个独立的建模坐标系中分别定义自行车的零件(车轮、车架、坐垫、把手、齿轮、链条、踏板等),然后将这些零件在世界坐标系中装配起来。也可以直接在世界坐标系中建立各对象的形状,从而跳过建模坐标和建模变换两步,但对复杂场景,建模过程会很复杂。12 计算机图形学中基本图元一般包括哪些?包括字符串和几何单元,如点、直线、曲线、填充区域(通常为多边形)等13 OpenGL中所有几何图元最终都由顶点来描述,将每组顶点放在函数glBegin() 和glEnd()之间,由glBegin() 的参数来指定相应的几何图元,参数GL_POINTS、GL_LINES、GL_TRIANGLES各有什么含义?GL_POINTS独立的点GL_LINES一对顶点表示一条线段GL_TRIANGLES三个顶点构成的三角形每相邻的两个两点组成一对,在该两点之间绘直线14 绝大多数OpenGL函数都遵循一种命名约定,解释函数glColor3f()中gl、Color、3及f的含义。 如glColor3f的根名称是Color,前缀gl表示gl函数库,后缀3f表示这个函数接受3个浮点类型的参数。15直线段扫描转换的数字微分法中,当线段斜率的绝对值小于1或大于1时,扫描转换的方式有什么不同?为什么要这么做?注意上述分析的算法仅适用于|k|1的情形。在此情况下,x每增加1,y至多增加1。当 |k|>1时,必须把x,y的地位互换: Xi+1= xi+1/k该算法能在有限的线段长度内,根据斜率的不同合理确定尽可能多的像素来逼近该直线段。16 直线段扫描转换的Bresenham算法中,当线段斜率的绝对值小于1或大于1时,扫描转换的方式有什么不同?为什么要这么做?斜率小于1的直线的扫描转换过程,沿线段路径的像素位置由以单位x间隔的采样来确定。从给定线段的左端点(x0, y0)开始,逐步处理每个后继列(x位置),并在其扫描线y值最接近线段的像素上绘出一点。 当斜率大于1时,也必须把x,y的地位互换。 思路:固定直线的两个端点,控制总体误差。17 简述凸多边形的扫描线填充算法扫描线填充算法的原理是:待填充区域按y方向(或x方向)扫描线的顺序,计算扫描线与多边形的相交区间,再用指定的颜色填充这些区间的像素,区间的端点可以通过计算扫描线与多边形边界的交点求得。18 为什么图形系统一般将多边形限定为凸多边形,最简单的凸多边形是什么?对凹多边形的填充判断比较复杂。对于凸多边形,扫描线填充过程可以简化,每一条扫描线与多边形至多有两个交点,可以使用坐标范围来确定哪些边与扫描线相交,当扫描线与单个顶点相交时,仅绘出该点本身,当有两个交点时,两交点之间的部分都是多边形内部的点。19 一个多边形有几个面?OpenGL中下列函数定义了多边形的哪一种环绕方向为正向?glFlortFace (GL_CW); glFlortFace (GL_CCW)一个多边形有两个面,正面和背面。顶点的指定次序以及排列方向称为环绕(winding)GL_CW定义顺时针环绕的多边形为正面,参数GL_CCW定义逆时针环绕的多边形为正面。20 字符图元中的字体有哪两种表示方法?第一种称为位图字体(或光栅字体),每个字符都由一个二值形式的点阵图案表示。第二种表示方法称为轮廓字体,又称笔画字体或向量字体。每个字符的外形轮廓均由直线和曲线段来描述,21 什么是图形的走样?引起走样的原因是什么?图形光栅化的过程中由于图元的坐标点离散化为整数像素位置,因此光栅化后生成的图元具有锯齿形或阶梯状的外观。当我们把对象的连续表示(无限的分辨率)变换为对象的离散表示时,不可避免地会出现这类误差,这种由于低频采样(不充分采样)而造成的图形失真称为走样(aliasing)。22 图形的反走样主要有哪些方法?一种简单、直接的反走样方法,就是把屏幕看成由比实际更细的网格所覆盖,从而增加采样频率,然后根据这种更细网格,使用采样点来确定每个屏幕像素的合适亮度。这种在高分辨率下对对象进行采样并在较低分辨率上显示其结果的技术称为过采样(supersampling),也称为后滤波(postfiltering)另一种方法是通过计算待显示的每个像素在对象上的覆盖区域来确定像素的亮度。计算覆盖区域的反走样称为区域采样(area sampling),也称为前滤波(prefiltering)。23 图形反走样中过采样方法的原理是什么?后滤波则首先从原始连续信号获取离散采样值,然后再用这些采样值计算像素值(在采样之后进行滤波)。24 图形反走样中区域采样方法的原理是什么?前滤波就是在采样前对原始连续信号进行处理直接获取各个像素应有的亮度(在采样之前进行滤波) 。25 图形学中几何变换与坐标变换的概念,两者有什么联系?第一种是物体相对于一个固定的坐标系进行变换,即对物体的每一个顶点进行变换,改变它的位置、大小或方向,称为几何变换。第二种观点将物体看做固定不动,而坐标系则相对于物体做变换,称为坐标变换。26 图形学中基本的几何变换包括哪些?平移、旋转、缩放。26什么是齐次坐标,图形学中采用齐次坐标有什么优点?二维坐标(x, y)扩充为三维表示(xw, yw, w),称为齐次坐标,其中齐次参数w是一个非零值,利用齐次坐标,就可以用统一的矩阵相乘的形式来表示所有的几何变换,这27 下列变换矩阵哪个是平移变换?哪个是旋转变换;哪个是缩放变换?矩阵中个参数的含义?28 怎么由基本几何变换得到复合变换的合成矩阵?复合变换的结合是每次的变换矩阵相乘,即将多个基本变换进行串乘;29 写出两个连续的平移变换、旋转变换及平移变换的表达式 X=(X+x)cos()-(Y+y)sin() Y=(X+x)sin()+(Y+y)sin() 30 在二维图形变换中,若图形软件包仅提供绕坐标系原点的旋转函数时,绕任意基准点(xr , yr)的旋转可以通过哪几步复合变换来实现?写出复合变换矩阵的简要形式。1、平移对象使基准点位置移动到坐标原点;2、绕坐标原点旋转;3、平移对象使基准点回到其原来的位置。31 在二维图形变换中,若图形软件包仅提供相对于坐标系原点的缩放函数时,要实现相对于任意基准点(xf , yf)的缩放,可以通过哪几步复合变换来实现?写出复合变换矩阵的简要形式。1、平移对象使固定点与坐标原点重合;2、相对于坐标原点进行缩放;3、平移对象使固定点返回到原来的位置。32 对于二维图形变换,在xy坐标系中,有一个原点在(x0, y0)、方向角为的xy坐标系。为了将对象描述从xy坐标系变换到xy坐标系,可以通过哪几步复合变换来实现?写出复合变换矩阵的简要形式。(1) 将x'y'¢坐标系的原点(x0, y0)平移到xy坐标系的原点(0, 0);(2) 将x'轴旋转到x轴上。33 三维平移变换的矩阵形式为:解释参数tx, ty , tz的含义。平移34 三维空间相对于坐标原点缩放变换的矩阵形式为:解释参数sx, sy , sz的含义缩放比例35 OpenGL中,函数glTranslate (tx, ty, tz)有什么功能,其参数有什么含义?平移变换函数。函数名后缀*为参数类型,为f(浮点型)或d(双精度型)。平移参数tx, ty, tz可赋予任意实数,对于二维平移, tz =0;36 OpenGL中,函数glRotate (theta, vx, vy, vz) 有什么功能,其参数有什么含义?旋转变换函数。需要设定经过坐标系原点的旋转轴的角度和方向,向量v=(vx, vy, vz)的分量可以是任意的浮点数。函数名后缀*为参数类型,为f(浮点型)或d(双精度型),参数theta赋以旋转角度,由该函数将其转换成弧度后再进行三角计算。 如:glRotatef (90.0, 0.0, 0.0, 1.0);表示绕z轴旋转90度。37 OpenGL中,函数glScale (sx, sy, sz) 有什么功能,其参数有什么含义?缩放变换函数:缩放变换中需要设定相对于坐标系原点的三个坐标缩放系数。函数名后缀*为参数类型,为f(浮点型)或d(双精度型),缩放参数可以赋以任何实数。 如:glScale(2.0, -3.0, 1.0);表示在x方向缩放两倍,在y方向缩放3倍, 且相对于xz平面镜像反射。38 要绘制两个球体,以下一段代码:glMatrixMode(GL_MODELVIEW);glLoadIdentity();glTranslatef(0.0f, 10.0f, 0.0f); glutSolidSphere(1.0f, 15, 15); glLoadIdentity(); /再次复位模型视图矩阵glTranslatef(10.0f, 0.0f, 0.0f); glutSolidSphere(1.0f, 15, 15); 最终会得到图A还是图B的结果?为什么? A BA图。再次复位模型视图矩阵,球体重新移动到源点。39 什么是裁剪窗口,什么是视口,视口变换的含义是什么? 往往在图形显示时只需要显示图形的某一部分,这时可以在投影面上定义一个窗口。只有在窗口内的图形才显示,而窗口外的部分则不显示。在屏幕上也可以定义一个矩形,称为视口 二维场景中要显示的部分称为裁剪窗口(clipping window),因为所有在此区域之外的场景都要被裁去,只有在裁剪窗口内的场景才能显示在屏幕上。40 简述模型变换、视图变换以及模型视图变换的含义。模型变换的目的是设置模型的位置和方向,平移、旋转和缩放是模型变换中常用的操作,视图变换把观察点放在任何期望的位置上,并从任何设定的方向进行观察。向后移动对象(视线指向远方)和向前移动观察点效果是一样的,把这两种变换割裂开来是没有意义的,有时使用一种变换比使用另一种变换要方便的多。在OpenGL中,将这两种变换组合为模型视图变换41 在三维观察中,将对象从从世界坐标系变换到观察坐标系可通过哪几步复合变换来实现?(1) 平移观察坐标系原点到世界坐标系原点。(2) 进行旋转,分别让xview ,yview 和zview 轴对应到世界坐标系的xw ,yw 和zw轴。42 透视投影矩阵为:其中参数d的物理含义是什么?称d为非均匀透视投影缩放因子:即离投影中心越远,对象的图像越小;离投影中心越近,对象的图像越大。43 在三维观察中裁剪窗口与正投影观察体的关系是什么?在OpenGL中指定正投影观察体的函数为glortho(xwmin , xwmax , ywmin , ywmax , dnear , dfar)解释其中6个参数的含义。裁剪窗口用投影函数设定:glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top,GLdouble near, GLdouble far);参数left、right指定x方向的最小最大值,bottom、top指定y方向的最小最大值,near、far指定z方向的最小最大值。44在三维观察中裁剪窗口与透视投影观察体的关系是什么?在OpenGL中指定透视投影棱台观察体的函数为:gluPerspective(theta, aspect, dnear, dfar);解释其中4个参数的含义。gluPerspective(theta, aspect, dnear, dfar);其中参数均为双精度浮点数。前两个参数定义近裁剪平面上的裁剪窗口尺寸和位置,后两个参数指定从观察点(坐标系原点)到近和远裁剪平面的距离。参数theta表示视场角,即上下裁剪平面之间的夹角,该角可赋以0到180度之间的任何角度。参数aspect为裁剪窗口的纵横比(宽度/高度)。近和远裁剪平面必须永远位于负zview轴, dnear和dfar都必须赋以正值,且近和远平面的位置为znear = dnear, zfar = dfar。45 在OpenGL中指定透视投影棱台观察体的函数为:glFrustum(xwmin , xwmax , ywmin , ywmax , dnear , dfar)解释其中6个参数的含义.所有参数均为双精度浮点数,近平面是观察平面,且投影参考点位于观察坐标系原点。该函数与正交平行投影函数有相同的参数,但近和远裁剪平面的距离必须是正的,前四个参数设定近平面上裁剪窗口的坐标,后两个参数指定从坐标系原点沿负zview轴到近和远裁剪平面的距离, znear = dnear, zfar = dfar。46 平面的一般方程为:Ax + By + Cz + D = 0 其中参数A、B、C的几何含义是什么?由此可见,平面方程中的参数A、B、C就是这个平面的法向量N的分量。47 简述可见性判别中深度缓存算法的基本原理。首先将深度缓存器和颜色缓存器初始化,把深度缓存器中所有单元设置为一个最大可能的深度值,把颜色缓存器中各单元设置为背景颜色,然后将场景中的物体不分次序地投影到像平面上去。对于每个投影点(像素),将投影物体在该点处的深度与深度缓存器中保存的深度值进行比较,如果前者小于后者,那么就将当前被投影物体的颜色写到颜色缓存器中去,同时用当前投影物体的深度去更新深度缓存器中记录的深度值;否则不做任何操作。48 简述可见性判别中深度缓存算法的优缺点。优点:深度缓存算法中物体投影到象平面上的次序是任意的,无须将场景中的表面进行排序,物体之间的遮挡关系是通过深度缓存器进行深度比较加以确定的,在算法上易于实现。缺点一:深度缓存算法只能显示距离视点最近的物体,而且这些物体都是不透明的,无法看到被遮挡的物体。缺点二:深度缓存算法经常执行一些最终不起作用的中间计算过程。由于对象按任意次序进行处理,因此有些表面进行了颜色计算但事后又被更近的表面所代替,浪费了计算资源。49 简述可见性判别中画家算法的原理。初始时,把颜色缓存器置成背景颜色,在执行过程中,物体按距视点由远到近的次序投影到象平面上。由于后投影的物体遮挡先投影的物体,所以后投影到象平面上的物体将覆盖颜色缓存器中的颜色。如果当前投影的物体是不透明的,它将完全覆盖对应的投影像素,颜色缓存器中该像素的值就写入这个物体的颜色。如果当前投影的物体是半透明的,它将部分覆盖对应的投影像素,这就需要把该物体颜色和颜色缓存器中的颜色合成起来,并用合成的颜色更新颜色缓存器中的颜色值。50 绘制真实感三维图形主要包括哪些技术?51 Phong光照明模型包括哪几种光,各有什么特点?环境光:环境光是经过场景中的物体多次散射,没有明确来源(好象来自四面八方)的光。只有环境光是不能产生真实感图形的。漫反射光:漫反射光来自某个明确的方向,被物体表面均匀地反射。尽管漫反射光被均匀地反射回去,但在相同光源条件下,被垂直照射的物体表面比从某个角度斜照过来时要亮,这说明垂直照射时漫反射光的强度比倾斜照射时要大,物体表面上某点漫反射光的强度既与材质有关,也与光源相对于该点的位置有关,表现为与该点入射光的角度有关。高亮区域是由镜面反射光所造成。在粗糙表面产生漫反射光,而在光滑表面则产生镜面反射光。下图给出了表面某点处的镜面反射方向。镜面反射角等于入射角,52 光照明模型中环境光、漫射射光、镜面反射光各有什么特点?粗糙或颗粒状表面将反射光向各个方向发散出去。这种发散称为漫反射(diffuse reflection)。有些反射光会集中成醒目的或明亮的一个点,这称为镜面反射 (specular reflection)。这种醒目效果在光亮表面比灰暗表面要明显得多。场景中的环境光是该场景各个表面的反射光综合的光照效果。53 描述漫反射光强度的公式为:Il,diff = kd Il cosq 简述各参数的含义。入射光方向与表面法线方向之间的夹角为入射角(angle of incidence),记为q,设物体表面的漫反射系数(diffuse-reflection coefficient)为kd,入射光强度为Il,54 描述镜面反射光强度的公式为:Il,spec= ks Il cosnsf简述各参数的含义。设镜面反射系数为ks,光源强度为Il,观察方向V与镜面反射方向R之间的夹角为f。指数ns称为镜面的高光系数,光滑表面的ns值较大(如100或更大),粗糙表面的ns值较小(小到1) 55 简述多边形内光照计算中Gouraud明暗处理的基本原理。首先计算多边形各顶点的光强,再用双线性插值,求出多边形内部各点的光强算法步骤:计算多边形顶点的平均法向用简单光照明模型计算顶点的光强插值计算多边形各边上各点的光强沿扫描线插值计算多边形内各点的光强。56 简述多边形内光照计算中Phong明暗处理的基本原理。 Phong提出双线性法向插值,以时间为代价,解决镜面反射的马赫带效应问题保留双线性插值,对多边形边上的点和内域各点,对顶点的法向量进行插值,而原顶点的法向量,仍用相邻多边形的法向作平均。由插值得到各点法向,计算多边形内每个像素点的光强。57 光照计算中,材质的颜色反映什么特性?材质本身有属于自己的颜色,材质的颜色由它所反射的光的颜色决定。材质也具有不同的环境光、散射光和镜面光颜色,他们决定了材质对红、绿、蓝光的反射率,材质的环境光反射属性与光源的环境光成分组合,散射光反射属性与光源的散射光成分组合,镜面光反射属性与光源的镜面光成分组合。58 简述二维等值线生成中单元剖分法的基本原理。算法的基本思想是利用对角线将矩形单元分成四个三角形单元,见图6,求出中心点的函数值,等值线的抽取直接在每个三角片中进行。由于每一个三角片至多只包含一条等值线,因而在由三角片的三个点决定的平面内,可直接用直线段连接等值线。 59 简述三维等值面生成中Marching Cubes(移动立方体)方法的基本原理。假定原始数据是离散的三维空间规则数据,一个体元定义为由相邻层上的8个顶点组成的一个长方体。为了在三维数据中构造等值面,应先给定所求等值面的值,该方法的基本原理是逐个处理所有的体元,将体元各顶点处的值与给定的阈值进行比较,首先找出与等值面相交的体元,然后通过插值求等值面与体元棱边的交点,并将各交点连成三角形来构成等值面片,所有体元中的三角形集合就构成了等值面。由于这一方法是逐个处理所有的体元,60 直接体绘制方法中,光线吸收与发射模型的表达式为:简述该公式的物理含义2.8式表达了背景光I0与所赋颜色为C的光源在透明度T(D)的作用下合成的光强度。其中第1项代表从背景处射入的光经过三维数据场的吸收以后(即乘以数据场的透明度)到达观察点的光强,第2项表示某个三维数据点(即体素)发出的光对观察点处光强的贡献。上式中的T(D)就是透明度,1T(D)即为不透明度a,不透明度可理解为阻光度、遮光度。61 论述直接体绘制中光线投射算法的基本原理 从屏幕上的每一个像素点出发,逆着投影的方向发出一条射线穿过数据场,显然,该射线上所有数据点的投影就在该像素点处,但原始数据并不一定正好处于射线路径上,可以在射线路径上重新设置数据采样点,通过三次线性内插求重采样点的值。这些重采样点所在的体素发出不同颜色的光,在该射线上按照体素的前后顺序将它们依次投影、混合叠加,就可得到该像素点的颜色,将各像素点的颜色拼接起来就得到了一幅完整的可视化图像。62 论述体绘制的光线投射算法是怎样解决走样与可见性优先级问题的? (1)用光线投射方法反向推算与像素点对应的数据点位置,并据此设定重采样点,将重采样后的数据精确地投影到像素点上,消除走样现象。 (2) 在光线投射路径上可直接确定体素之间相互遮挡的顺序。63 论述体绘制方法中足迹法的基本原理三维离散数据的采样点分布在在三维空间的网格点上,网格点在x,y,z三个方向上的间距各自分别相等,但3个方向之间不一定相等。该三维离散数据体可用来表示,其中 是相应的三维数据的连续函数,是用于采样的三维梳状函数。64 体绘制中的足迹法是怎样解决走样与可见性优先级问题的?足迹表法通过分层投影来解决可见性优先级。足迹表法的实质是将每个体素发出的光按足迹表给出的分配系数将光强分配到影响范围内的各像素点上去,足迹表是严格建立在重构理论基础上,根据重构核求出的,按足迹表的权值分配光强的过程就是将采样点发出的光(表现为重构核)严格分配到离散化的像素点的过程。65 论述直接体绘制中错切变形算法的基本原理。将三维离散数据变换到一个中间坐标系,在这个中间坐标系中,观察方向与坐标系的某个轴平行(优点:投影时数据本身是对齐的),例如Z轴,那么中间投影面就与x-y数据平面平行,从而大大简化了三维数据从物体空间到图像平面的投影过程。66 体绘制中的错切-变形是怎样解决走样与可见性优先级问题的?专心-专注-专业