BeijingNormalUniversityZhuhaiCampus1计算机图形学2014ComputerGraphicsBeijingNormalUniversityZhuhaiCampus2考核方式和评分标准Assessment平时Usuallyresults:30%考勤10%课堂练习、总结报告、测试、上机实验:20%2D3D项目Project:30%2D:15%3D:15%期末笔试paperexam:40%期末笔试120分钟单选题20分20题填空题20分20空简答题20分4问计算题20分3题编程题20分2题BeijingNormalUniversityZhuhaiCampus3第一章概述计算机图形学的概念、定义研究对象BeijingNormalUniversityZhuhaiCampus4BeijingNormalUniversityZhuhaiCampus5计算机图形学的概念及其研究内容计算机图形学是研究通过计算机将数据转换为图形,并在专门的显示设备上显示的原理、方法和技术的学科世界各国的专家学者对计算机图形学有着各自的定义。IEEE的定义为:计算机图形学就是在计算机的帮助下生成图形图像的一门科学或艺术德国的WolfgangKGiloi给出的定义是:计算机图形学由数据结构、图形算法和语言构成。第二章图形系统颜色模型刷新频率像素帧缓存点距分辨率颜色的灰度值图形软件标准BeijingNormalUniversityZhuhaiCampus6北师大学珠海分校信息技术学院77ColorModelRGB模型CMY模型HSV模型YIQ模型OpenGL使用的是哪个颜色模型?北师大学珠海分校信息技术学院8几个名词概念SomeConcepts刷新频率Refreshrate在屏幕上重复画图的频率像素Pixel—每个屏幕上的点帧缓存—framebuffer显示屏幕图像所需要的存储空间帧frame——整个屏幕范围点距spotdistance指荧光屏上两个同样颜色荧光点之间的距离分辨率resolution屏幕图像的密度。一般表示为水平线上面的点数乘以垂直线上面的点数北师大学珠海分校信息技术学院9颜色的灰度值Graylevel单色1bit256色8bit6553616bit真彩色24bit问题:真彩色图像在1024*768的屏幕分辨率下帧缓存需要多大?考虑二个不同的光栅系统,分辨率依次为1024*768和1280*1024,如果每个像素存储24位,这二个系统各需要多大的帧缓存?如果每个像素存储32位呢?如果每秒能传输105位,每个像素有12位,装入1024*768的帧缓存需要多长时间?如果每个像素有24位,装入1280*1024的帧缓存需要多长时间?考虑1024*768和1280*1024的两个光栅系统。若刷新频率为每秒60帧,在各系统中每秒能访问多少像素?各系统访问每个像素的时间是多少?假设真彩色(每像素24位)系统有512*512的帧缓存,那么可以使用多少种不同得颜色选择(亮度等级)?在任意时刻可以显示多少种不同的颜色?帧缓存必须足够快才能避免闪烁问题。一图形工作站分辨率为1280x1024,如果刷新频率为每秒75帧,内存要多快?即从内存中读取一个像素需要多少时间?BeijingNormalUniversityZhuhaiCampus10北师大学珠海分校信息技术学院11图形软件标准GraphicsSoftwareStandardWHY?与设备无关的程序可移植性GKS(GraphicsKernelSystem)1stGSSacceptedbyISO&ANSIPHIGS(Programmer’sHerarchicalInteractiveGraphicsSystem)2ndGSSacceptedbyISO&ANSIOpenGL(OpenGraphicsLibrary)DevelopedbySGI,independentwithplatformDirectXDevelopedbyMicrosoft,independentwithwindows第三章基本图元生成算法BeijingNormalUniversityZhuhaiCampus1213计算机内部表示的矢量图形,必须呈现在显示设备上,才能被我们所认识,这个从图形定义的物理空间到显示处理的图像空间的转换,成为扫描转换或成为光栅化。基本图元的扫描转换就是计算出落在基本图元上或充分靠近它的一串像素,并以此像素近似替代基本图元上对应位置在屏幕上显示的过程。RasterandScanConversion14DDA法(DigitalDifferentialAnalyzer)DDA算法是根据直线的微分方程来计算Δx或Δy生成直线的扫描转换算法。在一个坐标轴上以单位间隔对线段取样,以决定另一个坐标轴方向上最靠近理想线段的整数值。15DDAalgorithm16设(x0,y0)为直线段的始点,(xend,yend)为直线段的终点,且端点坐标均为整数,则直线的微分方程为mxyxxyyendend00If|m|≤1,yi+1=mxi+1+b=m(xi+Δx)+b=yi+mΔxΔx=1,yi+1=yi+mIf|m|1,Δy=1,xi+1=xi+1/m扫描转换开始时,取直线始点(x0,y0)作为初始坐标。算法描述如下:m为直线的斜率DDA法(DigitalDifferentialAnalyzer)17AdvantageandDisadvantageforDDAAdvantage优点:-消除乘法.Disadvantage缺点:-浮点数相加积累误差,对长线段而言,引起像素点位置与理想位置的偏移.-需要圆整操作和浮点计算,消耗时间。18Line’sBresenhamAlgorithm优点:只有整数增量运算准确有效对圆和其他曲线同样有效计算机图形学领域使用最广泛的直线扫描转换方法19Line’sBresenhamAlgorithm如图,起始点为(x0,y0),对每一列(x坐标)确定像素,其行扫描线y最接近直线.假定(xi,yi)已经被显示。下一步要确定的是在xi+1列中是哪个像素被显示(xi+1,yi)?(xi+1,yi+1)?)10(,1,0,0,,),,(),,(01011100mmyxyxyxifyyyxxxbmxyyxendyxstartincinc20Circle’ssymmetry利用圆的对称性,计算从x=0到x=y这段1/8圆弧可以得到整个圆的所有像素点XY(x,y)(y,x)(y,x)(x,y)(x,y)(y,x)(y,x)(x,y)OR45°2R--------图4.5圆的对称性2122如图所示,假定x坐标为xP的像素中最佳逼近理想圆弧的为P(xP,yP)。那么,下一个候选像素NE(xi+1,yi),E(xi+1,yi-1)which?引入NE和E的中点M(xi+1,yi-0.5)ifMin圆内,取NE(xi+1,yi)ifMin圆外,取E(xi+1,yi-1)为此,构造判别式d=F(M)=F(xi+1,yi-0.5)=(xi+1)2+(yi-0.5)2-R2DDA算法和Bresenham算法的原理和比较?BeijingNormalUniversityZhuhaiCampus23圆的方程X2+Y2=R2。如果直接根据圆的方程画图,有什么问题?试列举1种圆的生成算法,并说出它的优点。BeijingNormalUniversityZhuhaiCampus24Bresenham中点画圆法。试找出一种办法使得候选像素点的数量最少,即用算法生成一个点后,圆上的其它点也自动生成?并画图说明。BeijingNormalUniversityZhuhaiCampus2526反走样Anti-aliasing由光栅算法生成的图元有锯齿效应(jaggedorstairstepappearance).像这种由低频率采样引起的变形称为走样(aliasing).这种现象可采用反走样技术来解决.27直线段的过取样将一个像素分为若干子像素,计数有多少个子像素穿过直线路径.每个像素的亮度等级和该像素区域内的穿过直线的子像素的总数成正比。锯齿(阶梯)效应可由这某种程度的模糊直线路径来消除,以达到光滑效果28直线段的过取样第四章多边形填充算法BeijingNormalUniversityZhuhaiCampus2930扫描线填充算法scan-linepolygonalgorithm该算法的基本原理是按扫描线顺序,对每一条扫描线执行如下四步:(1)求交:求扫描线与多边形各边的交点;(2)排序:将求得的交点按递增顺序进行排序;(3)交点配对:确定相交区间;(4)区间填色:将相交区间内的像素置成多边形色,相交区间外的像素置成背景色。•奇数对-多边形色•偶数对-背景色扫描线与多边形顶点相交交点相连边的Y值单调递增和递减,记数一个交点相连边的Y值在局部形成最大值或最小值,记数二个BeijingNormalUniversityZhuhaiCampus3132活性边表ActiveEdgeTable活性边ActiveEdge:与当前扫描线相交的边活性边表(AET):扫描线与活性边求交运算,交点按x坐标递增的顺序存放在一个链表里活性边表中结点信息x,当前扫描线与活性边的交点Δx,当前交点与下一交点的x坐标增量ymax,边所交的最高扫描线的y坐标next,指向下一条边的指针3334算法比较逐点法简单,速度慢,效率低采用活性边表的多边形转换算法相对复杂,利用边的连贯性加速求交运算,利用AET避免了盲目求交,利用扫描线的连贯性避免逐点判别,速度快,效率高。36种子填充法基本思路首先假设有多边形内部至少有一个像素点(种子)是已知的,然后开始搜索与之相邻的其他象素点。如果相邻点不在区域内,就达到了边界。如果相邻点在区域内,则该相邻点就成为新的种子点,继续递归搜索下去。37四连通域搜索程序伪码voidboundaryFill4(intx,inty,intfillColor,int,boarderColor){intinteriorColor;getpixel(x,y,interiorColor)if((interiorColor!=boarderColor)&&(interiorColor!=fillColor)){setPixel(x,y);//setcolorofpixeltofillcolor.boundaryFill4(x+1,y,fillColor,boarderColor);boundaryFill4(x-1,y,fillColor,boarderColor);boundaryFill4(x,y+1,fillColor,boarderColor);boundaryFill4(x,y-1,fillColor,boarderColor);}}38四连通区域法的局限性八连通域搜索程序伪码?BeijingNormalUniversityZhuhaiCampus39第五章图形变换BeijingNormalUniversityZhuhaiCampus4041基本几何变换BasicGeometrictransformation在方向、尺寸和形状方面的变化是通过几何变换来完成的。基本几何变换都是相对于坐标原点和坐标轴进行的。42矩阵表示与齐次坐标MatrixRepresentationandHomogeneousCoordinates问题的提出很多应用包含多个几何变换,如先平移,再进行旋转变换、比例变换等矩阵如何表示才能有效处理多个变换?使用齐次坐标,可将所有变换矩阵可转换成矩阵连乘形式,从而可将图形应用中的所有变换矩阵组合成一个复合矩阵,最后根据初始坐标和复合变换矩阵直接计算最