《计算机图形学4陈永强优秀PPT.ppt》由会员分享,可在线阅读,更多相关《计算机图形学4陈永强优秀PPT.ppt(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1o基本概念基本概念o三维形体的表示三维形体的表示o非规则对象的表示非规则对象的表示o层次建模层次建模图形的表示与数据结构图形的表示与数据结构2o造型技术造型技术o基本图形元素基本图形元素o几何信息与拓扑信息几何信息与拓扑信息o坐标系坐标系o实体的定义实体的定义o正则集合运算正则集合运算o欧拉公式欧拉公式4.1 基本概念基本概念3o把把探探讨讨如如何何在在计计算算机机中中建建立立恰恰当当的的模模型型表表示示不不同图形对象的技术称为造型技术。同图形对象的技术称为造型技术。o有两类图形对象:有两类图形对象:o 规则对象:几何造型、几何模型。规则对象:几何造型、几何模型。o 不规则对象:过程式模拟。
2、不规则对象:过程式模拟。基本概念基本概念造型技术造型技术4基本概念基本概念基本图形元素基本图形元素p基本图形元素:图素或图元、体素。基本图形元素:图素或图元、体素。p图素是指可以用确定的几何参数和属性参数描图素是指可以用确定的几何参数和属性参数描述的最基本的图形输出元素。述的最基本的图形输出元素。p在二维图形系统中将基本图形元素称为图素或在二维图形系统中将基本图形元素称为图素或图元,在三维图形系统中称为体素。图元,在三维图形系统中称为体素。基本概念基本概念基本图形元素基本图形元素o点,点,0维维o线,一维线,一维o面,二维面,二维o环,二维环,二维o体,三维体,三维6o图形信息与非图形信息图形
3、信息与非图形信息n图图形形信信息息:点点、线线、面面的的位位置置和和几几何何尺尺寸寸,及及相互关系。相互关系。n非非图图形形信信息息:线线型型、颜颜色色、亮亮度度及及模模拟拟分分析析用用的质量、比重、体积等数据。的质量、比重、体积等数据。基本概念基本概念几何信息与拓扑信息几何信息与拓扑信息7o图形信息图形信息o几何信息:形体在欧氏空间中的位置和大小。几何信息:形体在欧氏空间中的位置和大小。o拓拓扑扑信信息息:形形体体各各重重量量(点点、边边、面面)的的数数目目及及其相互间的连接关系。其相互间的连接关系。基本概念基本概念几何信息与拓扑信息几何信息与拓扑信息图图4.1 4.1 拓扑信息拓扑信息9o
4、刚刚体体运运动动:不不变变更更图图形形上上随随意意两两点点间间的的距距离离,也不变更图形的几何性质的运动。也不变更图形的几何性质的运动。o拓拓扑扑运运动动:允允许许形形体体作作弹弹性性运运动动,即即在在拓拓扑扑关关系系中中,对对图图形形可可随随意意地地伸伸张张扭扭曲曲。但但图图上上各各个个点点仍仍为为不不同同的的点点,决决不不允允许许把把不不同同的的点点合合并并成成一个点。一个点。基本概念基本概念几何信息与拓扑信息几何信息与拓扑信息10o建建模模坐坐标标系系(MC,ModelingCoordinateSystem),造型坐造型坐标标系,局部坐系,局部坐标标系系o用用户户坐坐标标系系(WC,Wo
5、rldCoordinateSystem),整整体坐体坐标标系,全局坐系,全局坐标标系系o视视察坐察坐标标系(系(VC,ViewingCoordinateSystem)o规规 格格 化化 设设 备备 坐坐 标标 系系(NDC,Normalized DeviceCoordinateSystem)o设备设备坐坐标标系(系(DC,DeviceCoordinateSystem)基本概念基本概念坐标系坐标系11基本概念基本概念实体实体图图4.2 4.2 带有悬挂边的立方体带有悬挂边的立方体4.1.44.1.4基本概念基本概念实体实体o三维形体(客观世界)三维形体(客观世界)正则形体(数学)正则形体(数学)
6、o刚性刚性o维数的一样性维数的一样性o占据有限的空间占据有限的空间o边界的确定性边界的确定性o封闭性封闭性13o点点的的邻邻域域:假假如如P是是点点集集S的的一一个个元元素素,那那么么点点P的的以以R(R0)为为半半径径的的邻邻域域指指的的是是围围绕绕点点P的的半半径径为为R的的小球(二维状况下为小圆)。小球(二维状况下为小圆)。o开开集集的的闭闭包包:是是指指该该开开集集与与其其全全部部边边界界点点的的集集合合并并集集,本身是一个闭集。本身是一个闭集。o正正则则集集:由由内内部部点点构构成成的的点点集集的的闭闭包包就就是是正正则则集集,三三维维空间的正则集就是正则形体。空间的正则集就是正则形
7、体。基本概念基本概念实体实体14基本概念基本概念实体实体o组成三维物体的点的集合可以分为两类:组成三维物体的点的集合可以分为两类:n内点:为点集中的这样一些点,它们具有完内点:为点集中的这样一些点,它们具有完全包含于该点集的充分小的邻域。全包含于该点集的充分小的邻域。n边界点:不具备此性质的点集中的点。边界点:不具备此性质的点集中的点。15基本概念基本概念实体实体o定义点集的正则运算定义点集的正则运算r运算为:运算为:o正正则则运运算算即即为为先先对对物物体体取取内内点点再再取取闭闭包包的的运运算算。rA称为称为A的正则集。的正则集。16基本概念基本概念实体实体图图4.3 4.3 实体的例子实
8、体的例子17图图4.4 4.4 正则形体正则形体基本概念基本概念实体实体18o正则形体(数学)正则形体(数学)二维流形二维流形实体(计算机)实体(计算机)o二维流形指的是对于实体表面上的随意一点,都可以找二维流形指的是对于实体表面上的随意一点,都可以找到一个围围着它的随意小的邻域,该邻域与平面上的一到一个围围着它的随意小的邻域,该邻域与平面上的一个圆盘是拓扑等价的。个圆盘是拓扑等价的。基本概念基本概念实体实体图图4.5 4.5 正则形体正则形体19o实实体体:对对于于一一个个占占据据有有限限空空间间的的正正则则形形体体,假假如其表面是二维流形,则该正则形体为实体。如其表面是二维流形,则该正则形
9、体为实体。基本概念基本概念实体实体20p有效实体的封闭性。有效实体的封闭性。p把把能能够够产产生生正正则则形形体体的的集集合合运运算算称称为为正正则则集集合合运运算。算。基本概念基本概念正则集合运算正则集合运算21图图4.6 集合运算与正则集合运算集合运算与正则集合运算基本概念基本概念正则集合运算正则集合运算o正则运算方法正则运算方法o间接方式:先依据通常集合运算求出结果,然间接方式:先依据通常集合运算求出结果,然后再用一些规则加以推断;基于点集拓扑学的后再用一些规则加以推断;基于点集拓扑学的邻域概念。邻域概念。o干脆方式:定义出正则算子的表达式,干脆得干脆方式:定义出正则算子的表达式,干脆得
10、出符合正则形体定义的结果。出符合正则形体定义的结果。23图图4.7 基于点的邻域概念生成正则形体基于点的邻域概念生成正则形体基本概念基本概念正则集合运算正则集合运算基本概念基本概念正则集合运算正则集合运算oACISoACIS是美国是美国Spatial Technology公司推出公司推出的三维几何造型引擎,它集线框、曲面和实体的三维几何造型引擎,它集线框、曲面和实体造型于一体,并允许这三种表示共存于统一的造型于一体,并允许这三种表示共存于统一的数据结构中,为各种数据结构中,为各种3D造型应用的开发供应了造型应用的开发供应了几何造型平台。几何造型平台。25基本概念基本概念平面多面体与欧拉公式平面
11、多面体与欧拉公式o平平面面多多面面体体:多多面面体体中中最最常常见的的一一种种,指指表表面面由由平平面面多多边形构成的三形构成的三维物体。物体。o欧欧拉拉公公式式证明明简洁多多面面体体的的顶点点数数V、边数数E和和面面数数F满足足如下关系:如下关系:V-E+F=2。o非非简洁多多面面体体需需对欧欧拉拉公公式式加加以以扩展展。令令H表表示示多多面面体体表表面面上上孔孔的的个个数数,G表表示示贯穿穿多多面面体体的的孔孔的的个个数数,C表表示示独独立立的的、不不相相连接接的的多多面面体体数数,则扩展展后后的的欧欧拉拉公公式式为:V-E+F-H=2(C-G)。)。26基本概念基本概念平面多面体与欧拉公
12、式平面多面体与欧拉公式图图4.9 平面多面体与欧拉公式平面多面体与欧拉公式27o线框模型框模型o早期早期计算机算机图形生成技形生成技术,缺陷:,缺陷:o第一,模型有二第一,模型有二义性;性;o其次,无面信息,易形成无效形体;其次,无面信息,易形成无效形体;o第三,无曲面第三,无曲面轮廓廓线,不能表示曲面信息。,不能表示曲面信息。4.2 三维形体的表示三维形体的表示28o实体模型(体模型(实体造型技体造型技术)o实体模型大致分体模型大致分为三三类:n边界表示(界表示(B-reps,Boundaryrepresentation)n构构造造实体体几几何何表表示示(CSG,Constructive S
13、olidGeometry)n空空间分割(分割(Space-partitioning)表示表示4.2 三维形体的表示三维形体的表示29o多边形表面模型多边形表面模型o扫描表示扫描表示o构造实体几何法构造实体几何法o空间位置枚举表示空间位置枚举表示o八叉树八叉树oBSP树树oOpenGL中的实体模型函数中的实体模型函数三维形体的表示三维形体的表示30o边边界界表表示示(B-reps)的的最最普普遍遍方方式式是是多多边边形形表表面面模模型型,它它运运用用一一组组包包围围物物体体内内部部的的平平面面多多边边形,也即平面多面体,来描述形,也即平面多面体,来描述实实体。体。多边形表面模型多边形表面模型图图
14、4.10 4.10 四面体及其点、边、面的关系四面体及其点、边、面的关系31多边形表面模型多边形表面模型数据结构数据结构o几何信息几何信息n建建立立3张张表表:顶顶点点表表、边边表表和和多多边边形形表表来来存存储几何数据。储几何数据。n实实体体模模型型中中,用用多多边边形形顶顶点点坐坐标标值值以以及及多多边边形形所所在在平平面面方方程程方方式式保保存存实实体体单单个个表表面面部部分分的空间方向信息的空间方向信息32多边形表面模型多边形表面模型数据结构数据结构o拓拓扑扑信信息息:翼翼边结构构表表示示(WingedEdgesStructure)图图4.11 4.11 翼边结构表示翼边结构表示33多
15、边形表面模型多边形表面模型数据结构数据结构o属性信息属性信息o 用用属属性性表表来来存存储储多多边边形形面面的的属属性性,指指明明物物体体透透亮亮度度及及表表面面反反射射度度的的参参数数和和纹纹理理特特征等等。征等等。34o多多边边形形网网格格:三三维维形形体体的的边边界界通通常常用用多多边边形形网网格(格(polygonmesh)的拼接来模)的拼接来模拟拟。o例子例子多边形表面模型多边形表面模型图图4.12 4.12 三角形带与四边形网格三角形带与四边形网格35o扫扫描描表表示示法法(sweeprepresentation)可可以以利利用用简洁简洁的运的运动规则动规则生成有效生成有效实实体。
16、体。o包含两个要素包含两个要素o一是作一是作扫扫描运描运动动的基本的基本图图形(截面);形(截面);o二是二是扫扫描运描运动动的方式。的方式。扫描表示(扫描表示(sweep representationsweep representation)36o构构造造实实体体几几何何法法(CSG)由由两两个个实实体体间间的的并并、交或差操作生成新的交或差操作生成新的实实体。体。构造实体几何法构造实体几何法图图4.13 4.13 构造实体几何法构造实体几何法37o在在构构造造实实体体几几何何法法中中,集集合合运运算算的的实实现现过过程程可可以用一棵二叉树(称为以用一棵二叉树(称为CSG树)来描述。树)来描
17、述。n树的叶子是基本体素或是几何变换参数;树的叶子是基本体素或是几何变换参数;n树树的的非非终终端端结结点点是是施施加加于于其其子子结结点点的的正正则则集集合合算算子子(正正则则并并、正正则则交交和和正正则则差差)或或几几何何变换的定义。变换的定义。构造实体几何法构造实体几何法38构造实体几何法构造实体几何法图图4.14 4.14 由由CSG树产生二维形体的实例树产生二维形体的实例39o优优点点:假假如如体体素素设设置置比比较较齐齐全全,通通过过集集合合运运算算就可以构造出多种不同的符合就可以构造出多种不同的符合须须要的要的实实体。体。o缺缺点点一一:集集合合运运算算的的中中间间结结果果难难以
18、以用用简简洁洁的的代代数方程表示,求交困数方程表示,求交困难难。o缺缺点点二二:CSG树树不不能能显显式式地地表表示示形形体体的的边边界界,因而无法干脆因而无法干脆显显示示CSG树树表示的形体。表示的形体。构造实体几何法构造实体几何法40o解决:光解决:光线投射算法投射算法构造实体几何法构造实体几何法图图4.15 4.15 光线投射算法光线投射算法(实体实体A B取取ad,实体,实体AB则取则取cb,实体实体A-B则取则取ab)41o空空间间位位置置枚枚举举表表示示法法将将包包含含实实体体的的空空间间分分割割为为大大小小相相同同、形形态态规规则则(正正方方形形或或立立方方体体)的的体素,然后,
19、以体素的集合来表示图形对象。体素,然后,以体素的集合来表示图形对象。o二维状况,常用二维数组存放。二维状况,常用二维数组存放。o三维状况下,常用三维数组三维状况下,常用三维数组pijkpijk来存放。来存放。空间位置枚举表示空间位置枚举表示42o特点特点n穷举法,可表示任何实体。穷举法,可表示任何实体。n易实现实体的集合及体积计算等。易实现实体的集合及体积计算等。n无明确边界信息,不适合图形显示。无明确边界信息,不适合图形显示。n需大量存储空间需大量存储空间-分割检索法。分割检索法。空间位置枚举表示空间位置枚举表示43o八八叉叉树树(octreesoctrees)又又称称为为分分层层树树结结构
20、构,它它对对空空间间进进行行自自适适应应划划分分,接接受受具具有有层层次次结结构构的的八八叉树来表示实体。叉树来表示实体。o对对空空间间位位置置枚枚举举表表示示法法的的空空间间分分割割方方法法的的改改进进,为自适应划分。为自适应划分。八叉树八叉树44八叉树八叉树四叉树四叉树图图4.16 4.16 二维图的四叉树表示二维图的四叉树表示45八叉树八叉树图图4.17 4.17 三维空间分成八个卦限及其节点表示三维空间分成八个卦限及其节点表示46o二二 叉叉 空空 间间 分分 割割(Binary Space Partitioning,BSP)树树方方法法是是一一种种类类似似于于八八叉叉树树的的空空间间
21、分分割割方方法法,它它每每次次将将一一实实体体用用任任一一位位置置和和任任一一方方向向的的平平面面分分为为二二部部分分(不不同同于于八八叉叉树树方方法法的的每每次次将将实实体体用用平平行行于于笛笛卡卡尔坐标平面的三个两两垂直的平面分割)。尔坐标平面的三个两两垂直的平面分割)。BSP树树47oGLUT库中的多面体函数库中的多面体函数OpenGL中的实体模型函数中的实体模型函数函数说明glutSolidTetrahedron()glutWireTetrahedron()绘制中心位于世界坐标系原点的实心四面体和线框四面体,四面体的半径为 。glutSolidCube(size)glutWireCub
22、e(size)绘制中心位于世界坐标系原点的实心立方体和线框立方体,立方体的半径为size,size是一个双精度浮点值。glutSolidOctahedron()glutWireOctahedron()绘制中心位于世界坐标系原点的实心八面体和线框八面体,八面体的半径为1.0。glutSolidDodecahedron()glutWireDodecahedron()绘制中心位于世界坐标系原点的实心12面体和线框12面体,12面体的半径为 。glutSolidIcosahedron()glutWireIcosahedron()绘制中心位于世界坐标系原点的实心20面体和线框20面体,20面体的半径为1
23、.0。表表4.1 4.1 GLUT生成规则多面体的函数生成规则多面体的函数48oGLUT库中的二、三次曲面库中的二、三次曲面n绘制实体或线框球面绘制实体或线框球面voidglutSolidSphere/glutWireSphere(GLdoubleradius,GLintslices,GLintstacks);n绘制实体或线框圆锥面绘制实体或线框圆锥面voidglutSolidCone/glutWireCone(GLdoubleradius,GLdoubleheight,GLintslices,GLintstacks);OpenGL中的实体模型函数中的实体模型函数49n绘制实体或线框圆环绘制实
24、体或线框圆环voidglutSolidTorus/glutWireTorus(GLdoubleinnerRadius,GLdouble outerRadius,GLintslices,GLintstacks);n绘制实体或线框茶壶绘制实体或线框茶壶voidglutSolidTeapot/glutWireTeapot(GLdoublesize);OpenGL中的实体模型函数中的实体模型函数50oGLU二次曲面函数二次曲面函数n定义一个二次曲面定义一个二次曲面GLUquadricObj*sphere;n激活二次曲面绘制器激活二次曲面绘制器sphere=gluNewQuadric();n指定二次曲面
25、的绘制方式指定二次曲面的绘制方式gluQuadricDrawStyle(sphere,GLU_LINE);OpenGL中的实体模型函数中的实体模型函数51n绘制二次曲面绘制二次曲面gluSphere(sphere,radius,slices,stacks);gluCylinder(sphere,baseRadius,topRadius,height,slices,stacks);gluDisk(sphere,innerRadius,outerRadius,slices,stacks);OpenGL中的实体模型函数中的实体模型函数524.3非规则对象的表示非规则对象的表示o分形几何分形几何o形态
26、语法形态语法o粒子系统粒子系统o基于物理的建模基于物理的建模o数据场的可视化数据场的可视化53o分分形形几几何何物物体体具具有有一一个个基基本本特特征征:无无限限的的自自相相像性。像性。o无无限限的的自自相相像像性性是是指指物物体体的的整整体体和和局局部部之之间间细细微环节的无限重现。微环节的无限重现。分形几何分形几何(fractal geometry)(fractal geometry)54o分形物体描述内容:分形物体描述内容:分形维数分形维数生成过程生成过程分形几何分形几何(fractal geometry)(fractal geometry)55o分形维数,又称分数维数分形维数,又称分数
27、维数4=228=23N=KD D=lgN/lgk K为边长缩小倍数;为边长缩小倍数;N为边长缩小后产为边长缩小后产生的新形体个数。生的新形体个数。分形几何分形几何(fractal geometry)(fractal geometry)图图4.18 4.18 分形维数分形维数56o生成过程:产生物体局部细微环节的一次重复操作。生成过程:产生物体局部细微环节的一次重复操作。o确定性自相像几何构造方法中,初始生成元确定性自相像几何构造方法中,初始生成元(initiatorinitiator),生成元(),生成元(generatorgenerator)。)。o实例实例图图4.19 4.19 生成过程生
28、成过程分形几何分形几何(fractal geometry)(fractal geometry)574.3.24.3.2形态语法形态语法o形形态态语语法法(shape grammars):给给定定一一组组产产生生式式规规则则,形形态态设设计计者者可可以以在在从从给给定定初初始始物物体体到到最最终终物物体体结结构构的的每每一一次次变变换换中中应应用用不不同同的的规则。规则。o产产生生式式规规则则可可以以用用具具有有图图形形运运算算实实力力的的数数学学式式或其他过程性方法结合实现。或其他过程性方法结合实现。58粒子系统粒子系统o用用于于模模拟拟自自然然景景物物或或模模拟拟其其它它非非规规则则形形态态
29、物物体体展展示示“流流体体”性性质质的的一一个个方方法法是是微微粒粒系系统统(particle systems)。)。o这一方法尤其擅长描述随时间变更的物体。这一方法尤其擅长描述随时间变更的物体。o微微粒粒运运动动的的模模拟拟方方式式:随随机机过过程程模模拟拟、运运动动路路径模拟、力学模拟。径模拟、力学模拟。59基于物理的建模基于物理的建模o基基于于物物理理的的建建模模方方法法:描描述述了了物物体体在在内内外外力力相相互作用下的行为。互作用下的行为。o非非刚刚性性物物体体,通通常常用用一一组组网网格格结结点点来来靠靠近近物物体体。网网格格结结点点间间取取为为柔柔性性连连接接,再再考考虑虑贯贯穿
30、穿物物体体网格的力传递。网格的力传递。60数据场的可视化数据场的可视化o科科学学计计算算可可视视化化(scientific visualization)指指的的是是运运用用计计算算机机图图形形学学和和图图像像处处理理技技术术,将将科科学学计计算算过过程程中中及及计计算算结结果果的的数数据据转转换换为为图图形形及及图图像像在在屏屏幕幕上上显显示示出出来来并并进进行行交交互互处处理理的的理论、方法和技术。理论、方法和技术。61数据场的可视化数据场的可视化o可视化对象,一般是空间离散的三维数据。可视化对象,一般是空间离散的三维数据。o体数据体数据o第第一一类类算算法法,先先由由三三维维空空间间数数据
31、据场场构构造造中中间间几何图元,再用几何图元,再用CG实现面绘制。实现面绘制。o其其次次类类算算法法,体体绘绘制制,干干脆脆产产生生屏屏幕幕二二维维图图像。像。624.4 层次模型层次模型o段与层次模型段与层次模型o层次模型的实现层次模型的实现oOpenGL中的层次模型中的层次模型63段与层次模型段与层次模型o具具有有逻逻辑辑意意义义的的有有限限个个图图素素(或或体体素素)及及其其附附加加属属性性的的集集合合称称为为段段,或或者者称称为为图图段段(二二维空间中)、结构和对象。维空间中)、结构和对象。o段是可以嵌套段是可以嵌套o段段与与基基本本图图形形元元素素的的区区分分在在于于,基基本本图图形
32、形元元素素是是用用数数据据来来描描述述的的,而而段段是是用用规规则则来来描描述述的。的。64段与层次模型段与层次模型o段段一一般般具具有有三三个个特特性性:可可见见性性、醒醒目目性性和和可可选择性(可由交互式输入设备来选择)。选择性(可由交互式输入设备来选择)。o利用段的嵌套来构造困难的对象或系统。利用段的嵌套来构造困难的对象或系统。图图4.20 4.20 自行车及其层次描述自行车及其层次描述65p存储简洁:一个段虽然在图中各处出现,但他存储简洁:一个段虽然在图中各处出现,但他的几何和拓扑信息只要保存一次。的几何和拓扑信息只要保存一次。p编辑简洁:删除、移动及缩放操作都可以以段编辑简洁:删除、
33、移动及缩放操作都可以以段为单位。为单位。段与层次模型段与层次模型66层次模型的实现层次模型的实现o系系统统的的层层次次模模型型可可以以通通过过将将一一个个图图段段嵌嵌套套到到另另一一个个图图段段中中形形成成图图段段树树来来创创建建。不不同同的的段段和和基基本图形元素在各自的建模坐标系中定义。本图形元素在各自的建模坐标系中定义。o图图层层,通通过过把把功功能能相相同同的的部部分分归归类类,并并将将它它们们绘制在同一层上,有助于图形的理解和管理。绘制在同一层上,有助于图形的理解和管理。o一般图层不再嵌套。一般图层不再嵌套。67OpenGL中层次模型的实现中层次模型的实现o显示列表的创建显示列表的创建glNewList(listID,listMode);glutSolidCube(2.0);glEndList();o显示列表的执行显示列表的执行voidglListBase(GLuintoffsetValue);68OpenGL中层次模型的实现中层次模型的实现o多级显示列表多级显示列表OpenGL支支持持创建建多多级显示示列列表表,即即在在glNewList和和glEndLsit函函数数对之之间允允许调用用glCallList函数来函数来执行其他行其他显示列表。示列表。o显示列表的删除显示列表的删除voidglDeleteLists(GLuintlistID,GLsizeirange);
限制150内