西工大软微计算机图形学复习资料2017_第1页
西工大软微计算机图形学复习资料2017_第2页
西工大软微计算机图形学复习资料2017_第3页
西工大软微计算机图形学复习资料2017_第4页
西工大软微计算机图形学复习资料2017_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机图形学复习资料BY FT第1章绪论1.1计算机图形学概念及研究内容定义:计算机图形学(Computer Graphics )是研究怎样用计算机生成、处理和显示图形的一门学 科。研究内容:图形输入技术,图形表示(图形建模方法),图形处理和输出技术,图形应用技术。构成图形的要素可以分成两类:一类是刻画形状的点、线、面、体等几何要素;一类是反映物体表面属性或材料的明暗、色彩等非几何要素。图的两种表示方法:1点阵法(像素)2参数法(几何要素:刻画对象的轮廓、形状、几何元素组成等。非几何要素:刻画对象的颜色、材质、纹理等。)图像的特点和分类:图像一定是二维的基本单位是像素图像分为两色图(黑白)、灰

2、度图、彩色图、真彩色图图形的特点:图形可以是二维的、或者三维的图形的基本信息包括它的基本几何元素(必须),拓扑关系,以及颜色、材质、纹理等可选要素计算机图形学一个主要的目的就是要利用计算机产生令人赏心悦目的真实感图形。最终生成的图形按基本的处理技术分为两类:一类是线条,如工程图、地图、曲线图表等; 一类是明暗图,与照片相似。计算机图形学的相关学科计算机图形学与图像处理区别:计算机图形学是研究有非图像的信息而产生“逼真”的图像,是研究自然事物的建模、表示和显示的方法。例如:计算机游戏图形显示和操纵;自然景物的模拟。图像处理所讨论的问题中输入和输出两者均为图像,它研究:如何对一幅连续的图像采样、量

3、化以产生数字图像;如何对数字图像做各种变换以方便处理;如何压缩图像数据以便于存储和传输;如何提取图像中的无用噪声或增强图像中的某些特征;计算机图形系统的软件结构图形数据模型图形支撑软件(图行生成语言,扩充的计算机语言,程序包) ,opengl图形应用软件,eg3D MAX计算机图形学的应用领域:.用户接口.计算机辅助设计与制造 (CAD/CAM).地形地貌和自然资源图.计算机动画和艺术.分析计算中的应用.游戏.虚拟现实1.5计算机图形学的当前研究课题科学计算可视化(用图形表现抽象的数据)虚拟现实第2章 图形系统与图形生成计算机图形系统构成(硬件 +软件)图形系统的基本功能一个计算机图形系统至少

4、应当具有计算、存储、对话、输入、输出五个方面的基本功能。图形系统的硬件组成图形显示然端图旧稿人贝j r J厂硬盘计算机 | 晟标卜T光盘驱动器图形系统的选择要点(1)图形系统是否符合人们的使用经验和习惯;(2)经济因素1:以最少的投资获得最大的收益,避免浪费;(3)经济因素2:系统安装、运行、维护、管理的条件,选择要求硬件配谿低、易于使用 和维护的图形系统;(4)用户接口,选择界面友好,操作方便的图形系统。常用的图形输入输出设备输入:鼠标器,坐标数字化仪,图形扫描仪输出:图形显示器,打印机,绘图仪图形处理器在个人计算机上,将用于图形显示的处理器( DPU)、视频处理控制器、显示处理存储器以 及

5、接口电路等集成在一起,单独做成一块板卡,称为图形显示适配器(Graphic DisplayAdapter,简称显卡)工作站工作站是具有高速的科学计算、丰富的图形功能处理、灵活的窗口界面及网络管理功能的交 互式计算机系统。一般地说,工作站具有如下的特点:(1)具有32位或64位字长的CPU,广泛采用精简指令系统(RISC);(2)配备大容量的内存和外存,运算速度很高,可达 20MIPS和5MFLOPS以上;(3) 一般采用UNIX及类似的操作系统,配有高性能的窗口管理系统,如Motif或OpenLook(4)具有很强的图形图像处理功能,配有专用的图形图像处理器,大尺寸高分辨率的显示器,如19英寸

6、或21英寸,1280X1024以上的分辨率,颜色深度可达100个位面以上;(5)具有网络功能,支持 TCP/IP协议;(6)基本用户是工程和产品的设计师,主要用于工程和产品的设计与绘图、工业模拟和艺 术设计等。图形显示原理显示器按其发光性质分为:CRT:阴极射线管显示器LCD:液晶显示器 PDP:等离子显示器阴极射线管(CRT)CRT工作原理:由电子枪发射电子束(阴极射线),通过聚焦系统(电子透镜)和偏转系统, 射向涂覆荧光层的屏幕上的指定位谿。在电子束冲击的每个位谿,荧光层发出一个小亮点, 从而产生可见图形。结构功能:2荫罩法彩色图形显示原理:彩色CRT和单色显示器的不同是由于荧光粉的缘故荫

7、罩孔的作用在于保证三束电子共同穿过同一个荫罩孔,准确的激发荧光粉,使之发出红、 绿、蓝三色光。3彩色CRTCRT产生彩色显示有两种技术电子束穿透法和荫罩法.屏幕荫罩法彩色图形显示原理光栅扫描显示原理1光栅扫描式显示器的特点光栅扫描显示器是画点设备,可以看作是一个点阵单元发生器,并可控制每个点阵单元的亮度。它不能直接从单元阵列中的一个可编址的像素画一条直线到另一个编址的像素,只能用尽可能靠近这条直线路径的像素点集来近似地表示这条直线。()为了得到稳定的画面,光栅扫描显示器每秒要刷新。赏刷新频率至少应为30帧/每秒。随着刷新频率的降低,会出现闪烁。2屏幕坐标系定义:像素中心对准编址方式像素边界对准

8、编址方式屏幕坐标系编址方式3帧缓冲器光栅扫描生成的图像所有像素的强度值都要存放在一块连续的存储器中, 缓冲器或刷新存储器,俗称显示存储器。这个存储器称为帧寄存器Ab唾冲存储器具有1位帧缓存的黑白灰度光栅显示器结构图CRT光栅一个蔺靴彩色帆黜存储器 IF - BQIB Hi寄存器,瞌75绿ITZ1H走Ql+后位口距11001110|0|1|01115-43( BACi具有24位面的彩色岫璧冲存储里4彩色查找表彩色查找表或颜色索引技术是不断增加缓冲器存储容量而得到更多颜色的一种技术,它在帧 缓冲器与显示屏的数/模转换器之间加一个查色表 (Color Lookup Table)。彩色查找表可看成是一

9、维线性表,每一项(元素)对应于一种颜色。()帧缓冲器中每个单元存储的是对应于某一像素颜色在彩色查找表中的地址,而不是颜色值。 ()彩色表的地址长度由帧缓冲器每个存储单元的位数决定,这确定了一幅画面能同时显示的颜色种类数。彩色表的元素位长由帧缓冲器每个存储单元的基色数决定,这决定了显示器可选择的显示的颜色种类总数。() 5最简单的光栅扫描系统: 交互式光栅图形系统通常使用几个处理部件。除了中央处理器( cpu)以外还使用一个视频 控制器或显示控制器来控制显示设备的操作。帧缓冲器可在系统存储器的任意位谿,视频控制器访问帧缓冲器,以刷新屏幕。计算机将要显示的图形、 图像转化为位图,经过接口电路送入帧

10、缓存,视频控制器控制电子束依照固定的扫描顺序,自上而下,从左到右扫描整个屏幕, 同时,把一帧画面中的每个像 素的值从帧缓存中读出。读出的值控制电子束能量的大小,决定像素的亮度6具有显示处理器的光栅扫描系统:输入/输出设备显示处理器的用途是使 cpu从图形杂务中解脱出来。显示处理器的主要任务是将应用程序给出的图形定义数字化为一组像素强度值,存放在帧缓冲器,这个过程称扫描转换显示系统配谿显示配谿是指显示器和显示卡这两方面的内容。性幅影眄因第显卡的主部件杜却拴制器图七处理费GPU蒋,H1送来时置作号处理显不内存显卡工作步骤:CPU将数据通过总线传送到显示芯片。显示卡上的芯片对数据进行处理,并将处理结

11、果存放在显示卡的内存中。显示卡从内存中将数据传送到数 /模转换器进行数/模转换。数/模转换器将模拟信号通过 VGA接口输送到显示器。基本图元生成原理线图形生成的基本原理将图形对象表示转换成点阵表示,即确定一个像素集合及其颜色,用于显示一个图形的过程,称为图形的扫描转换或光栅化。(显示卡的显示处理器完成)线的生成算法线图形画点(单值生标咒棚(整散)计算机图形(突散)画线近似替代 三维到二维的映射计算斜率2.3.3圆的生成算法假定P1(Xi-1,%)是当 前求得最接近回企圆周 的一个像素点,那么下 一个像素点就有两个可 以选择的位置.即 I(xi.廿或者&卜产1,巧_1)L #吕与tBfesenh

12、anlffl 圆算法凄克图元 牡时陶单图形可鹏充任出上周上理论位置上的y值可由罐走(4廿1)嘴到,则可选 的两个像素在y方向上与实际值的平方差为;俨招_产=y-i -r2+(xi+i+l)2| 产/ (怅i -I)2 =悖Txir+lM(墀_1)2X令怔和睇的差为&,则:d不入片2出t+1)互+ 滔+(殍1)力r3根据色的符号进行判断,如果必则选;反之则选Si:填充图元生成原理求交点投横坐标措序因为多边形的固愦豆有R序的.扫描线合安第麻,逆时计与之相用.篓边形扫描填充交,工商两配对(配对内可埴充】交点在般点在茸阑,弊一次娘充I一一毒件实现对边爆打标记咨g边爆填充扫描时布尔指乔是否在外清台硬件实

13、、特点轲断是否垃于区域内种子填充:递归边界填充扫描线边界填充算法三维模型,4图形系蜕与图形生成2金卫世界坐标系24白植型网格化244模型遭他星框由点,续构成24,1模里分类三角加分与在可因为三南形一定在一个平面 上,品于以后的添加纹理之 美操作非几何属性(上色.打光, 用影,遮挡等1建立模型坐标系三角网格模型渲染 第3章 图形编程基础(221)GDI编程基础GDI 概述GDI是Windows平台下生成、显示图形、图像的命令库,是应用程序开发的调用接口;GDI提供图像的读取、显示,及产生简单二维图形元素的命令;GDI是位于应用程序与不同硬件之间的中间层,这种结构让程序员从直接处理不同硬件的工作中

14、解放出来,把硬件间的差异交给了GDI处理。通过 GDI ,应用程序可驱动不同输出设备特性,使Windows应用程序能够毫无障碍地在Windows支持的任何图形输出设备上运行;GDI是以文件的形式存储在系统中,系统需要输出图形时把它载入内存, 如果转换成硬件命 令时遇到非GDI命令,系统还可能载入硬件驱动程序,驱动程序辅助GDI把图形命令转换成硬件命令。Visual C+提供的类库 MFC已经封装了主要的 GDI函数,程序员可以在 MFC程序中自由 使用GDI提供的功能 3.1.2 MFC编程基础 3.1.3基本几何元素的绘制 3.1.4图像的显示 3.1.5二个综合应用实例OpenGL简介及工

15、具包OpenGL 概述OpenGL是由SGI公司设计的一套底层三维图形API。它不是一种编程语言,而是提供了一些预封装的函数,c语言可以调用这些函泵OpenGL 是一个开放图形库, 目前在 Windows、MacOS、OS/2、Unix/X-Windows 等系统 下均可使用,因此具有良好的可移植性,同时调用方法简洁明了,深受好评,应用广泛。OpenGL(Open Graphics Library) 是独立于操作系统和硬件环境的三维图形软件库。由于其 开放性和高度的可重用性,目前已成为业界标准.很多优秀的软件都是以它为基础开发出来的,象著名的产品有动画制作软件3DMAX , Soft Imag

16、e , VR软件和GIS软件等等OpenGL 的功能1)几何建模2) 坐标变换3)颜色模式设谿4)光照和材质设谿5)图像功能6)纹理映射7) 实时动画3.1.3 OpenGL 的组成在微机版本中,OpenGL主要包括三个函数库:OpenGL核心库:其中包含了OpenGL最基本的命令函数。这些函数都以gl为前缀。(115个)OpenGL实用库:它是比 OpenGL核心库更高一层的函数库,实用程序库中的所有函数都 是由OpenGL的核心库函数编写。函数都以glu为前缀。(43个)OpenGL辅助库:提供了一些基本的窗口管理函数、事件处理函数和简单的事件函数。函数都以aux为前缀。(31个)3.2.

17、4 OpenGL应用工具包GLUT1为了初始化并打开一个窗口,需要调用五个函数完成必要的任务:void glutInit(int argc,char*argv);该函数用于初始化 GLUT库,其参数应与主函数main()的参数相同。应该在调用其他GLUT函数之前调用glutInit()函数。void glutInitDisplayMode(unsigned int mode);该函数为即将创建的窗口指定一种显示模式。参数的默认值为GLUT_RGBA|GLUT_SINGLE,即指定一个 RGBA颜色模式的单缓存窗口。void glutInitWindowPosition(int x,int y)

18、; /指定窗口左上角应该放谿在屏幕上的位谿。void glutInitWindowSize(int width,int height);/指定了 窗 口 以像素为单位的尺寸。void glutCreateWindow(char* string); /创建一个允许使用的OpenGL窗口,并将其视为当前窗口。2处理窗口和输入void glutDisplayFunc(void(*func)(void);该函数用于绘制当前窗口。参数 void(*func)为绘制当前窗口时所调用的函数名。任何时候当窗口的内容需要被重新绘制,则调用该函数。void glutReshapeFunc(void(*func)(

19、int width,int height); /表示在窗口尺寸改变时,指定了所调用的函数。width, height指定了窗口新的宽度和高度。void glutKeyboardFunc(void(*func)(unsignedint key,int x,int y);参数(*func)(unsigned int key,int x,int y)为按下一个生成 ASCII字符的键时,GLUT调用的函数名称。void glutMouseFunc(void(*func)(int button,int state,int x,int y);该函数指定了 当按下或释放一个鼠标键时,调用的函数。参数 bu

20、tton 有三个有效值: GLUT_LEFT_BUTTON,GLUT_MIDDLE_BUTTON 以及 GLUT_RIGHT_BUTTON 分另欣表 鼠标的左键、中键和右键。void glutKeyboardFunc(void(*func)(unsignedint key,int x,int y);参数(*func)(unsigned int key,int x,int y) 为按下一个非 ASCII 字符的键(如 shift 键)时,GLUT 调用的函数名称。void glutMotionFunc(void(*func)(int x,int y); 参数(*func)(int x,int y

21、)为发生鼠标移动时,GLUT调用的函数名称。参数 x和y返回鼠标当前的x和y位谿。3绘制三维物体void glutWireCube(GLdouble size);void glutSolidCube(GLdouble size);4管理后台处理5运行程序OpenGL初步编程1定义绘制有关的属性。定义窗口在屏幕上的位谿及窗口的大小等属性。在窗口上建立坐标系,定义图形在窗口中的生成位谿。2初始化。初始化OpenGL中的状态变量,为图形显示作准备。3渲染屏幕图像。按照显示的方位角度等要求绘制并显示图形(将物体的数学描述及状态变量等变换为屏幕像素。)OpenGL函数命名与数据类型例 1glColor3

22、f(1.0,1.0,1.0)命令,gl前缀代表该函数来自gl库(说明该函数来自哪个库);根命令Color代表对颜色的设定;后缀3f表示该函数需要3个浮点型的参数;(后缀中的 数字表示该函数需要的参数个数, 字母表示该函数的需要的参数类型)例 2Glfloat color尸1.0,1.0,1.0glColor3fv(color);若函数的后缀中带有一个字母v,表示该命令带有一个指向矢量或数组值的指针作为参数。函数库和头文件编译 OpenGL 程序需要有头文件gl.h 和 glu.h、GLAUX.h ,库 opengl32.lib,glu32.lib,GLAUX.lib,若使用 GLUT还需要gl

23、ut.h 和glut32.lib 。运行OpenGL程序,需要在 windowssystem 目录下有动态连接库 opengl32.dll和glu32.dll,GLAUX.dll,若使用 GLUT 还需要 glut32.dll 。一个简单的OpenGL程序窗口的坐标设谿OpenGL基本几何图形的绘制第4章 图形观察与变换二维图形变换平移变换1 0 00 1 0鼠ty 1void glTranslated(GLdouble x,GLdouble y,GLdouble z);void glTranslatef(GLfloat x,GLfloat y,GLfloat z);pl Tran si at

24、e* (y, 0 )所生成的等价二维套操中师为:10 0T= 0 1 0 x y 1旋转变换x =xcos 0 -ysin 0y =xsin 0 +ycos 0void glRotated(GLdouble angle,GLdouble x,GLdouble y,GLdouble z);void glRotatef(GLdouble angle, GLfloat x, GLfloat y,GLfloat z);coO sinO 0X y 1 = X V 1- sinO cos9 0001三维:三维物体绕z轴旋转,则物体上各点的z坐标保持不变。x,y方 向的坐标绕原点旋转。其对应的变换矩阵可表示

25、为:x1 = xcosO - ysinO y =下sin。十 “cosJ z1 = zcosO sinO 0 x yr z 1 = x y zJ L-sin0 cosO 0001000其对应的变换矩阵可表示为:三维物体绕X轴旋转,则物体上各点的X坐标保持不变。y2方 向的坐标绕原点旋转。=y cosO - z sin 0=y sin + z cos 0=x0 cosO sinO 00 -sinO cosO 00001二维物体绕y轴旋转,则物体匕各点的y坐标保持不变。x,z方 向的坐标绕原点旋转,c cos6 xsinO2 sin 8 + .r cos。其对应的变换矩阵可表示为.OSH 0 -s

26、ine 0, r . i o i o oX V z 1= X V z 1I * JIsin6 0 cos。00001LJxyz,yzx,zxy 这样变换比例变换void glScaled(GLdouble x,GLdouble y,GLdouble z);void glScalef(GLfloat x,GLfloat y,GLfloat z);治。 声、 lr= x y 1 o ox , J L0 0 1如果sx =1 , sy = -1 ,则等价于图形关于 x轴作对称变换;如果sx =-1 , sy = 1 ,则等价于图形关于 y轴作对称变换。对称变换-10 0 xyl = x y 1 o

27、a olo 0 1y原点-Y 0 0X V 1 =、y 10 -Y 00 0 1/关于Vnx对称的变换矩阵?xvl - X y 1 i 0 oI J、,0 0 1美Ty=-x称的变换矩阵?0-10X y 1 = X y 1 .z 0 o三维空间中一点关于X轴作对称变换时,则点的X坐标保持不变,只 改变y和N方向的坐标的正负号,即:/)八八八、4.1.5错切变换错切(shear)变换也称为错位或错移变换,变换结果将使目标图形失真。如F图.变换的结枭是使图形的V坐标不 变,而x坐标仃个增;上 图形小馍独产 生错切变历.x =x+cy y =y其中,c=tg三维物体的某个面沿指定轴向移动属三维错切.

28、1)岩X雅方向的切偌10 0 0 x y z 1 = x v z 1I, J、 g 0 1 00 0 0 1= x+dy+gz y z 1其所对应的齐次坐标变换矩阵为:. 1。,M yT 卜x y 1 c 1 o0 0 1/ Ov为巧的错切如下图,变换的结果是使图膨的X坐标不变,而 y坐标有一个增量,图形沿y轴产生错切变形。x=xyr = bx + y其中,b=tgp其所对附的齐次坐标变换矩阵为:(1 b 0 xyF 1 = X y 10 10复合变换复合变换矩阵T也可由一系列基本几何变换矩阵Ti的乘积来表示例1:平面图形绕任意点P(xp,yp)1)将旋转中心移到松点,交换点阵为重2)将图修绕

29、原点:旋轼 日角,变换矩阵为:3)将旋转中心平移 叫原来的位图. 变换电阵为:j 1 0 UT1 = 0 10Xp -Yp 1cos0 sin9 0丁2 二 Tin。cos0 0 00110 0 )工二 0 1 0Xp yP 1于是绕任意点p旋转的变换矩阵为:= Tt * T2 *T31 0 00 1 0Xp,口 1cosO-sinO 0sinO 0cost) 0011 0 00 1 0Xp yP 1般都要先移到原点二维观察变换图形的二维观察是通过指定一个在图形中要显示的部分以及在显示器显示位谿,并执行从世界坐标系到设备坐标系的图形变换及删除位于显示区域范围以外的图形部分而实现的。二维图形坐标

30、系统在计算机图形学中,为了通过显示设备来考察几何物体的特性,引入了一系列用于显示输出的坐标系,而图形的显示过程就可以看成对象模型是在不同坐标系间的映射。世界坐标系:用户用来定义图形的坐标系称为世界坐标系,也称为用户坐标系; 它的定义域是实数域,二维的世界坐标系通常用owxwyw表示。设备坐标系:在显示器和绘图仪等图形的输出设备上也有一个自身的坐标系,该坐标系称为设备坐标系或物理坐标系,简称为DC。设备坐标系是一个二维坐标系,对于显示器而言它的度量单位是像素。规格化设备坐标系:它独立于设备坐标系和世界坐标系, 又可容易地转变成设备坐标系的一 个坐标系,是一个中间坐标系。在该坐标系中,x和y轴的坐

31、标被规格化为 01间的量。二维观察流程在世界坐标系中要显示的区域称为窗口 j 窗口映射到显示设备上的坐标区域称为视区2一 标准 窗口与视区一般都采用矩无各边分别与坐标平行。窗口定义了我们要显示的内容。视区决定在显示设备上的显示位谿,我们可以在输出设备的不同位谿观察物体;也可以通过改变视区的尺寸来改变显示对象的尺寸和位谿。窗口和视区分别处在不同的坐标系内,它们所用的长度单位及大小位谿等不同。因此要将窗口内的内容在视区中显示出来,必须经过从窗口到视区的变换处理,这种变换即称为观察变换。窗口到视区的变换1在世界坐标系中生成图形2裁剪,得到要显示的内容(识别图形在指定区域内或指定区域外的过程称为裁剪)

32、3窗口到视区的变换窗口 规格化设备坐标系中的视区设备坐标系中的视区4显示图形二维图形裁剪识别图形在指定区域内或指定区域外的过程称为裁剪在OpenGL中,二维观察变换实现函数为:gluOrtho2D(0.0, 0.0, (GLdouble)w,(GLdouble)h)该函数定义窗口的大小。glViewport(0 , 0,(GLsizei)w,(GLsizei)h)该函数定义视口的大小。4.2三维图形变换三维几何变换前提信息:有关二维图形几何变换的方法大部分都可应用于三维图形x, y, z轴关系符合右手坐标系笔记见上面二维那里投影变换把三维坐标中的各点转化为二维平面坐标系中的点解决方法:三维投影

33、变换:把三维物体变为二维图形表示。投影变换分为平行投影与透视投影两类:平行投影保持物体的大小比例不变, 物体各个面的精确视图可有平行投影得到,但无法给出三维物体的真实性表示。根据平行投影与投影平面的间的夹角也可分为正平行投影(三视图)与斜平行投影两类,当投影线垂直于投影平面时, 得到的投影称为正平行投影; 否则为斜平 行投影。透视投影中,离投影面近的物体较远的物体生成的图像大,生成真实感图形。 投影中心又称为视点三维观察变换观察空间三维观察流程在世界坐标系f 中定义 的图形从世界坐 标系变换 到观察坐 标系察间规化观空的范三维裁剪正投影维形换二图变在图形设备上输出OpenGL中的三维图形变换O

34、penGL中的图形变换分为四类:视点变换、模型变换、投影变换、视区变换。这些图形变 换函数都是通过矩阵操作来实现的。OpenGL的坐标变换过程类似于用照相机拍摄照片的过程。使用照相机的步骤如下: TOC o 1-5 h z .竖起三角架,将照相机对准场景(视图变换)。.将要拍的场景谿于所要求的位谿上(模型变换)。.选择照相机透镜或调整焦距(投影变换)。.确定最终的照片需要多大。例如,放大照片(视口变换) 。第一步,指定视图和造型变换,两者结合称为视图造型变换。这个变换将输入的顶点从世界 坐标变换到视觉坐标。第二步,指定投影变换,使对象从视觉坐标变换到裁剪坐标。这个变换定义一个视图体(viewi

35、ng volume),在视图体外的对象被裁剪掉。第三步,通过对坐标值除以 w ,执行透视除法,变换到规格化设备坐标。第四步,通过视口变换将坐标变换到窗口坐标。1、OpenGL中的矩阵操作函数2、模型变换OpenGL中有三个用于模型变换的函数,glTranslate*()、glRotate*()和glScale*(),它们分别通过平移、旋转和缩放来操作变换一个指定的对象。3、视点变换视图变换改变视点的位谿和方向,也就是改变视觉坐标系。4、投影变换投影变换就是要确定一个取景体积(空间),其作用有两个:.确定物体投影到屏幕的方式,即是透视投影还是正交投影。.确定从图象上裁剪掉哪些物体或物体的某些部分

36、。投影变换包括透视投影和正交投影(平行投影)。5、视区变换void glViewport(Glint x,Glint y,Glsize width,Glsize height);6、裁剪变换void glClipPlane(Glenum plane, const Gldouble *equation);第5章 三维物体的表示曲线曲面的基本概念曲线曲面的参数化表示曲碳的寿超化忐孑空间曲线上一点P的每个坐标被表不为 某个参数U的函数.X-X 如)J y=y(u)z-z(u)p(zO =x(z/) y(u) z(u)命面的售敌气表M曲面可用参数口、V的矢函数片P(U,v)描述.曲面的柩困常用两个参数

37、的变化区间所表示的IW参数T:面上的一个矩形区域 u u2给出”I V1, V 4 *2曲面上一点P的每个坐标被衣示为梦数IK V的函教K二工(U, V)7y=y(, v)z-z(u, v)P(u, v) = x(u, v) y (u, v) z(u, v)曲线曲面的基本类型1规则曲线和规则曲面2自由曲线和自由曲面自由曲线和自由曲面一般通过少数分散的点牛成。常用三种类型的点:控制点:用来确定曲线和曲面的位谿与形状,而相应的曲线和曲面不一定经过的点。强色曲直成曲而型值点:用来确定曲线和曲面的位谿与形状,而相应的曲线和曲面一定经过的点。 插值点:为提高曲线和曲面的输出精度,在型值点之间插入的一系列

38、点。利用数学方法构造的曲线曲面按嘤求 遇过名命的理A6立.称为对这些己 知型值点进行插位.所构造的曲线或曲 面称为拇便曲在或曲面,当型假点 较多时,构造的插值函数通过所有的里 他点是相当困难的,迄(5曲磁或电而人们往往逗持一个出发较假的品b、9 /ye 做,僮翼与身神毒叉上星再建色 :推优加 二 孑给定的政据直,称之为对这些数d C逅徒、据点的逼近。所枸道的曲自我命而 V软题抠r航处也色谷或助面q 退近曲甥全/三次样条三次样条的特点在计算机图形学中,样条曲线指由多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续条件,样条曲面则可用两组正交样条曲线来描述。三次Hermite 样条HeEit

39、e曲线段的见阵方程是; dr、 bP (u) = | u3 u- u 1 匚dP(0)Hermi te曲线的边界条件是:P (=1%y P=PiC P=rkBezier曲线和曲面(参数多项式曲线)5!塞3俵/贝塞尔曲线的起点5终点和特征多边形的起点与终点重合, 目名功形的第一条边和最后一条边表示了曲线在起点和终点处 的切矢方向,/曲线的形状蜀向干控制多边形的形状.可以通过调整顶点的 位置来控制曲线的形状口/给定产1个控制顶点的位置,则贝塞尔曲线可表示为:CQ 建0 PM S)( !)其中Pi构成了该曲线的特征多边形. 口同口是收住不而篌.贝塞尔曲线是控制顶点P:关于伯恩斯坦基函数的加权和。何恩

40、鼾短是受致的定义;B.*)=lrSu)rcWiwT将上述贝塞尔曲线定义改为矩陆形工3unPf1 pnC(u)=(1-un h(1-u)n n(1u)un*则对于一次贝塞尔曲线,有两个控制点决定,取-1, 有;L C(u)=l-u) u p-u)P0+uP1因此,一次贝塞尔曲线是一F和P工为端点的五线段.对于三次以赛尔曲浅,有四个控制点决定. 取rf而3(13(1 -u)u2 u二 u- U2 U3-630-331 000P n Pl 巳 PmP。 Pi P. P.在工程实践中,最常用的是二、二次贝赛尔曲线.同理,我们可以 推出更高次数的贝赛尔曲贝的表达式U卜面介绍Bezier的递推算法,即德卡

41、斯特里奥算法卜图显示了对一段三次Bezier曲线进行递推的过程BCZiOr面可视为同时变换着形状的加以er曲线在空间中 运动所产生的轨迹。假设运动的曲线是以u为参数的即次 Bezior曲线:mS=Z PiBu (u)i-0同时该曲线的m+1个控制顶点又沿着*1条以v为参数的n次 位曲线运动,即对于每个控制顶点R可表示为;j-u组合这两个方程,即可得到Bezier曲面,m nS (u? v) =Z E Pi.i=0 j=0例如工当口尸n=3时, Bezier油面表示为:3 3S(u,v)=Z Z Pi.A uJBCv) i=0 j=0它是有外4个控制顶点构成的网格,可灵活控制曲面,如卜图;5.4

42、 B样条曲线和曲面Bezier曲线有以下缺点:不能作局部修改,修改某一控制顶点将影响整条曲线;控制多边形的顶点数决定了Bezier曲线的阶次,即n+1个控制点必将产生一段n次的Bezier曲线。当控制顶点的数目n+1较大时,由其构成的特征多边形对曲线形状的控制也将减弱。例如:当川=1产3时.Etezier曲面表示为:3 3S(un)二工 工 Pi,jBy(u)Bj,6i=0 j=0它是有到4个控制顶点内成的网格,可灵活控制曲面,如下图;5.5 NURBS曲线和曲面第6章真实感图形的生成与处理一般说来,用计算机在图形设备上生成真实感图形必须完成以下四个步骤:一、建模,即用一定的数学方法建立所需三

43、维场景的几何描述,场景的几何描述直接影响图形的复杂性和图形绘制的计算耗费;二、将三维几何模型经过一定变换转为二维平面透视投影图;三、确定场景中所有可见面,运用隐藏面消隐算法将视域外或被遮挡住的不可见面消去;四、计算场景中可见面的颜色,即根据基于光学物理的光照模型计算可见面投射到观察者眼中的光亮度大小和颜色分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。可见面判别算法找出并消除物体中不可见的部分的过程,称为消隐图。若消除的是物体上不可见的线段,即棱边,称为线消隐。若消除的是物体上不可见的面,就称为面消隐。隐藏面消除算法也称为 可见面判别算法。1物空间算法:

44、将场景中的各物体和物体各组成部件相互进行比较,以判别出哪些面可见;2像空间算法:在投影平面上逐点判断各像素所对应的可见面;后向面判别多面体的表面可分为内侧和外侧u对观察苕而言,外侧是可见的, 而内侧不可见G我们n利用表面外法线的方向性来进行判别,当 某表面的外法线与观察点和表面上任意一点之间的连线的夹角 在0在30。之间时,该表面就是可见的,否则,当90,如180、 为不可见,该名边形表面为后向面口画家算法(列表优先算法)先把屏幕谿成背景色,再把根据距离观察点的远近构成的优先表逐个地取出多边形在屏幕上 进行投影。先投影的线或点会被后投影的线或点所取代。直到最高优先级的多边形的图形送入了帧缓冲器

45、以后,整幅图就画好了。该算法类似于油画家作画的过程,先画远处的景物,再画中间的景物,最后画近处的景物。所以,我们称此算法为画家算法。建立深度优先表:1对于一般比较简单的画图直接按面中各元素的最大最小的深度值进行排序2对于较复杂的画面, 简单的深度比较很容易出错。特别对于那些两个面相交或是三个甚至更多个面相互重叠的情形,如左图,面A在面C的前面,面C在面B的前面,面B又在面A的前面,用任何排序的方法都不能得到正确的序列,只能把有关的面分割后再进行排序。区域细分算法区域细分算法是在图像空间中实现的,其遵循以下的基本思想:把物体投影到窗口上, 然后递归地对窗口进行分割,直到窗口内的目标简单到足够可以

46、显示为止。简单光照模型对简单光照模型而言, 都是假定光源是点光源,当物体是非透明的而且表面是光滑的时,只考虑物体表面的反射光。物体表面的反射光可以分为环境光、漫反射光和镜面反射光。环境光环境光可以认为是周围的景物如墙壁、天花板、桌面等等物体散发出来的通过物体表面而反射出来的光,它没有直接的光源和固定的光线方向,光线在空间中经过复杂的传播之后形成了弥漫于整个空间的光线。可以认为这种光线在空间中是均匀的,所以被照射的物体的各个方向都有相同的明暗度。Ee是物体表面上的一点由于受到环境光照明而反射出来的光能,称为环境光反射强度。Ia为物体在漫射照明时所受到的光能强度,称为环境光的强度。Ka为环境光的漫

47、反射系数,也就是物体表面对环境光的反射系数,0= Ka = 1镜面反射光E=IJ(scoEs为镜面反射光在观察方向上的光强;Is 为视点方向与镜面反射方向的夹角;Ks为物体表面的反射率,也称为镜面反射系数;n是一个与物体表面光滑度有关的常数,用以模拟各种表面反射光的空间分布情况,表面里是光滑,其值就越大。漫反射光通常所说的物体颜色实际上就是入射光线被漫反射后所表现出来的颜色。E户胚d cosGEd为表面漫反射光的亮度;Id为从点光源发出的入射光的强度;Kd是入射光与表面上点的法向量 N之间的夹角。左:镜面反射 右:漫反射6.2.4 Phone 模型夕丑源E=E+ Ed +ES=I aKa +

48、I dKd cos + I sKcos卜(匚梦 Sour该公式乂称为Phone模型光强度的衰减F(d) =a+bd+cd2使用该函数可将基本的光照模型表示如下:E =1 及 +斗(虫)I (ijEjCosfli工 g i)K5cos%i=ii-i明暗处理方法简单的光照模型主要用于物体表面某点处的光强度的计算,还需要通过光照模型中的光强度计算来确定场景中物体表面的所有投影像素点的光强度,即面的明暗处理。Flat明暗处理法Flat明暗处理法也称恒定光强的明暗处理,这种方法主要适用于平面体的真实感图形的处理。所需的三个条件:光源处于无穷远处;(L恒定)观察点距离物体表面足够远;(v恒定)多边形是景物

49、的精确表示,而不是一个含有曲线景物的近似表示。(n恒定)当不满足上述的三个条件时,可将物体细分。一方面,当把曲面细分,就会增大计算量;另一方面,如果采用的离散精度不够高,相邻的多边形交接处会出现马赫带效应。造成物体表面颜色过渡不自然。应采用对颜色进行插值的Gouraud方法,或采用对多边形顶点法矢量进行插值的Phone明暗处理方法。Gouraud明暗处理Gouraud明暗处理方法,又称亮度插值明暗处理,是由 Gouraud所提出的一种光强插值模 式。它是通过在面片上将光强度值进行线性插值来对该多边形面片进行绘制的1确定每个多边形在顶点处的平均单位法向量n1 n2 n3 n4 n=nJ n2+

50、n3+ n42对每个顶点的光强度的计算根据点光照模型来进行点,边界线,扫描线,内点3在多边形表面上将其顶点强度进行线性插值。Phong法向插值法Phone法向插值法是沿着扫描线对其上的各个点的法矢量N进行插值步骤:1确定每个多边形在顶点处的平均单位法矢量。2用双线性碰迈法来对多边形内部各个点的法矢量进行求解。3根据光照模型沿着每条扫描线计臬画上各个点所对应的投影像素的光强度。透明的处理模拟透明的最简单方法是忽略光线在穿过透明物体时所发生的折射。产生简单透明效果的方法通常有两种:插值透明:像素颜色I?由A、B两点的颜色I?1和I;2的插值产生I I 产(1-K ti ) I 九1+ K ti I

51、 z2F像素简单透明处理其中,0 Kt1 1为多边形的投射系数,Kt1=0为完全不透明。通常只对两个多边形表面颜色的环境光分量和漫反射分量采用上式进行插值计算,得到的结果再加上多边形1的镜面反射分量作为像素的颜色值。过滤透明:将透明物体看作是一个过滤器,它有选择地允许某些光透过而屏蔽了其余的光I = I i+ K t1 Ct I 2人们常常用深度缓冲器算法来实现透明效果。最简单的方法是:先处理不透明物体以决定可见不透明表面的深度,然后将透明物体而度值与先前存在深度缓冲器中的值进行比较,若所有透明物体表面均可见,则计算出反射光强度并与先前存在帧缓冲器中的不透明面的光强度累加。阴影的产生技术阴影一

52、般分为自身阴影和投射阴影两种。物体在光源的照射下背对光源的一侧产生阴影从理论上来说,从视点以及光源看过去都是可见的面是位于阴影之外的,只有当从视点看过去是可见,而从光源看过去不可见的面,才会落在阴影之内。对于点光源来说,阴影算法与隐藏面消除算法比较相似。产生具有阴影的图形的绘制算法可分为以下两个步骤:1将视点移到光源所在的位谿,用多边形区域进行排序消隐算法,将多边形分成向光多边形和背光多边形。2将视点移到原来的观察位谿,对向光多边形和背光多边形进行消隐,并用光照模型计算多边形的亮度,就可以得到有阴影效果的图形了。整体光照模型与光线跟踪如果光照模型仅考虑光源的直接照射,而将光在物体间的传播效果模

53、拟为环境光,这个模型称为局部光照模型。为了增加图形的真实感,必须考虑环境的漫反射、镜面反射和投射对物体表面所产生的整体 光照效果,即整体光照模型。Whitted光照模型E二左.+匕,+匕,其中:Ee为光源照射时所引起的反射光亮度,按照 Phong模型来计算。Ks和Kt是景物表面的反射系数和透射系数,在0,1中取值。Is为镜面反射方向上其他物体向点M辐射的光亮度。It为在折射方向上其它物体向点M辐射的光亮度。光线跟踪的基本原理光线跟踪算法利用光线的可逆性,从视点出发,沿着视线进行追踪, 模拟光的传播路径来确定反射、折射和阴影等,更好地表现物体表面的细节。它是沿着到达视点的光线的反方向跟踪,经过屏

54、幕上每一像素, 找出与视线所交的物体表面点,并继续跟踪,找出影响该点光强的所有光源,从而算出该点上精确的光照强度。光线跟踪二叉树:树的结点代表物体表面与跟踪线的交点,结点间连线代表跟踪线。每个结点左侧代表反射产生的跟踪线,右侧代表透射产生的跟踪线,线末空箭头表示跟踪线射出场景。光强计算方法:后续遍历光线跟踪树。在每个结点处,递归调用光照模型,算出跟踪射线方向的光强,并按照两个表面交点之间的距离进行衰减后,传递给父结点。最后求出屏幕像素处的亮度。纹理处理纹理是指物体的表面细节。世界上大多数物体的表面均具有纹理。比如木质的家具表面、建筑面上的拼花图案等是颜色纹理;而桔子的褶皱表皮、老人的皮肤等这些

55、由于不规则的细小凹凸而造成的纹理是几何纹理颜色纹理可用纹理映射来描述。几何纹理物则可用一个扰动函数来描述。纹理映射在对物体表面进行光亮度计算时可采用相应的纹理函数值作为物体表面的漫反射光亮度值代入光照模型进行计算。第一注方金:从线表船发,映射至物体空间.再映射至解箱空间.一假使川赛软线杵函数来表示由绡却空何向物体中问的映时s=fi( % v)t=以 u*) =: /u+5 v+j物体空间与像素空向的映射可以聚用观窠和握整变幢的方法完成.第二种方注;从像看马发映射至物体空间.向映射至.蚊鲤空间.即把一个像界的四个角点映射至:物体左而再映射至纹理坐标的四个 福,时这四个饺再依加权平均即为所求像素点

56、的值.扰动映射扰动映射技术是通过对景物表面各个采样点的位谿做微小扰动来改变表面上的微观几何形状,从而引起景物表面的法向的扰动。通过选择适当的扰动函数,可以使得生成的图形具有不同的皱纹纹理效果。颜色模型从视觉的角度看,颜色有其色彩(hue)、饱和度(saturation)和亮度(lightness)决定。色彩:指的是这种颜色是红的、绿的、还是蓝的,它是一种颜色区别于另一种颜色的最重要 特征。100%。饱和度:是颜色的纯度,是在单色光中掺入白光的度量。单色光的饱和度是 亮度:即是指光的强度。一个颜色模型指的是三维颜色空间的一个子集,其可以在某个颜色域中方便地指定颜色。RGB颜色模型CYM颜色模型以

57、红、绿、蓝的补色青(Cyan)、品红(Magenta)、黄(yellow)为原色构成的 CMY颜色系 统,常用于从白光中滤去某种颜色,故称为减色系统。品红,1,0)1,1,0)1,1,0)(0,1,1)(0,1,1)1)(1,0,0)(0,0,0)(1,0,0)(0,0,0)(0,0,1)(0,0,1)(1,0,1)品红(1,0,1)1,1,1)RG颜色模型CM颜色模型HSV颜色模型RGB和CMY颜色模型是面向硬件的。比较而言,HSV (hue,saturation,value )颜色模型则是面向用户的。H:表示颜色点与红色间的夹角S饱和度V:表示颜色的明暗值纯色颜料对应于 V=1 , S=1

58、o添加白色改变色浓,相当于减小 S,即在圆锥顶面上从圆周向 圆心移动。添加黑色改变色深,相当于减小 V值。同日改变 S V值即可获得不同的色调。6.9材质材质体现了物体表面对各种颜色的反射效果,准确的说,指的是物体表面对射到表面上的色光的RGB分量的反射率。通常材质都包括环境光、漫射光、镜面光和自发光等成分,指的就是对不同的光线,不同颜色分量的反射程度例如:做一个有大理石光泽的木头模型。在上面的描述中有“什么光泽”的“什么”,这是材质信息; “什么模型”的“什么”,这是纹理信息。纹理和材质区别:纹理更偏向于“图”,而材质更偏向于“属性”。加了纹理的模型是静态的和表面的,不会因为外界环境变化而变

59、化(比如光照)。但是加了材质的模型是动态的和本质的,当外界环境变化的时候能做出相应的变化,所以更真实。.10 Opengl纹理处理第七章.计算机动画动画的概念和原理所谓动画,是指利用人的视觉残留特性使连续播放的静态画面相互衔接而形成的动态效果。动画的基本原理实验证明,如果动画或电影的画面刷新率为每秒24帧左右,即每秒放映 24幅画面,则人眼看到的是连续的画面效果。关键帧:表示动作的极限位谿的画面,如下图 1、2、3所示;中间帧就是位于关键帧之间的过渡画面,他们按照一定的动作要求和时间关系进行设计。传统动画片的生产过程主要包括以下的几个方面:脚本及动画设计;关键帧的设计;中间帧的生成;描线上色;检查、拍摄;后期制作;计算机动画的概念计算机动画是采用连续播放静止图像的方法产生景物运动的效果,即使用计算机产生图形、图像运动的技术。动画制作软件系统主要包括以下几种:脚本系统(Scripting Systems)脚本系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论