1、基于网络的三维浏览系统I摘 要本文以国家自然科学基金重点项目“虚拟奥运博物馆关键技术研究”为背景,实践了一种面向特征的三维模型简化误差度量方法及递进传输显示方法,主要完成了以下几方面的研究工作:(1)实践了带能量函数的保留特征的三维模型简化误差度量算法,在有效简化几何模型保留模型原有拓扑特征和属性特征的同时基于能量最小化的网格优化算法对误差进行度量,增强了模型真实感。 (2)实践了利用递进网格对三维模型进行递进显示的方法,解决传统传输方法将模型完全下载之后绘制、响应时间长的问题。(3)设计了用户与三维场景交互功能。基于上述研究成果,本文开发了基于递进传输的 Web3D 展示平台。用户通过 We
2、b浏览器请求模型,系统以递进传输方式将模型发送到客户端,并提供多种交互功能。关键词 三维模型简化误差度量 递进网格 递进传输 Web3D基于网络的三维浏览系统IIAbstractIn this thesis, based on the key projects of National Natural Science Foundation “the Olympic Museum Virtual Key Technology”, a method of simplification and compressed transmission of 3D models with feature pres
3、ervation is studied. We completed the following tasks: (1) A simplification algorithm of 3D models with feature preservation energy function. The original features of topology such as boundaries and holes and attributes such as color, texture are retained during the process of simplifying the geomet
4、ry models, which expands the scope of application of the simplification algorithm and improved the realism of the model. (2) Studied on the use of compressed encode and progressive transmission of 3D models to short the response time of the traditional transmission mode of download-and-display. (3)
5、Designed an object-oriented real-time rendering of 3D scenes Web3D platform. Based on the research, we developed the following tools: A progressive transmission based Web3D platform. Users request models over Internet, and the models can be sent to the client with progressive transmission. The platf
6、orm provides a variety of interactive functions as well. Key words 3D model Simplification, Progressive Mesh, Progressive Transmission, Web3D基于网络的三维浏览系统3目录第一章 绪论71.1 课题背景和意义71.2 国内外研究现状81.2.1 层次细节模型 .81.2.2 简化三维模型 91.2.3 递进网格 .121.3 论文的研究工作及组织.131.3.1 论文的研究工作 .131.3.2 论文的结构 .13第二章 基于能量函数的三维模型简化算法152
7、.1 引言.152.2 基本概念162.3 设计思想172.4 简化原则和误差度量方法202.5 选择最小误差262.6 基于三角形折叠的网格简化方法.272.7 实验结果.27经典模型的几何网格简化 .28带属性模型的特征保留简化 .28第三章 基于递进网格/纹理的模型重构和压缩编码方法 313.1 引言313.2 递进传输基本概念.323.2.1 递进传输简介 323.2.2 递进网格算法 333.3 基于三角形折叠的递进网格构造方法.353.4 递进传输文件结构分析363.5 递进显示概要设计39基于网络的三维浏览系统43.5.1 递进网格的同步控制传输 393.5.2 整体传输框架设计
8、 .403.5.3 分析线程部分程序流程设计 .413.6 递进数据的数据结构423.7 实验结果43第四章 基于 Web 的三维展示平台 484.1 引言.484.2 总体框架504.3 功能设计504.4 实验结果53第五章 总结与展望56致谢59参考文献60基于网络的三维浏览系统5ContentsChapter 1 Introduction .71.1 Background .71.2 Compared With Other Simplify Methods81.2.1 LOD.81.2.2 Simplify 3D Models.91.2.3 Progressive Mesh121.3
9、Introduction Of Paper 131.3.1 Contents Of This Paper.131.3.2 Structure.13Chapter 2 Energy Function-Based 3D Models Simplify .152.1 Introduction152.2 Basic Concepts.162.3 How To Achieve172.4 New Way To Select Triangle Unifications202.5 Choose Best Cost .262.6 Triangle Based Mesh Unification .272.7 Ex
10、ample And Result 27Geometry Mesh Unification.28Attribute Mesh Unification.28Chapter 3 Progressive Mesh-Based Model Refine Methods .313.1 Introduction313.2 Concept Of Progressive Mesh .323.2.1 Introduction of Progressive Transmission.323.2.2 Introduction of Progressive Mesh.33基于网络的三维浏览系统63.3 Triangle
11、 Collapse Based Mesh Refine.353.4 Structure Of Progressive Transmissions Data 363.5 Progressive Transmissions Design .393.5.1 Progressive Meshs synchro control.393.5.2 Transmissions Integrated Design.403.5.3 Analyze Threads Detailed design.413.6 Detail Recordss Data Structure.423.7 Example And Resul
12、t 43Chapter 4 Web-Based 3D Viewer484.1 Introduction484.2 Integrated Design.504.3 Detailed design.504.4 Example And Result 53Chapter 5 Conclusion And Future Work .56Acknowledgements 59References.60基于网络的三维浏览系统7第一章 绪论本章首先介绍了课题背景意义;然后对层次细节模型、简化三维模型、递进传输三个领域的国内外相关工作以及研究现状进行介绍,其中着重介绍了各种简化三维模型的方法以及各自的优缺点;最
13、后,介绍了本文的组织工作。1.1 课题背景和意义近十年来,计算机图形学取得了突飞猛进的发展,计算机生成的图像越来越逼真,三维模型被称为自音频、视频、图像之后的第四种数字媒体形式 1,随着 Internet 的普及,使用三维交互技术展示三维模型对于增强用户体验的真实感、沉浸感具有重要作用。然而,随着三维数据采集和建模技术的飞速发展,以及在医学图像系统、虚拟现实、计算机辅助技术、地理信息系统等领域所使用的模型越来越精细,越来越复杂,使得模型数据量不断增长,给模型的数字存储、传输和绘制带来许多困难;此外,传统的网络传输方法需要将三维模型的所有相关数据全部下载到客户端之后再进行显示,导致用户等待时间太
14、长。为此需要研究如何针对模型特征对三维模型进行简化并且制定传输策略,以解决三维模型网络传输限制。本论文课题来源为国家教育部项目“大学数字博物馆”以及国家自然科学基金重点项目“虚拟奥运博物馆关键技术研究” 。在数字博物馆的建设中,虚拟展示、场景漫游等功能的实现都离不开三维模型。为了给用户提供良好的三维模型网络浏览,对三维模型的处理和传输方法进行研究显得至关重要。基于网络的三维浏览系统81.2 国内外研究现状为了实现复杂模型的处理、存储、传输和绘制,目前主要使用的方法有:层次细节模型、简化三维模型,使用递进网格进行传输等,下面就这三方面对国内外的研究现状进行简单介绍。1.2.1 层次细节模型层次细
15、节模型(Level of Detail,LOD)是指为每个物体建立多个相似的模型,其中的每个不同的模型对物体精细度的描述不同。如图 1-1 中同一模型的一组不同细节层次的表示。在传输以及绘制的过程中,系统根据当前帧的需求,从这组离散模型中选择最合适的一个。图 1-1 三维模型的 LOD 表示传统的 LOD 技术主要根据视点和物体对象之间的相对距离关系来确定选择何种精细程度的模型,这种离散的 LOD 虽然计算简单,使用方便,但由于层次有限,因而在很多场合下不能满足用户多样化的需求。一方面,由于不同 LOD 层次的逼近模型中三角形数目往往相差很大,因此在它们之间切换时就会产生“跳跃”的视觉效果,影
16、响绘制质量,研究者们使用了一些不同的方法消除这种影响,例如在不同 LOD 层次的模型间切换时使用 透明通道进行混合,使之产生渐变效果 2;或者在模型之间进行插值计算,使其平滑切换的几何变形(geo-morphing)技术 3,这些措施能够使绘制效果有所改善,但也使得绘制系统的负担大大增加;另一方面,在大尺度的模型中,如果在距离视点较远和较近的区域使用相同的 LOD 层次,也会影响绘制的效果:如果全局的 LOD 很高,则远处的区域也将会包含大量的三角形,大量冗余的数据将影响绘制速度;如基于网络的三维浏览系统9果为了减少三角形数而降低 LOD 层次,则近处的三角形又会过于稀疏影响绘制效果。解决上述
17、问题的方法是建立具有连续分辨率的 LOD 模型(Continuous Level of Detail,CLOD) ,即允许同一个模型上的 LOD 层次连续变化。在这样的多分辨率模型中,随着视点的移动,模型上的 LOD层次分布也将随之变化,因此这一方法也称为“基于视点(view-dependent) ”的绘制方法。建立 CLOD 多分辨率模型的方法有很多种。多数方法都是在网格简化的过程中生成某种记录结构,在传输绘制时根据用户(观察者)的需要,快速地从这种结构中抽取出需要的多分辨率逼近模型。目前最常见的多分辨率结构主要有基于迭代收缩算法的顶点层次树结构 45,以及基于顶点抽取算法的图结构 67等。
18、本文所实现的递进传输就是顶点抽取算法的一种,通过在网格简化的过程中生成递进数据的记录,建立 CLOD 多分辨率模型,从而改善模型、场景显示效果以及传输效率。1.2.2 简化三维模型建立 CLOD 多分辨率模型首先需要简化三维模型,网格简化算法有多种分类方法,根据网格简化过程是静态执行还是根据视点等因素动态执行,可将算法分为静态和动态简化方法两类。1.2.2.1 静态网格简化方法1)顶点聚类法1993 年,Rossignac 8和 Borrel 提出了一个简单明了的基于顶点聚类的模型简化算法,该方法的思想是根据网格模型几何上的相似性采用一定的方法将顶点聚类,再为每个聚类计算一个新点。这种算法本质
19、上是一种信号处理方法,相当于对原网格模型进行重新采样,然后再利用原模型的拓扑结构和得到的采样点建立新的摸型。它适用于任意类型的输入模型,甚至可以是一些不构成网格的多边形集基于网络的三维浏览系统10合。是一种非常有效的快速简化方法。但是由于原网格模型上的点在空间的分布是未知的,这种方法对包围盒进行等分,可能导致等分后某些区域的长方体内包含很多的顶点,而某些区域的长方体内没有或只有很少的顶点,这一方面造成空间和时间的浪费,另一方面造成模型的某些部分过分简化造成很大的变形。2)区域合并法又称近平面合并 9,算法的基本思想是把近似位于同一个平面上的相邻三角形进行合并,形成一个大多边形,再用数目较少的三
20、角形网格来表示这个多边形。该算法适用于任意多边形网格表示的复杂模型,简化速度也较快。另外它提供了一个较理想的手段来控制简化模型与原模型的误差(全局误差),并且简化模型的顶点为原始模型顶点集的子集。但该算法仅实用于流型表面模型,并且不能够改变模型的拓扑结构。到目前为止,基于区域合并的算法不多,因而并不流行。3)小波分析法EcK 等人提出的一种解决方法 10111213,他们首先构造一个符合子分割连接约束的网格 M,保证 M对原始网格 M 的逼近误差在给定范围内,然后再用 Lounsbery 方法构造多分辨率模型。小波分析法非常适合于构造层次化模型,但该算法要求有正则、分层变换的支持,且执行效率并
21、不是最好。4)几何元素删除型算法Schroeder 于 1992 年提出了顶点删除的网格简化方法,此后,基于边折叠、基于三角形删除等几何元素删除的方法被相继提出。这些方法的共同特点是以几何元素的删除实现模型的简化,即根据原模型的几何拓扑信息,在保持一定的几何误差的前提下删除对模型几何特征影响相对较小的几何“图元” (点、边、面)。基于网络的三维浏览系统11总的来说,这些算法易于实现,简化模型的质量很高,是目前最为常用的一类方法。下面分别介绍几何元素直接删除型、边折叠法。(1)几何元素直接删除型Schroeder 提出的三角形网格简化算法的基本思想是:先对三角形网格中的顶点进行分类,用距离误差分
22、别计算顶点的重要性,删除不重要的顶点,并对删除顶点后留下的空洞进行重新三角化。这个算法的计算量小,时间复杂度为线性,有很好的保持细节特性。但由于采用局部近似误差度量,多次迭代后会产生误差积累,从而影响简化模型的质量。另外,该算法需要重新局部三角化且仅适用于流型物体。Turk 提出的基于重新划分网格的简化算法是将一定数量的新点随机分布到原始网格上,新点与原有顶点生成一个中间网格,然后删除中间网格中的原有顶点,并对产生的多边形区域进行重新三角化,形成以新点为顶点的三角网格,该算法仅适用于比较光滑的网格模型且计算量很大。Cohen 提出的基于包络网络的简化算法的主要特点在于不使用误差度量,而是通过几
23、何结构(内外两层包络网络)来控制简化过程。该算法首先构造两层包络网络(通过偏移顶点来完成),然后对于原始网格中的每个顶点,移去该顶点以及相邻的面偏,若可行,对形成的空洞进行重新三角化,并保证形成的面片不与内外包络网络相交,否则放弃删除。该算法能够保持模型的拓扑结构,有效的保留其基本特征,对棱角特征也能很好的保留,能有效的约束全局误差,支持自适应的近似。缺点在于仅适用于二维流形,不适用于任意多边形网格模型(如面片有自交情形),另外,包络网络难以构造。(2) 边折叠型是目前最为常用的一种方法 3 22。还有一些方法使用了三角形折叠 23,但这种操作实际上可以由两次点对收缩来完成,故实质是相同的。该
24、方法的原理是每次迭代时从网格中选定一对顶点,然后将二者合并成为一个新的顶点,一般要求选定的顶点对是一条边的两个端点,这种情况也称为“边折叠” ,同样,重复这一操作直至达到定义的误差上界就得基于网络的三维浏览系统12到了简化的逼近模型。在这类算法中,除非明确禁止,否则点对收缩有可能改变网格的拓扑性质。如图 1-2(a )中的点对收缩使原本不相邻的两个区域相连;而图 1-2(b)中的点对收缩导致了模型中一个孔洞的消失。图 1-2 收缩方法可能导致的拓扑结构改变使用边折叠进行网格简化的算法很多,边折叠操作容易构成连续的多个 LOD 表示模型,便于多分辨率模型的管理。本文是基于 Hoppe 在 199
25、33年提出的网格优化算法实现的,该算法是最早引入边折叠简化元操作的算法。它源于一个表面重构算法,既包括网格匹配过程,也包括网格简化过程。算法通过使一个全局能量函数最小化来简化模型。在 Hoppe 提出的简化算法中,分别计算几何误差和属性误差,然后将这两个误差相加得到一个总体误差,对总体误差进行最小化,从而得到简化网格模型。该算法可以获得较为优化的简化结果。1.2.2.2 动态简化方法1)层次表示法该算法预先产生几个关键的简化模型,并对其中的三角面按视觉重要度排序,在实时绘制中,选择一个比所需分辨率高的最简的逼近模型,并对该逼近模型按重要度从小到大的顺序删除三角面,直到满足当前精度为止,这样可以
26、部分地解决计算量大的问题。2)基于视点的简化方法基于网络的三维浏览系统131996 年,Julie C.Xia 提出了一种实时的基于视点的三角网格模型简化算法,该算法可以实时地在同一模型的不同区域选择不同的精度层次; Hoppe 定义了一个基于视锥模型表面法向和屏幕空间几何误差的细化标准,该标准包括视锥原则、面的方向性原则和屏幕空间几何误差原则,并利用此准则进行选择性的边折叠和点分裂,建立多分辨率的模型;李捷通过对模型中每个顶点的重要度进行排序,建立了视点参数与被选择的分辨率的直接关系,生成了实时连续多分辨率模型;周昆则将视点无关与视点相关结合起来,生成混合多细节层次模型。1.2.3 递进网格
27、递进网格(Progressive Mesh,PM)算法是 Hoppe 在 1996 年提出的一种三维网格模型简化方法,是一种迭代收缩算法。在每一次迭代过程中,原始网格中的一条边及其相邻的三角形被删除,网格的分辨率也随之逐步降低,最后得到一个较粗糙的简化网格(基网格)以及一系列细节优化信息。在恢复过程中,首先绘制基网格,然后根据这一系列的细节优化信息,重新向网格中插入顶点和三角形,就可以恢复出具有原始分辨率的模型。1.3 论文的研究工作及组织1.3.1 论文的研究工作本论文的研究工作来源于国家自然科学基金重点项目“虚拟奥运博物馆关键技术研究” 。实践了一种基于能量最小化的面向特征的三维模型简化误
28、差度量方法及递进传输显示方法,主要完成了以下几方面的研究工作。(1)研究三维模型简化误差度量算法,参考 Hoppe 在 1997 年提出的模型简化误差度量新方法,实践了基于能量函数的面向特征的三维模型简化的误差度量方法,在有效地简化几何模型保留模型原有拓扑特征基于网络的三维浏览系统14和属性特征的基础上实践了基于能量最小化的网格优化算法,使得在模型处理过程更好的保留拓扑特征和属性特征,更好的增强模型的表面真实感,并与原始误差度量方法进行比较;(2)实践了利用递进网格对三维模型进行递进显示的方法,解决了传统传输方法将模型完全下载之后绘制、响应时间长的问题。(3)设计并实践了基于递进传输方法的客户
29、端绘制工具,为用户提供具有良好交互功能的三维模型展示平台。1.3.2 论文的结构围绕上述研究内容,本文共分为以下几个部分:第一章,引言。简述了三维传输和展示的主要方法,并对层次细节模型、三维模型简化、递进传输等主要算法的研究现状进行了介绍,最后概述了本文的主要工作。第二章,基于能量函数的三维模型简化算法的误差度量。本章首先对三角形特征类型等基本概念、递进传输技术、网格简化方法等算法进行简单的介绍,然后介绍了本文简化原则和误差度量方法的设计思想以及实现方法,最后给出了实验实例、试验效果对比和结果分析。第三章,一种结合递进网格的压缩递进传输方法。本章详细介绍了对象模型的递进网格传输及显示的实现方法
30、并给出了实验结果和分析。第四章,基于 Web 的三维展示平台。本章阐述了基于 Web 的三维展示平台的总体设计和关键技术,通过对递进传输技术、交互式实时渲染技术的整合,最终实现三维递进展示系统。基于网络的三维浏览系统15第二章 基于能量函数的三维模型简化算法本章针对数字博物馆三维模型处理过程中特征保留的需要,实践了一种在保留拓扑边界及属性信息的基础上基于能量最小化进行误差度量的网格简化方法。该算法在三角形折叠简化算法的基础上,通过引入边界三角形和色异三角形等概念,对误差矩阵计算和误差控制方法进行改进,在减小模型数据量的同时,保留了原始模型的拓扑特征和属性特征。开发了模型简化工具,允许用户对包含
31、颜色、纹理、法向量等属性的三维模型进行有效的简化,验证了算法的可行性。2.1 引言为了划分多分辨率模型,首先需要对三维模型进行简化处理。简化宗旨在于尽量保持模型特征并采用一定算法减少三角形网格中顶点和面的数量,从而减少存储空间。网格简化方法可以根据用户指定的误差限,自动生成多分辨率模型。目前广泛采用的网格简化方法虽然可以有效地处理大多数几何模型,但是难以在处理过程中保留模型原有的细节特征,如拓扑边界以及颜色、纹理、法向量属性等,而在数字博物馆中展示的很多藏品都具有这些特性,这些特征信息对于原物的数字化及真实感再现都具有重要作用,如图 2-1所示,石窟残垣;另外,对于一些特定的应用,如医学模型、
32、文物模型等,具有一些重要的拓扑或属性特征,如图 2-1(b)中飞机尾部的蓝白色五星以及图 2-1(c )中头骨眼眶部分的孔洞等,这些特征信息对于原物的数字化及真实感再现都具有重要作用,因此我们不得不针对需求重新制定简化策略,在简化过程中予以保留。基于网络的三维浏览系统16(a) (b) (c)图 2-1 拓扑特征及属性特征本章基于三角形折叠算法实践了一种对结合属性的网格模型进行拓扑边界保留和颜色、纹理等属性特征保留的带能量函数的简化算法。该算法针对模型不同的拓扑特征和属性特征,采取增加特征权重策略,对误差矩阵的计算和误差控制方法进行改进,采用能量函数来度量简化网格与原始网格的逼近度,进行误差度
33、量。通过该方法不但可以在简化的同时高质量地保持模型表面的几何相似性,而且有效地保存了边界边和模型表面色彩属性,保证了模型的真实感。本文方法还可以扩展到保留模型的多种标量属性,如表面材质、透明度等。并与原始的度量方法进行比较。本章按照简化模型的步骤进行组织,首先在 2.2 节介绍了为实现本算法而定义的三角形拓扑特征、属性特征方面的相关概念;2.3 节介绍了算法的设计思想以及流程; 然后在 2.4 节着重介绍了三角形折叠的简化原则和误差度量方法,并在这一章对本文采用的基于能量函数的简化原则作了详细介绍并与旧方法进行比较;之后在 2.5 节简单介绍了如何利用前文误差结果选择最小误差并完成折叠的方法;
34、在 2.6 节介绍了基于三角形折叠的网格简化概念以及实现方法;最后给出实验数据比较两种简化原则下的简化结果。2.2 基本概念数字博物馆中的三维模型一般用三角形表示。模型一般包含三类基本信息,几何信息、拓扑信息和属性信息。其中,几何信息用来描述多边形网格在空间中的几何位置,如顶点的空间坐标等信息;拓扑信息描述多边形网格中点与点、面与面之间的连接关系,基于网络的三维浏览系统17决定了整个表面的拓扑形状,一般用索引信息表示;属性信息则提供模型可视化的一些附加信息,如颜色(Color) 、法向量( Normal) 、纹理(Texture)等。下面对三角形的特征类型进行简单的介绍。1)拓扑特征根据邻接面
35、的信息,将原始网格中所有三角形划分为三类:边界三角形、角点三角形以及内部三角形。划分原则如下:对于原始网格中的每个三角形,a如果它的某一条边只被一个三角形(即该三角形)所拥有,则该边为边界边,该三角形为边界三角形;b对于非边界三角形,如果至少有一个顶点在边界边上,则该顶点为角点,该三角形为角点三角形;c如果三个顶点都不在边界边上,则该三角形为内部三角形。如图 2-2 所示。图 2-2 三类三角形2)属性特征对于原始网格中的每个三角形,如果它与周围三角形的颜色差别越大,其对模型整体属性的贡献就越大,即可以将其三条边视为一种颜色属性的边界来进行保留。这里为了与拓扑边界三角形相区分,定义其为色异三角
36、形。基于网络的三维浏览系统182.3 设计思想针对三维模型的拓扑结构及属性特征,本章在几何网格简化的基础上,根据不同三角形网格对模型整体特征贡献的重要程度,将原始网格进行分类处理,以保证模型的特征在简化过程中得以保留。(1)为避免原误差计算方法的复杂性及不确定性,将几何折叠误差定义为该三角形折叠后的新点到该三角形集合中每个三角形所在平面的距离平方之和,并选择误差最小的三角形进行折叠操作。(2)对于包含孔洞等拓扑边界信息的模型,首先将原始网格中所有三角形标记为内部三角形、角点三角形、边界三角形三类,并调整不同三角形折叠误差的权重:增大边界三角形的误差,使边界三角形的折叠误差最大,内部三角形的折叠
37、误差最小;对于角点三角形,则限定其折叠后的新点为该三角形的边界点,从而防止边界塌陷的产生。(3)对于包含颜色等属性信息的模型,首先用每个三角形三个顶点颜色值的平均值作为该三角形的颜色值,如果当前三角形与其相关三角形颜色值的差超过预先指定的阈值,则标记该三角形为色异三角形,并采用与处理边界三角形类似的方法,增大其折叠误差,对其进行保留。这里的阈值则可以根据用户对属性信息保留的要求来选取。(4)对于具有纹理的模型,首先通过纹理坐标从纹理图像上相应的像素点获得等价颜色值,然后采用与颜色属性保留相同的方法判断色异三角形并保留。算法设计思想如图 2-3 所示。基于网络的三维浏览系统19原始网格模型计算能
38、量函数对拓扑和属性特征三角形进行保留几何 、 拓扑信息属性信息最终简化结果误差度量标准特征三角形判断图 2-3 特征保留简化算法设计思想因此,算法分为三个基本步骤:首先根据三角形特征性对三角形进行分类;然后根据三角形类型的不同,采用不同的误差计算方法计算折叠误差;最后选择一个最小的误差三角形进行折叠。其算法流程如下:基于网络的三维浏览系统20分析三角形 , 依据拓扑划分三角形是否包含颜色信息计算等价颜色值计算能量函数计算色差 , 标记色异三角形计算新点位置及折叠误差是否边界三角形是否色异三角形根据折叠误差构建最小堆增大折叠误差选折叠误差最小的进行折叠误差达到要求结束YNYNYNNY图 2-4
39、保留特征的网格简化算法流程图本文提出的基于能量最小化的保留特征的网格简化算法如图 1-6 所示,具体步骤如下:1对原始网格进行预处理,建立顶点表、三角形表,分析三角形连接性并计算颜色值,确定三角形类型;2对原始网格中每个三角形 ,计算其误差矩阵 ,并通过 计算iTiQi基于网络的三维浏览系统21折叠后生成的新顶点的位置 ,利用能量函数计算其折叠误差;iv3对于边界三角形及色异三角形,更新其折叠误差为;()()ii iTMax4根据折叠误差大小,构建最小堆;5选择折叠误差最小的三角形执行折叠操作,更新邻接三角形的连接性,重新计算受影响三角形的误差,并更新最小堆;6重复执行步骤 5,直至三角形序列
40、为空或误差已达到用户要求结束。2.4 简化原则和误差度量方法2.4.1 误差度量方法简介当对三角形进行选择并折叠之前需要对模型中的三角形面片进行折叠误差的度量,从而选取待折叠的三角形。这就需要将三角形的折叠误差进行排序,并选择误差最小的进行折叠。而定义折叠误差的策略将直接影响到折叠的效果。2.4.2 带能量函数的误差度量方法本文采用 Hoppe 在 199714年提出的新的误差度量方法对折叠的误差进行度量,在有效地简化几何模型保留模型原有拓扑特征和属性特征的基础上基于能量最小化的网格优化算法,采用能量函数来度量简化网格与原始网格的逼近度,进行误差度量。1)相关概念首先,我们来介绍拓扑学中单纯形
41、的相关概念,考虑实数域的 m 维向量空间 Rm, 设 a0,a 1, a2,.,a m 是一组向量,使得 a1 - a0,a 2 - a0,. am a0线性无关。设 E=p= s0 a0+ s1 a1+ s2 a2+.+ sm am | s0+ s1+. sm=1,则基于网络的三维浏览系统22点集 E 就称为一个 n 维单纯形,简称单形。0-单形 i 为一顶点;1-单形 i , j 为一条边;而 2-单形 i , j , k 为一个面。一个网格可定义为一个二元组(K,V),其中 K 是一个单形,它表示顶点、边和面的邻接关系 ,V=V iR 3 | i=1,2, m是 M 的顶点集。单形K 由
42、点集1,2,m 及其称之为单形的非空子集组成。为在结构上描述单纯复形,引进了拓扑实现 | K | 的概念。若将顶点集 V 看成为 Rm中的基向量集 e1 , , e m ,则定义 Rm中的集合 | K | 为 K 的拓扑实现,如式(2.1)所示。| K | = | S | (2.1)式中:sK 的一个单形,| s |s 在 Rm 空间中的顶点的凸包,记为: : R m R3。以 s 作为面的单形记为 star(s)。2)能量函数能量函数如式(2.2) 所示E ( M ) = Edist( M ) + Espring ( M ) + Escaler( M ) + Edisc( M ) (2.2)
43、式中:E dist ( M )M 的距离能量; Espring( M )M 的弹性能量;Escaler( M )M 度量标量属性精度的能量;E disc( M )度量 M 上视觉不连续的特征线(如边界线、侧影轮廓线等)几何精度的能量。Edist ( M )定义为点集 P = p1 , p 2 , , p m到网格 M 距离的平方之和。Espring( M )定义为所有边长度的平方之和,如式(2.3)所示, 式中:k 为边的弹性系数。Espring( M )=kd 2( vi - vj ) (2.3)Escaler( M )和 Edisc ( M )合并起来就是对网格的视觉流畅性进行度量,即折叠
44、三角形对网格属性改变大小的度量,在本文中用对模型的边界、颜色或者纹理属性的加权来实现。基于网络的三维浏览系统233)实现方法Hoppe 提出,为每一个三角形定义一个能量函数 E ( M ) ,如式(2.2)所示。在这里,Hoppe 提出了 Earea ( M )的概念来取代 Espring ( M ), Earea ( M )定义为网格中折叠前后的面积误差,是一种比 Espring ( M )更复杂的形式。定义 作为 相邻面的面积。令 作为 集中三角形面积的和。 我们可以将对三角形 A 进行折叠式产生的面积误差为 ,如式(2.4)所示(2.4)(2.5)式(2.5)所示为 Earea 计算公式
45、。其中 XN 为被折叠三角形所有邻接三角形数。Escaler( M )和 Edisc ( M )在本文中用对模型的边界、颜色或者纹理属性的加权来实现。因此简化式(2.2)为式(2.6)E ( M ) = Edist( M ) + Earea( M ) (2.6)(1) Edist( M )的计算对于原始网格中的每个三角形 ,配备一个误差矩阵 ,如果三角形iTiQ折叠为点 ,则定义 Edist( M )为该三角形折叠后的新点iT 1iiivxyz到该三角形集合中每个三角形所在平面的距离平方之和:E dist( M ) (2.7) 这里 表示与三角形 相关的三角形集合 中,每个TpabcdiTiC
46、三角形所在平面的平面方程 (其中 ) ,于0axbyczd221abc是上式给出的误差标准可以转换为公式(2.8)的二次形式:基于网络的三维浏览系统24(2.8)其中 是 44 的对称矩阵,表示空间中任一点到平面 的平TpM p方距离:(2.9)22Tpabcadd而误差矩阵 为 所有相关三角形的 相加 ;因此 也iQi pMiipCQiQ是一个 44 的对称矩阵。(2) Earea( M )的计算计算 Earea( M )首先应计算待折叠三角形以及其邻接三角形的面积设三个点的坐标分别为 P0 ( 0 , 0 , 0 ),P1 ( x1 , y1 , z1 ), P2 ( x2 , y2 ,
47、z2 )。因为是从原点出发,所以向量 P0P1 可简记为 P1,向量 P0P2 可简记为P2。依定义如式(2.10)(2.10)展开式(2.11) ,得到(2.12):上式=iy1z2 + jz1x2 + kx1y2 ky1x2 jx1z2 iz1y2 =( y1z2 - y2z1 )i + (x2z1 x1z2)j + (x1y2 x2y1)k (2.11)按规定,单位向量的模为 1。可得叉积的模为:|p1 * p1| = y1z2 y2z1 + x2z1 x1z2 + x1y2 x2y1基于网络的三维浏览系统25= (y1z2 + x2z1 + x1y2) (y2z1 + x1z2 + x
48、2y1) (2.12)我们设三角形的三个顶点为 A(x0,y0,z0),B(x1,y1,z1),C(x2,y2,z2)。我们将三角形的两条边 AB 和 AC 看成是向量。然后,我们以 A 为原点,进行坐标平移,得到向量 B(x1-x0,y1-y0,z1-z0),向量C(x2-x0,y2-y0,z2-z0)。在三维的情况下,直接代入公式,可得向量 B 和向量 C 叉乘结果的模为:(2.13)由此可得到面积 s 为式(2.14)所示(2.14)(3) Edisc( M )、E scaler( M )的计算在颜色属性的判断中,本文使用每个三角形三个顶点颜色值的平均值作为该三角形的颜色值: (2.15
49、)31 ( )/3TTiirgbrgb对于原始网格中的每个三角形,如果它与周围三角形的颜色差别越大,其对模型整体属性的贡献就越大,即可以将其三条边视为一种颜色属性的边界来进行保留。这里为了与拓扑边界三角形相区分,定义其为色异三角形(Colory Triangle ) 。本文通过以下的判断标准,来对网格中的三角形进行标记:如果当前三角形与其相关三角形颜色值的差超过预先指定的阈值 ,则标记该三角基于网络的三维浏览系统26形为色异三角形,并对其进行保留。而阈值 则可以根据用户对颜色信息保留的不同权重要求来选取。如图 2-5,对于三角形 ,假设其某个相关三角形为 ,且对应于 、iTpTiT的颜色值分别为 , ,若色差pT iirgb Tprb(2.16)(|)ipiippC 则将 标记为一个色异三角形。iTT iT pTT iT p(a) 色异三角形 (b