声明
1.本系列的主要内容主要是罗列《数字图像处理》和《计算机图形学》这两门课程中涉及到的一些名词解释和简答题。
2.其中名词解释不仅仅是解释这个名词,还包括其结果、原理、类型或优缺点等方面的解释,以保证答题时字数足够。可以根据自身情况进行增添。
3.适合即将期末考试或准备相关领域考研的同学们。
名词解释
分形
分形是以非整数维形态填充空间的形态特征,通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都是整体缩小后的形状”,常用来描述局部形态和整体形态的相似,且具有自相似性和无线细分性,且它的维数都大于它的拓扑维数。
三维拾取
三维拾取是指用户通过鼠标,向屏幕内部发射一条射线,来拾取三维场景中的物体,鼠标坐标在屏幕坐标系中,三维物体在世界坐标系中,首先要将它们统一到同一坐标系中,然后再进行求交运算。
曲线拟合
逼近:当用一组控制点来指定曲线形状时,曲线被每个控制点吸引,但实际上并不通过这些控制点的曲线称为曲线的逼近。
插值:当用一组数据点来指定曲线形状时,曲线精准地通过每个数据点而形成一段光滑曲线称为曲线的插值。
插值和逼近统称为拟合。
拟合即构造一条曲线使之在某种意义下最接近给定的数据点。
虚拟现实
虚拟现实技术是利用计算机生成的虚拟环境,逼真地模拟了人在自然环境中的视觉、听觉、触觉、运动等行为的人机交互新技术。
四连通区域
从多边形内部任意一个种子点出发,通过访问其左上右下这四个邻接点可以遍布区域内所有像素,则该区域称为四连通区域,对于四连通区域来说,其边界可以是四连通的,也可以是八连通的。
增强现实
增强现实技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛应用了多媒体、三维建模、实时跟踪等多种技术手段,将计算机长的文字,图像,音频,视频等虚拟信息仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的增强。
真实感图形学
真实感图形绘制利用多种学科知识在计算机图形设备上生成像彩色照片一样具有真实感的图形。一般来说,计算机在图形设备上生成真实感图形必须完成四个步骤:一是建模,用一定的数学方法建立所需的三维场景的几何描述;二是投影,将三维几何模型经过一定变换转为二维平面透视图;三是消隐,确定场景中所有可见面,用消隐算法去除不可见的线和面;四是着色,根据光照模型计算可见面的光强,再将其转换为适合图形设备的颜色值,从而确定投影画面上每一像素的颜色,最终生成图形。
非真实感图形
与传统追求照片的真实感不同,非真实感渲染旨在模拟艺术式的绘制风格,常用来对绘画风格和自然媒体(如:铅笔、钢笔、木炭)等进行模拟,而卡通渲染作为一种特殊形式的非真实感渲染方法,近年来备受关注。
LOD技术
LOD技术即Level of Detail,意为多细节层次,是指根据物体模型的节点在显示环境中所处的位置和重要度,来决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的运算,也就是在游戏场景中,摄像机离模型较近时显示高模,离摄像机较远时显示低模。
纹理映射
又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中像素的过程。简单来说,就是把一幅图像贴在三维物体的表面来增强真实感,可以和光照计算,图像混合等技术结合起来形成许多非常漂亮的结果。
马赫带效应
马赫带效应不是一种物理现象,而是一种心理现象。在观察明暗变化的边界时,边界处亮度的对比度加强,常常在光强阶梯变化的一侧感知到亮度的正向尖峰效果,而在另一侧感知到亮度的负向尖峰效果,使边界变得非常明显。这恰恰是夸大了平面着色的渲染效果,如果一个具有复杂光滑表面的物体是由一系列平面着色的多边形逼近的,那么这个物体看上去就像是一片片拼起来的,非常不自然,有明显的马赫带效应。
窗视变换
窗口:在观察坐标系中定义的确定显示内容的矩形区域。
视区:在屏幕坐标系中定义的输出图形的矩形区域。
图形输出需要进行从窗口到视区的变换,只有窗口内的图形才能在视区中输出,并且输出的形状要根据视区的大小进行调整,这就称为窗视变换。
局部光照模型
局部光照模型仅考虑光源直接照射到物体表面所产生的效果,通常假设物体表面不透明且具有均匀的反射率。局部光照模型能表现出光源直接投射在漫反射物体上所形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影。
全局光照模型
整体光照模型除了能表现出光源直接投射在漫反射物体上形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影之外,还考虑周围环境对物体表面的影响,能模拟镜面的映像,光的折射以及相邻表面之间的色彩辉映等精确的光照效果。
正交投影
正交投影是平行投影的一种,其投影中心到投影面的距离为无穷远。正交投影不管图形与视点的距离有多远,画面上显示出来的图形大小不变,不适用于“近大远小”的规则。正交投影常用来绘制物体的三视图。
简答题
为什么在图形扫描过程中会出现走样现象?
直线扫描转换算法在处理非水平,非垂直且非45度线段时,在光栅扫描显示器上显示的图像是有一系列亮度的(锯齿)。这种由离散量表示连续量而引起的失真称为走样。走样是理想直线通过扫描转换后的必然结果,是光栅扫描显示器的一种固有现象,不可避免,只可减轻。
走样与反走样,反走样技术有哪些?
走样:用离散量(像素)表示连续量(图形)而引起的失真。
反走样:用于减少走样现象的技术。
反走样技术主要分为:
1)硬件技术。通过提高显示器分辨率,增加采样点来实现,效果及其有限。
2)软件技术。通过改进软件算法来实现,即把像素作为一个有限区域,对区域采样。
反走样技术主要是加权区域采样。算法的实质是利用人眼视觉特征,通过加权平均的算法,调节像素的亮度或灰度等级以产生模糊的边界,从而达到较好的视觉效果以消除锯齿。
直线WU反走样算法原理?
Wu反走样算法是采用空间混色原理来对走样进行修正,利用两个像素来共同表示理想直线上的一个点,依据两个像素与理想直线的距离来调节其亮度等级,使所绘制的直线达到视觉上消除锯齿的效果。
数值微分算法(DDA)及其优缺点
通过对前一个点在x或y轴方向上加上一个增量,从而得到一个新点的坐标,这个算法要求先算出直线的斜率,然后从起点开始,确定最佳逼近于直线的y的坐标。假设x方向是主位移方向,x每递增1,y就相应递增斜率k,通过对y进行四舍五入取整,就能确定最佳逼近于直线的坐标。
优:算法中没有乘法运算
缺:有浮点运算;浮点相加累积误差,对长线段易引起较大偏移。
Bresenham算法
假设x方向是主位移方向,则x方向每次加1,y方向上加不加1取决于中点误差项的值,中点误差项就是y方向上不加1和加1两个点之间的中点与理想直线的距离,若该距离小于0,则说明中点在理想直线上方,此时y方向应该选加1的那个点,从而确定最佳逼近于直线的坐标。
优点:
1)不用计算直线的斜率,不做除法
2)不考虑浮点数,只考虑整数
3)只做整数加减法和乘2运算,乘2运算可以用硬件移位实现
4)算法速度快并适用于硬件实现
Bezier曲线的性质?B样条曲线的性质?
1)端点性质:顶点p0和pn分别位于实际曲线段的起点和终点上;
2)一阶导数:起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致;
3)几何不变性:Bezier曲线的形状仅与控制多边形各顶点的相对位置有关,而与坐标系的选择无关;
4)变差缩减性:若Bezier曲线的特征多边形是一个平面图像,则平面内任意直线与p(t)的交点个数不多于该直线与其特征多边形的交点个数。说明了Bezier曲线比其特征多边形的波动小,比其特征多边形的折线更光滑;
5)凸包性:Bezier曲线始终位于控制多边形构成的凸包之内;
6)对称性:若保持全部顶点位置不变,只是颠倒次序,则新的Bezier曲线形状不变,但方向相反。
B样条曲线:
1.连续性:m+n+1个控制点可定义m+1段n次B样条曲线;2.局部性:每段n次B样条曲线受n+1个控制点影响,改变一个控制点,最多影响n+1个曲线段。
简述bezier曲线和的优缺点
优:直观性和凸包性
缺:1)确定了控制多边形顶点的个数n+1个也就确定了曲线的次数为n次
2)控制多边形与曲线的逼近程度较差,次数越高,逼近程度越差;
3)不能对bezier曲线进行局部修改,改变任一控制点位置会使整个曲线都受到影响。
4)Bezier曲线拼接较复杂。
B样条曲线:除了保持bezier曲线直观性和凸包性的优点外,多项式次数也独立于控制点数目,而且B样条曲线允许局部调整,基函数的次数也与控制点无关,更逼近多边形。
B样条曲线和Bezier曲线的主要区别?
它们的主要区别是基函数的不同:
1)Bezier曲线的基函数次数等于控制点个数减1,而B样条曲线基函数次数与控制点个数无关。
2)Bezier曲线的基函数是伯恩斯坦(Bernstein)基函数,它是个整体函数,而B样条曲线的基函数是B样条基函数,它是分段函数。
多边形填充扫描线算法
基本原理:先确定多边形覆盖扫描线条数(y=ymin-ymax),对每条扫描线,计算扫描线与多边形边界的交点区间(xmin~xmax),如果能判断该区间在多边形内部,则将其内的像素填充为指定颜色,对一条扫描线的填充过程一般分为四个步骤:
1)求交:计算扫描线与多边形各边的交点
2)排序:将扫描线上所有交点按递增顺序排序
3)配对:将第一,二个交点,第三,四个交点等进行配对,每对交点代表扫描线与多边形的一个相交区间
4)着色:把区间内的所有像素置为填充色
优:利用相邻像素间的连续性 缺:在处理每条扫描线时,需要与多边形所有边求交,处理效率低。
种子填充算法(区域递归填充算法)
步骤:
1)将种子像素入栈
2)若栈为空,则结束;若栈非空,取出栈顶元素上色
3)判断该元素相邻的左上右下方像素是否是边界像素或是否已上色
4)若既不是边界像素也未上色,则将其入栈 5)返回第 2)步
优点: 递归执行,算法简单;
缺点:会将大量像素入栈,有些像素甚至会入栈多次,不但降低了算法的效率,而且还占用了大量的存储空间。
方向:改进算法,减少递归次数,提高效率。方法之一:使用扫描线区域填充算法;区域填充的扫描线算法非递归,对于每一个待填充区段,只需压栈一次。而在递归算法中,每个象素都需要压栈。因此,扫描线填充算法提高了区域填充的效率。
试比较多边形扫描转换与区域填充方法,分析其联系及不同点。
联系:都是光栅图形面着色,用于真实感图形显示,可以相互转换。
不同点:
1)基本思想不同:多边形的扫描转换是指将多边形的顶点表示转换成点阵表示。在扫描转换过程中利用了多边形各种形式的连贯性。区域填充只改变区域的颜色,不改变区域的表示方法。在填充过程中利用了区域的连通性。
2)对边界的要求不同:在多边形的扫描转换中要求每一条扫描线与多边形边界的交点个数是偶数。在区域填充中要求4连通区域的边界为封闭的8连通区域,而8连通区域的边界为封闭的4连通区域。
3)基本条件不同:在区域填充中要求指定区域内的一点为种子点,然后从这点开始对区域进行着色。对多边形的扫描转换没有这个要求
37.Cohen-Sutherland直线段裁剪算法
Cohen-Sutherland裁剪算法的基本思想是把视窗平面划分为不同的区域,然后利用区域内部的特点来判断线段是否与视窗相交,如果与视窗相交则尝试剪裁。具体步骤如下:
1)为给定线段的两个端点分配4位二进制区域代码。
2)如果两个端点的区域代码都是0000,则表明线段完全在窗口内,则简取。
3)否则,对两个区域块代码执行逻辑与运算{
if结果不是0000,那么线段全在窗口外部,则简弃;
else 如果结果是0000,表明线段部分位于窗口内部{
找到线段与窗口的交点;
用交点替换线段的端点,并更新4位二进制区域代码;
重新回到第 2 步,一直到剪裁完成再退出;
}
中点分割直线段裁剪算法
针对Cohen-Sutherland直线段裁剪算法的非“简取”和“简弃”的情况做了改进,即不通过求解直线和窗口边界的交点就可以对直线进行裁剪。
原理是简单地把直线段等分成两段直线,对每一段重复“简取”和“简弃”的处理,对于不能处理的直线再继续等分成两段直线,直至每一段完全位于窗口内或窗口外。
该计算过程中只用到了加法和移位运算,易于使用硬件实现。
什么叫消影?为什么要消影?
在绘制图形时消除被遮挡的不可见的线或面叫消隐.
在用显示设备描述物体的图形时,必须把三维信息经过某种投影变换,在二维的显示平面上绘制出来,投影失去了深度信息,往往会导致图形的二义性, 要消除这类二义性就要进行消隐。
简述消影算法类别及其特点
按空间不同,可将消影算法分为三类
1)物体空间法:在三位观察空间完成。根据模型的几何关系判断哪些面可见,哪些面不可见。与显示器的分辨率无关。
2)图像空间法:主要在物体投影后的二维图像空间中利用帧缓存信息确定哪些表面遮挡了其他表面。与显示器的分辨率有关。
3)物像空间法:在描述物体的三维观察空间和二维图像空间中同时进行消影。
常见的面消影算法有:画家算法,Z缓冲区(Z-Buffer)算法,扫描线Z-Buffer算法,扫描线算法,区域子分割算法,光线投射算法等。
简述Z-Buffer消影算法的基本思想及优缺点
基本思想是将需要绘制的物体坐标映射到屏幕上,并记录下每个像素点的深度值,再通过比较每个像素点的深度值大小,判断哪些像素点需要绘制。
实现流程包括:
1)建立一个深度缓冲器,初始化为最小深度值;
2)建立一个帧缓冲器,初始化为屏幕背景色;
3)遍历多边形表面的每个像素(xi,yi),计算其深度值zi(xi,yi);
4)将每个像素点的深度值与z-buffer中的深度值进行比较,如果当前像素点深度值比对应位置的z-buffer深度值要小,则更新z-buffer深度值和帧缓冲器中相应位置的颜色值。优点:
1)适用范围广:适用于任何三维模型的消隐,具有一定的通用性。
2)算法简单:对于初学者和快速实现效果的需求来说,Z-buffer消隐算法易于掌握和实现。
缺点:
1)内存消耗大:需要相同数量的内存来存储每个像素点的像素值和深度值,造成内存极大开销。
2)不适用于透明物体:由于透明物体可能会相互遮挡,难以确定前后顺序,因此无法使用Z-buffer消隐算法。
3)可能出现锯齿边缘:当分辨率较低时,可能会出现明显的锯齿边缘,需要增加抗锯齿技术等额外处理。
4)与物体在屏幕上出现的顺序无关,即不能用深度小的像素点代替深度大的。
5)没有利用图像的相关性与连续性。
深度排序算法(画家算法)
原理:与表面投影的顺序有关,在屏幕上先投影离视线远的表面,再投影离视线近的表面,后绘制的表面遮挡了先绘制的表面。
步骤:
1)将屏幕置为背景色
2)把物体的各个面按其离视点的远近进行排序,离视点近的点在表尾,离视点远的点在表头,排序结果存在一张深度优先表中
3)按照从表头到表尾的顺序绘制各个面
46.光线追踪算法过程?递归终止条件?
光线追踪是一种用于渲染图像的计算机图形学技术,通过模拟光线在场景中的传播途径来生成逼真的图像,通常被认为是一种基于物理模型的渲染方法,可以产生高质量、逼真的图像。在光线追踪中,通常从相机位置出发,沿着每个像素的视线方向发射光线,这些光线会与场景中的物体相交,然后根据相交点的材质、光照等属性计算出反射、折射、阴影等效果,并追踪光线的传播路径,直到达到终止条件。
具体步骤:
1)发射光线:从相机位置发射一条光线,沿着视线方向前进。
2)光线与场景中物体的相交判断:遍历场景中的物体,检查光线是否与物体相交,找出与光线最近的物体。
3)计算光线相交点的颜色:对于与光线相交的物体,计算其表面上相交点的颜色。
4)反射和折射的计算:如果物体表面具有反射或者折射的属性,计算相应的反射光线或者折射光线,继续跟踪这些光线。
5)递归:从上一步计算得到的反射光线或者折射光线,重复以上步骤。 在光线跟踪的递归程序中,
递归终止条件有以下几种:
1)光线与场景中没有物体相交:此时跟踪结束,返回背景颜色。
2)到达递归深度限制:光线跟踪过程中的递归深度需要限制,防止程序出现死循环或卡死现象。
3)光线与物体相交点处的材质属性为发光材质:此时跟踪结束,返回相交点的颜色。因为发光材质会向周围发出光线,这些光线会影响物体表面的颜色。
4)光线能量衰减到某个阈值时,也可以结束递归计算。
简述Phong明暗处理算法的步骤
(双线性法向插值)基本步骤:
1)计算多边形顶点处的平均单位法矢量;
2)用双线性插值计算多边形内部各点的法矢量;
3)对多边形内的每一点使用法矢量调用简单光照模型计算光强,然后再将光强分解为该点的RGB颜色。
Gourand明暗处理算法主要步骤有哪些?
Gouraud明暗处理算法(双线性光强插值算法)是三维场景中常用的一种光照处理算法,用于计算物体表面每个顶点的颜色值,以产生逼真的光照效果。
主要步骤:
1)计算多边形顶点的平均法矢量;
2)计算多边形网格的每个顶点根据简单光照模型计算光强;
3)根据每个多边形网格顶点的光强,按照扫描线顺序使用线性插值计算多边形网格边界上每一点的光强;
4)在扫描线与多边形相交区间内,使用线性插值计算区间内每一点的光强。然后再将光强分解为该点的RGB颜色。
比较Gourand明暗处理算法和Phong明暗处理算法的优缺点
Gourand明暗处理算法:
1)优点:计算量小,计算速度较快;对于大型场景具有良好的渲染效果;解决了多边形网格之间亮度不连续过渡的问题;
2)缺点:镜面反射的高光区域旨在最小面片的周围形成,不能在面片内部形成,导致Gouraud明暗处理生成的高光区域明显大于Phong明暗处理生成的高光区域;高光区域的多边形边界明显,马赫带效应没有完全消除。
Phong明暗处理算法:
1)优点:可以精确模拟光线与物体表面之间的相互作用,得到更加逼真的渲染效果,对于高光处理效果非常好;
2)缺点:计算量较大,计算速度相对较慢;对于大规模场景不适用;明暗变化缺乏层次感。同时,由于Phong明暗处理算法对于每个像素点都要计算法向量和光照效果,因此需要更多内存存储信息,算法相对较复杂。
简述简单光照模型和整体光照模型的区别和联系
1)联系:简单光照模型和整体光照模型都是通过光线对物体的影 响来计算物体的真实感图形。
2)区别:简单光照模型只是处理光源直接照射到物体表面的光强,不能很好的模拟光的折射、反射和阴影 等,也不能用来表示物体间的相互光照明影响,而整体光照模型可以。
简单光照模型是局部光照模型最简单的形式。
局部光照模型仅考虑光源直接照射到物体表面所产生的效果,通常假设物体表面不透明且具有均匀的反射率。局部光照模型能表现出光源直接投射在漫反射物体上所形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影。
整体光照模型除了能表现出光源直接投射在漫反射物体上形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影之外,还考虑周围环境对物体表面的影响,能模拟镜面的映像,光的折射以及相邻表面之间的色彩辉映等精确的光照效果。
名词解释
分形
分形是以非整数维形态填充空间的形态特征,通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都是整体缩小后的形状”,常用来描述局部形态和整体形态的相似,且具有自相似性和无线细分性,且它的维数都大于它的拓扑维数。
三维拾取
三维拾取是指用户通过鼠标,向屏幕内部发射一条射线,来拾取三维场景中的物体,鼠标坐标在屏幕坐标系中,三维物体在世界坐标系中,首先要将它们统一到同一坐标系中,然后再进行求交运算。
曲线拟合
逼近:当用一组控制点来指定曲线形状时,曲线被每个控制点吸引,但实际上并不通过这些控制点的曲线称为曲线的逼近。
插值:当用一组数据点来指定曲线形状时,曲线精准地通过每个数据点而形成一段光滑曲线称为曲线的插值。
插值和逼近统称为拟合。
拟合即构造一条曲线使之在某种意义下最接近给定的数据点。
虚拟现实
虚拟现实技术是利用计算机生成的虚拟环境,逼真地模拟了人在自然环境中的视觉、听觉、触觉、运动等行为的人机交互新技术。
四连通区域
从多边形内部任意一个种子点出发,通过访问其左上右下这四个邻接点可以遍布区域内所有像素,则该区域称为四连通区域,对于四连通区域来说,其边界可以是四连通的,也可以是八连通的。
增强现实
增强现实技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛应用了多媒体、三维建模、实时跟踪等多种技术手段,将计算机长的文字,图像,音频,视频等虚拟信息仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的增强。
真实感图形学
真实感图形绘制利用多种学科知识在计算机图形设备上生成像彩色照片一样具有真实感的图形。一般来说,计算机在图形设备上生成真实感图形必须完成四个步骤:一是建模,用一定的数学方法建立所需的三维场景的几何描述;二是投影,将三维几何模型经过一定变换转为二维平面透视图;三是消隐,确定场景中所有可见面,用消隐算法去除不可见的线和面;四是着色,根据光照模型计算可见面的光强,再将其转换为适合图形设备的颜色值,从而确定投影画面上每一像素的颜色,最终生成图形。
非真实感图形
与传统追求照片的真实感不同,非真实感渲染旨在模拟艺术式的绘制风格,常用来对绘画风格和自然媒体(如:铅笔、钢笔、木炭)等进行模拟,而卡通渲染作为一种特殊形式的非真实感渲染方法,近年来备受关注。
LOD技术
LOD技术即Level of Detail,意为多细节层次,是指根据物体模型的节点在显示环境中所处的位置和重要度,来决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的运算,也就是在游戏场景中,摄像机离模型较近时显示高模,离摄像机较远时显示低模。
纹理映射
又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中像素的过程。简单来说,就是把一幅图像贴在三维物体的表面来增强真实感,可以和光照计算,图像混合等技术结合起来形成许多非常漂亮的结果。
马赫带效应
马赫带效应不是一种物理现象,而是一种心理现象。在观察明暗变化的边界时,边界处亮度的对比度加强,常常在光强阶梯变化的一侧感知到亮度的正向尖峰效果,而在另一侧感知到亮度的负向尖峰效果,使边界变得非常明显。这恰恰是夸大了平面着色的渲染效果,如果一个具有复杂光滑表面的物体是由一系列平面着色的多边形逼近的,那么这个物体看上去就像是一片片拼起来的,非常不自然,有明显的马赫带效应。
窗视变换
窗口:在观察坐标系中定义的确定显示内容的矩形区域。
视区:在屏幕坐标系中定义的输出图形的矩形区域。
图形输出需要进行从窗口到视区的变换,只有窗口内的图形才能在视区中输出,并且输出的形状要根据视区的大小进行调整,这就称为窗视变换。
局部光照模型
局部光照模型仅考虑光源直接照射到物体表面所产生的效果,通常假设物体表面不透明且具有均匀的反射率。局部光照模型能表现出光源直接投射在漫反射物体上所形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影。
全局光照模型
整体光照模型除了能表现出光源直接投射在漫反射物体上形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影之外,还考虑周围环境对物体表面的影响,能模拟镜面的映像,光的折射以及相邻表面之间的色彩辉映等精确的光照效果。
正交投影
正交投影是平行投影的一种,其投影中心到投影面的距离为无穷远。正交投影不管图形与视点的距离有多远,画面上显示出来的图形大小不变,不适用于“近大远小”的规则。正交投影常用来绘制物体的三视图。
简答题
为什么在图形扫描过程中会出现走样现象?
直线扫描转换算法在处理非水平,非垂直且非45度线段时,在光栅扫描显示器上显示的图像是有一系列亮度的(锯齿)。这种由离散量表示连续量而引起的失真称为走样。走样是理想直线通过扫描转换后的必然结果,是光栅扫描显示器的一种固有现象,不可避免,只可减轻。
走样与反走样,反走样技术有哪些?
走样:用离散量(像素)表示连续量(图形)而引起的失真。
反走样:用于减少走样现象的技术。
反走样技术主要分为:
1)硬件技术。通过提高显示器分辨率,增加采样点来实现,效果及其有限。
2)软件技术。通过改进软件算法来实现,即把像素作为一个有限区域,对区域采样。
反走样技术主要是加权区域采样。算法的实质是利用人眼视觉特征,通过加权平均的算法,调节像素的亮度或灰度等级以产生模糊的边界,从而达到较好的视觉效果以消除锯齿。
直线WU反走样算法原理?
Wu反走样算法是采用空间混色原理来对走样进行修正,利用两个像素来共同表示理想直线上的一个点,依据两个像素与理想直线的距离来调节其亮度等级,使所绘制的直线达到视觉上消除锯齿的效果。
数值微分算法(DDA)及其优缺点
通过对前一个点在x或y轴方向上加上一个增量,从而得到一个新点的坐标,这个算法要求先算出直线的斜率,然后从起点开始,确定最佳逼近于直线的y的坐标。假设x方向是主位移方向,x每递增1,y就相应递增斜率k,通过对y进行四舍五入取整,就能确定最佳逼近于直线的坐标。
优:算法中没有乘法运算
缺:有浮点运算;浮点相加累积误差,对长线段易引起较大偏移。
Bresenham算法
假设x方向是主位移方向,则x方向每次加1,y方向上加不加1取决于中点误差项的值,中点误差项就是y方向上不加1和加1两个点之间的中点与理想直线的距离,若该距离小于0,则说明中点在理想直线上方,此时y方向应该选加1的那个点,从而确定最佳逼近于直线的坐标。
优点:
1)不用计算直线的斜率,不做除法
2)不考虑浮点数,只考虑整数
3)只做整数加减法和乘2运算,乘2运算可以用硬件移位实现
4)算法速度快并适用于硬件实现
Bezier曲线的性质?B样条曲线的性质?
1)端点性质:顶点p0和pn分别位于实际曲线段的起点和终点上;
2)一阶导数:起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致;
3)几何不变性:Bezier曲线的形状仅与控制多边形各顶点的相对位置有关,而与坐标系的选择无关;
4)变差缩减性:若Bezier曲线的特征多边形是一个平面图像,则平面内任意直线与p(t)的交点个数不多于该直线与其特征多边形的交点个数。说明了Bezier曲线比其特征多边形的波动小,比其特征多边形的折线更光滑;
5)凸包性:Bezier曲线始终位于控制多边形构成的凸包之内;
6)对称性:若保持全部顶点位置不变,只是颠倒次序,则新的Bezier曲线形状不变,但方向相反。
B样条曲线:
1.连续性:m+n+1个控制点可定义m+1段n次B样条曲线;2.局部性:每段n次B样条曲线受n+1个控制点影响,改变一个控制点,最多影响n+1个曲线段。
简述bezier曲线和的优缺点
优:直观性和凸包性
缺:1)确定了控制多边形顶点的个数n+1个也就确定了曲线的次数为n次
2)控制多边形与曲线的逼近程度较差,次数越高,逼近程度越差;
3)不能对bezier曲线进行局部修改,改变任一控制点位置会使整个曲线都受到影响。
4)Bezier曲线拼接较复杂。
B样条曲线:除了保持bezier曲线直观性和凸包性的优点外,多项式次数也独立于控制点数目,而且B样条曲线允许局部调整,基函数的次数也与控制点无关,更逼近多边形。
B样条曲线和Bezier曲线的主要区别?
它们的主要区别是基函数的不同:
1)Bezier曲线的基函数次数等于控制点个数减1,而B样条曲线基函数次数与控制点个数无关。
2)Bezier曲线的基函数是伯恩斯坦(Bernstein)基函数,它是个整体函数,而B样条曲线的基函数是B样条基函数,它是分段函数。
多边形填充扫描线算法
基本原理:先确定多边形覆盖扫描线条数(y=ymin-ymax),对每条扫描线,计算扫描线与多边形边界的交点区间(xmin~xmax),如果能判断该区间在多边形内部,则将其内的像素填充为指定颜色,对一条扫描线的填充过程一般分为四个步骤:
1)求交:计算扫描线与多边形各边的交点
2)排序:将扫描线上所有交点按递增顺序排序
3)配对:将第一,二个交点,第三,四个交点等进行配对,每对交点代表扫描线与多边形的一个相交区间
4)着色:把区间内的所有像素置为填充色
优:利用相邻像素间的连续性 缺:在处理每条扫描线时,需要与多边形所有边求交,处理效率低。
种子填充算法(区域递归填充算法)
步骤:
1)将种子像素入栈
2)若栈为空,则结束;若栈非空,取出栈顶元素上色
3)判断该元素相邻的左上右下方像素是否是边界像素或是否已上色
4)若既不是边界像素也未上色,则将其入栈 5)返回第 2)步
优点: 递归执行,算法简单;
缺点:会将大量像素入栈,有些像素甚至会入栈多次,不但降低了算法的效率,而且还占用了大量的存储空间。
方向:改进算法,减少递归次数,提高效率。方法之一:使用扫描线区域填充算法;区域填充的扫描线算法非递归,对于每一个待填充区段,只需压栈一次。而在递归算法中,每个象素都需要压栈。因此,扫描线填充算法提高了区域填充的效率。
试比较多边形扫描转换与区域填充方法,分析其联系及不同点。
联系:都是光栅图形面着色,用于真实感图形显示,可以相互转换。
不同点:
1)基本思想不同:多边形的扫描转换是指将多边形的顶点表示转换成点阵表示。在扫描转换过程中利用了多边形各种形式的连贯性。区域填充只改变区域的颜色,不改变区域的表示方法。在填充过程中利用了区域的连通性。
2)对边界的要求不同:在多边形的扫描转换中要求每一条扫描线与多边形边界的交点个数是偶数。在区域填充中要求4连通区域的边界为封闭的8连通区域,而8连通区域的边界为封闭的4连通区域。
3)基本条件不同:在区域填充中要求指定区域内的一点为种子点,然后从这点开始对区域进行着色。对多边形的扫描转换没有这个要求
37.Cohen-Sutherland直线段裁剪算法
Cohen-Sutherland裁剪算法的基本思想是把视窗平面划分为不同的区域,然后利用区域内部的特点来判断线段是否与视窗相交,如果与视窗相交则尝试剪裁。具体步骤如下:
1)为给定线段的两个端点分配4位二进制区域代码。
2)如果两个端点的区域代码都是0000,则表明线段完全在窗口内,则简取。
3)否则,对两个区域块代码执行逻辑与运算{
if结果不是0000,那么线段全在窗口外部,则简弃;
else 如果结果是0000,表明线段部分位于窗口内部{
找到线段与窗口的交点;
用交点替换线段的端点,并更新4位二进制区域代码;
重新回到第 2 步,一直到剪裁完成再退出;
}
中点分割直线段裁剪算法
针对Cohen-Sutherland直线段裁剪算法的非“简取”和“简弃”的情况做了改进,即不通过求解直线和窗口边界的交点就可以对直线进行裁剪。
原理是简单地把直线段等分成两段直线,对每一段重复“简取”和“简弃”的处理,对于不能处理的直线再继续等分成两段直线,直至每一段完全位于窗口内或窗口外。
该计算过程中只用到了加法和移位运算,易于使用硬件实现。
什么叫消影?为什么要消影?
在绘制图形时消除被遮挡的不可见的线或面叫消隐.
在用显示设备描述物体的图形时,必须把三维信息经过某种投影变换,在二维的显示平面上绘制出来,投影失去了深度信息,往往会导致图形的二义性, 要消除这类二义性就要进行消隐。
简述消影算法类别及其特点
按空间不同,可将消影算法分为三类
1)物体空间法:在三位观察空间完成。根据模型的几何关系判断哪些面可见,哪些面不可见。与显示器的分辨率无关。
2)图像空间法:主要在物体投影后的二维图像空间中利用帧缓存信息确定哪些表面遮挡了其他表面。与显示器的分辨率有关。
3)物像空间法:在描述物体的三维观察空间和二维图像空间中同时进行消影。
常见的面消影算法有:画家算法,Z缓冲区(Z-Buffer)算法,扫描线Z-Buffer算法,扫描线算法,区域子分割算法,光线投射算法等。
简述Z-Buffer消影算法的基本思想及优缺点
基本思想是将需要绘制的物体坐标映射到屏幕上,并记录下每个像素点的深度值,再通过比较每个像素点的深度值大小,判断哪些像素点需要绘制。
实现流程包括:
1)建立一个深度缓冲器,初始化为最小深度值;
2)建立一个帧缓冲器,初始化为屏幕背景色;
3)遍历多边形表面的每个像素(xi,yi),计算其深度值zi(xi,yi);
4)将每个像素点的深度值与z-buffer中的深度值进行比较,如果当前像素点深度值比对应位置的z-buffer深度值要小,则更新z-buffer深度值和帧缓冲器中相应位置的颜色值。优点:
1)适用范围广:适用于任何三维模型的消隐,具有一定的通用性。
2)算法简单:对于初学者和快速实现效果的需求来说,Z-buffer消隐算法易于掌握和实现。
缺点:
1)内存消耗大:需要相同数量的内存来存储每个像素点的像素值和深度值,造成内存极大开销。
2)不适用于透明物体:由于透明物体可能会相互遮挡,难以确定前后顺序,因此无法使用Z-buffer消隐算法。
3)可能出现锯齿边缘:当分辨率较低时,可能会出现明显的锯齿边缘,需要增加抗锯齿技术等额外处理。
4)与物体在屏幕上出现的顺序无关,即不能用深度小的像素点代替深度大的。
5)没有利用图像的相关性与连续性。
深度排序算法(画家算法)
原理:与表面投影的顺序有关,在屏幕上先投影离视线远的表面,再投影离视线近的表面,后绘制的表面遮挡了先绘制的表面。
步骤:
1)将屏幕置为背景色
2)把物体的各个面按其离视点的远近进行排序,离视点近的点在表尾,离视点远的点在表头,排序结果存在一张深度优先表中
3)按照从表头到表尾的顺序绘制各个面
46.光线追踪算法过程?递归终止条件?
光线追踪是一种用于渲染图像的计算机图形学技术,通过模拟光线在场景中的传播途径来生成逼真的图像,通常被认为是一种基于物理模型的渲染方法,可以产生高质量、逼真的图像。在光线追踪中,通常从相机位置出发,沿着每个像素的视线方向发射光线,这些光线会与场景中的物体相交,然后根据相交点的材质、光照等属性计算出反射、折射、阴影等效果,并追踪光线的传播路径,直到达到终止条件。
具体步骤:
1)发射光线:从相机位置发射一条光线,沿着视线方向前进。
2)光线与场景中物体的相交判断:遍历场景中的物体,检查光线是否与物体相交,找出与光线最近的物体。
3)计算光线相交点的颜色:对于与光线相交的物体,计算其表面上相交点的颜色。
4)反射和折射的计算:如果物体表面具有反射或者折射的属性,计算相应的反射光线或者折射光线,继续跟踪这些光线。
5)递归:从上一步计算得到的反射光线或者折射光线,重复以上步骤。 在光线跟踪的递归程序中,
递归终止条件有以下几种:
1)光线与场景中没有物体相交:此时跟踪结束,返回背景颜色。
2)到达递归深度限制:光线跟踪过程中的递归深度需要限制,防止程序出现死循环或卡死现象。
3)光线与物体相交点处的材质属性为发光材质:此时跟踪结束,返回相交点的颜色。因为发光材质会向周围发出光线,这些光线会影响物体表面的颜色。
4)光线能量衰减到某个阈值时,也可以结束递归计算。
简述Phong明暗处理算法的步骤
(双线性法向插值)基本步骤:
1)计算多边形顶点处的平均单位法矢量;
2)用双线性插值计算多边形内部各点的法矢量;
3)对多边形内的每一点使用法矢量调用简单光照模型计算光强,然后再将光强分解为该点的RGB颜色。
Gourand明暗处理算法主要步骤有哪些?
Gouraud明暗处理算法(双线性光强插值算法)是三维场景中常用的一种光照处理算法,用于计算物体表面每个顶点的颜色值,以产生逼真的光照效果。
主要步骤:
1)计算多边形顶点的平均法矢量;
2)计算多边形网格的每个顶点根据简单光照模型计算光强;
3)根据每个多边形网格顶点的光强,按照扫描线顺序使用线性插值计算多边形网格边界上每一点的光强;
4)在扫描线与多边形相交区间内,使用线性插值计算区间内每一点的光强。然后再将光强分解为该点的RGB颜色。
比较Gourand明暗处理算法和Phong明暗处理算法的优缺点
Gourand明暗处理算法:
1)优点:计算量小,计算速度较快;对于大型场景具有良好的渲染效果;解决了多边形网格之间亮度不连续过渡的问题;
2)缺点:镜面反射的高光区域旨在最小面片的周围形成,不能在面片内部形成,导致Gouraud明暗处理生成的高光区域明显大于Phong明暗处理生成的高光区域;高光区域的多边形边界明显,马赫带效应没有完全消除。
Phong明暗处理算法:
1)优点:可以精确模拟光线与物体表面之间的相互作用,得到更加逼真的渲染效果,对于高光处理效果非常好;
2)缺点:计算量较大,计算速度相对较慢;对于大规模场景不适用;明暗变化缺乏层次感。同时,由于Phong明暗处理算法对于每个像素点都要计算法向量和光照效果,因此需要更多内存存储信息,算法相对较复杂。
简述简单光照模型和整体光照模型的区别和联系
标签:多边形,光线,答题,数字图像处理,曲线,图形学,像素,算法,物体 From: https://blog.csdn.net/m0_61220114/article/details/1374372281)联系:简单光照模型和整体光照模型都是通过光线对物体的影 响来计算物体的真实感图形。
2)区别:简单光照模型只是处理光源直接照射到物体表面的光强,不能很好的模拟光的折射、反射和阴影 等,也不能用来表示物体间的相互光照明影响,而整体光照模型可以。
简单光照模型是局部光照模型最简单的形式。
局部光照模型仅考虑光源直接照射到物体表面所产生的效果,通常假设物体表面不透明且具有均匀的反射率。局部光照模型能表现出光源直接投射在漫反射物体上所形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影。
整体光照模型除了能表现出光源直接投射在漫反射物体上形成的连续明暗色调,镜面高光以及物体相互遮挡形成的阴影之外,还考虑周围环境对物体表面的影响,能模拟镜面的映像,光的折射以及相邻表面之间的色彩辉映等精确的光照效果。