移动图形渐进传输引擎技术的制作方法

文档序号:6529358阅读:223来源:国知局
专利名称:移动图形渐进传输引擎技术的制作方法
技术领域
本发明涉及一种用于移动环境中的图形渐进传输引擎系统。
背景技术
1.图形引擎和三维图形应用程序接口图形引擎又称三维图形加速引擎。随着计算机软、硬件突飞猛进的发展,计算机图形学在各个行业的应用也得到迅速普及和深入。目前计算机图形学已进入三维时代,三维图形在人们周围无所不在。
科学可视化、计算机动画和虚拟现实已经成为近年来计算机图形学的三大热门话题,而这三大热门话题的技术核心均为三维图形。三维真实感图形的生成一般包括场景造型、取景变换、视域裁剪、消除隐藏面及光强亮度计算等步骤,底层软件都包括相应的算法实现。目前比较常见的三维图形生成环境等都提供了相关API,使得软件人员能方便地创建真实的三维场景。
三维图形应用程序接口又写作3D API(Three-Dimension ApplicationProgramming Interface),是许多程序接口的集合。编程人员在设计3D软件时,只要调用其API内的程序接口,即可通过API直接调用3D图形加速芯片内的硬件运算能力,节约CPU资源,从而大幅度提高3D程序的设计效率。目前普遍应用的3D API有DirectX、OpenGL、Glide、Heidi等。
DirectX是微软公司专为PC游戏开发的API,与Windows 9X和Windows NT操作系统兼容性好,容易控制,可绕过图形显示接口(GDI)直接进行支持该API的各种低层操作,大大提高了游戏的运行速度。Direct 3D是微软公司多媒体应用软件DirectX开发库中的一个子系统,由一组底层和高层API组成,运行于Windows平台,该图形库是以COM接口形式提供的,较为复杂,目前只能在Windows平台上运用。
OpenGL(开放式图形接口)是由Silicon Graphics公司开发,支持Windows9X、Windows NT、Macos、Beos、OS/2以及Unix等操作系统。OpenGL一直用于高档图形工作站,其3D功能很强,超过Directx,能最大限度地发挥3D芯片的巨大潜力。在OpenGL的1.2版中增加了对3DNow!标准的支持。
Glide是3Dfx(现在已被nVIDIA公司收购)为VOODOO系列3D加速卡设计的专为3D的API,可以最大限度发挥VOODOO系列芯片的3D图形处理功能,由于不考虑兼容性,其工作效率远比OpenGL和Direct高,所以Glide是各3D游戏开发商的优先选用。
Heidi是一个由Autodesk公司提出来的规格。目前采用Heidi的应用程序包括3D Studio MAX动画制作程序,Autodesk公司为AutoCAD开发的WHIP加速驱动程序。
2.图形渐进传输技术(1)网格图形的化简和加细随着科学技术的进步,在计算机图形学、虚拟现实、计算机辅助设计技术、地理信息系统、医学图像系统等领域所构造和使用的模型越来越精细、越来越复杂,这些复杂的模型动辄就产生数以百万计的面片,而斯坦福大学的数字米开朗基罗计划(digital Michelangelo project)中著名的大卫(David)雕像的三角面片更是高达20亿。这些复杂的模型对计算机的存储容量、处理速度、绘制速度、传输效率等都提出了很高的要求,然而在很多情况下,高分辨率的模型并不总是必要的,模型的准确度以及需要处理的时间需要达到一个折衷点,因此必须用一些相对简单的模型来代替原始模型,这就是对模型进行简化。模型化简是在保持原模型几何形状不变的前提下,采用适当的算法减少该模型的面片数、边数和顶点数。化简对于几何模型的存储、传输、处理,特别是对实时绘制有着重要的意义。早在20世纪70年代,就有学者讨论网格模型的化简问题,到90年代后,网格化简得到了深入的研究,并出现了许多成功的应用。
网格模型化简算法分类有多种,如根据拓扑结构是否保持可以分为拓扑结构保持形和非拓扑结构保持形;根据模型简化的过程可以分为逐步求精和几何化简;根据误差可控性可分为误差受限和误差不受限;根据视点相关性可以分为视点无关的化简和视点相关的化简。
由于网格模型大部分由三角面片表示,而且即使原始模型不是三角面片,也可以对其进行三角化,因此网格模型简化的本质是在尽可能保持原始模型特征的情况下,最大限度地减少原始模型的三角形和顶点的数目。通常包括两个原则顶点最少原则,即在给定误差上界的情况下,使得简化模型的顶点数最少;误差最小原则,给定简化模型的顶点个数,使得简化模型与原始模型之间的误差最小。
网格模型的加细可以视作是网格化简的逆过程,通过定义合适的化简与加细算法,可以实现网格模型的无损化简和恢复,这也是本文所要讨论的一个重点。
(2)细分曲面模型和多分辨率显示细分曲面模式在三角网格简化中的典型应用是构造多分辩率表示。
细分曲面(Subdivision surfaces)是一个网格序列的极限,网格序列则是通过采用一组规则(一般是加权平均)在给定初始网格中插入新顶点并不断重复此过程而获得。这种方法克服了参数曲面处理任意拓扑网格(Arbitrary topology meshes)存在的困难。因为,在不规则拓扑处只须采用特殊的细分规则就可以了,不存在拼接的问题。
另一方面,由于三维扫描仪(3D Scanner)、测距仪(Range finder)和CT等三维数据获取设备的日益完善,为几何形状不能或难于用分析曲面表示的对象建模提供了有力的工具,例如医学的人体器官建模、考古学中的古代器件和艺术领域的雕塑作品三维重构等等,离散曲面逐渐成为一种重要的几何表示方法。细分模式作为从给定规则产生离散曲面的方法统一了传统的参数曲面与多边形两种实体表面的表示。另外,由于实验获取的三维数据量一般都非常大,多分辨率分析(Multiresolution analysis)成为有效地处理这类数据的重要手段。细分方法与多分辨率分析、小波变换(Wavelet transformation)之间的深刻联系也是目前细分模式受到关注的一个重要原因。
在计算机图形学、几何造型及逆向工程等应用领域,往往采用大规模甚至超大规模的多边形网格来表示复杂对象的表面形状。从数据的获取、处理到传输都面临巨大的挑战。多分辨率模型(Multiresolution modeling)正是为了解决这样的问题而提出的。所谓多分辨率模型是一种曲面表示方法,这种表示可以支持物体表面从粗糙到细致的各个层次的重构。按照这一定义,层次细节模型、累进网格表示都属于多分辨模型。总的来说,各种文献对多分辨率分析和累进网格两个概念的使用还是比较混乱。
层次细节模型(Level of Detail,缩写为LOD)同时保存有物体的若干个从粗到细的几何模型,因此不同模型间过渡时会出现跳跃,通过两不同层次模型间的插值可起到平滑过渡的作用。对于网格模型而言,各种简化算法如Schroeder的基于顶点删除算法、Hoppe的基于能量优化方法、Hermann的基于三角形收缩方法和Garland的基于点对折叠方法等等都可以用来构造LOD模型。
层次细节模型需要保存多个版本的数据,占用比原始数据大得多的存储空间,而且在不同细节模型间转换时会出现跳跃现象,为此Hoppe提出累进网格模型(Progressive meshes)把任意拓扑网格表示为一种高效、无损且具有连续分辨率的编码。该编码由一个粗糙的基网格和一系列细化变换组成。累进网格模型支持基于几何变形(Geomorph)的平滑视觉过渡、累进传输、网格压缩和适应性细化。接着Hoppe又提出了依赖于视点的累进网格模型,使得重构过程可以根据视点位置只对视锥内的部分进行细化,对于视锥外的部分则保持粗网格。Popovic和Hoppe利用更一般的细化技术构造累进网格,从而可以处理任意的三角剖分模型(如任意维数、无向、非流形、非正则模型)而且基网格总是一个顶点,不象原来的累进网格那样当网格拓扑很复杂时基网格也很复杂,他们把这称之为累进单纯复形(Progressive simplicial complexes).Khodakovsky等人则把累进网格的思想应用到网格几何压缩(Geometry compression)。
上面的表示大型网格数据的方法都是基于点、边或三角形面删除的三角网格简化算法,难于事先估计误差界,表示也不够紧凑,而且不能支持多尺度编辑,因此人们转向研究基于小波的多辨率分析和细分曲面的表示方法。
(3)J2ME技术什么是J2ME?当JAVA平台发展到JAVA 2的版本以后,为了适应不同级别计算机硬件的开发需要,JAVA平台形成了三个主要分支Java 2,Standard Edition(J2SE),Java 2,Enterprise Edition(J2EE),Java 2,Micro Edition(J2ME)准确地说,J2ME是为了支持象PDA、手机等小型的嵌入式或移动设备而推出的一系列的技术和规范的总称。J2ME针对嵌入式和移动设备,提供了开发和运行应用程序的平台,随着新的规范的不断推出和众多制造商、软件开发商的支持,J2ME正在飞速向前发展。
3.该传输引擎运行的硬件条件1)游戏引擎的开发环境·普通台式机,要求的基本配置·30MB hard disk·64MB system RAM·166MHz CPU·其硬件条件支持以下其中一个系统即可оMicrosoft Windows NT or Microsoft Windows 2000оMicrosoft Windows 98оSolarisTM8оLinux2)传输引擎的运行环境1.符合CLDC 1.0以及MIDP 1.0以上的带有Java平台的移动设备2.256色或以上彩屏3.带64k或以上内存
4.移动图形渐进传输引擎根据以上的介绍,图形的渐进传输的定义即是一个通过特定方法对原始图形进行化简、构造多分辨率模型、提取细节特征和误差偏移量、逐步传输多分辨率模型、添加细节特征、修正误差偏移量的过程,这个过程往往通过反复的迭代,以获得逐步精确的原始图形。
本引擎目前是构建于Java平台上,通过调用Java API结合特定算法实现。
5.相关产品和专利在PC平台上的图形图像传输引擎已相对比较成熟,但针对于移动通信平台上的在这一领域的研究很少,在专利检索中对该技术的阐述并不多,我们在移动图形渐进传输引擎技术上的研究很好的补充了专利空白。
移动设备具体有以下两个缺点1、运算速度不快,存储空间不大,软硬体平台差异性大,显示屏幕较小等;2、面对移动设备的图形显示和传输应用设计刚起步,在与传输效率和显示效果的平衡方面进行深入研究的较少。而以往的面对移动设备的图形传输产品中,一般采用直接传输技术。直接传输技术的优点有技术简单,程序处理比较容易实现,配置内容较少,文件占空间也较少,适合移动设备空间小的特点。其缺点是传输速度完全依赖移动网络速度,无法实现图形的逐步显示,让使用者有较长的等待时间,且容易在传输中断后丢失传输内容,造成不必要的重传。

发明内容
移动设备有着资源相对贫乏,运算能力弱,传输带宽小的缺点,而移动设备在人们日常生活中所扮演的角色也越来越重要,为了缓和日益增长的数据传输需求与相对狭窄的网络带宽之间的矛盾,本发明提出了一种专门针对移动环境特点的图形渐进传输引擎。该引擎的内容包括对复杂网格图形的化简、渐进传输和细节恢复等过程,并可推广到具备网格性质的任意粒子系统上。
所述的移动图形渐进传输引擎技术,包括对原始图形进行化简、构造多分辨率模型、提取细节特征和误差偏移量、逐步传输多分辨率模型、添加细节特征、修正误差偏移量的过程。
该引擎根据用户设置的大致网络传输速度,自动选择一个图形简化算法和图形层次,然后根据选定的算法逐步消去原始图形中的部分顶点,并记录模型简化过程中原顶点和新顶点位置以及顶点间的连接关系的变动信息,从而生成了一个由原始模型的最简化模型和一系列简化信息组成的渐进网格表示模式进行传输;在接收终端实时绘制时,通过逆向跟踪简化信息序列,对每条简化信息执行逆操作,逐步恢复所删除的模型细节,实时得到原始模型的连续精度的简化模型,并由此实现了多层次细节模型的平滑过渡。
上述的每一层网格都包括以下一些数据,但原始网格不包括误差信息(i)层的标识(ii)网格数据,包括(a)顶点数目和每个顶点的坐标(b)面的数目和每个面的顶点序列(iii)误差数据,包括误差的数目和误差信息,包括(a)误差的标识,以确定误差的修正目标顶点(b)误差向量的坐标(c)两个顶点的序列,以标识下一层的误差位置渐进网格数据存放在数据链表中,接收终端通过逐次合并最后一层的网格数据和中间层的误差数据,最终恢复出原始网格。
本发明所述的移动图形渐进传输引擎的特点有以下两方面1)可分步骤传输初始网格和细节层次,以达到减少单次传输量和提升显示效果的目的。
2)可适用于移动设备、智能家居、嵌入式设备等的环境,对系统的处理能力和网络传输能力要求不高。
3)思路简单,合理4)适应更多移动设备硬件要求移动图形渐进传输引擎系统是适用于嵌入式系统和手持移动设备(手机、PDA等)上的,通过独特的传输机制进行图形的化简、压缩、编码、传输、解码、解压、加细、恢复等一系列过程的传输管理模块。使用者或其他功能模块可方便地通过调用该传输引擎完成移动设备等上的图形渐进传输。


图1为蝶形细分模式的面具;图2为网格图形中的黑色消去点图示图3为渐进网格的链表存储格式;图4球体的渐进化简实例;图5一个渐进网格图形和误差值的实例,其中,上方的图是各个逐步简化的网格图形,其下方的图是该网格图形与前一层次的网格图形的误差。
具体实施例方式
1)移动图形渐进传输引擎的基本结构对于使用者来说,本引擎相当于一个应用程序接口可供调用,用户可设置大致的网络传输速度,由引擎自动选择一个图形简化算法和图形层次。本引擎将根据选定的算法逐步消去原始图形中的部分顶点,并记录模型简化过程中原顶点和新顶点位置以及顶点间的连接关系的变动信息,从而生成了一个由原始模型的最简化模型和一系列简化信息组成的渐进网格表示模式,渐进网格可以把任意拓扑的计算机网格图形表示为一种高效、无损且具有连续分辨率的编码。在实时绘制时,通过逆向跟踪简化信息序列,对每条简化信息执行逆操作,可以逐步恢复所删除的模型细节,实时得到原始模型的连续精度的简化模型,并由此实现了多层次细节模型的平滑过渡。
2)一种具体的实施方式-蝶形逆细分化简算法,本算法仅仅是一种举例,并不限制本发明的保护范围,其他简化算法包括边裁剪法、点消去法和半边裁剪法等也可以采用。
图1是蝶形细分模式的生成面具,由图中Q1,Q2,Q3,Q4,P1,P2,P3,P4共8点根据公式(1)可生成新的细分顶点PiPi=116[8(P1+P2)+2(P3+P4)-(Q1+Q2+Q3+Q4)]---(1)]]>下一步可通过公式(2)将一次化简操作中的保留点和消去点区分开,将消去点表示为Odd1,保留点表示为Even1(Evenj-1,Oddj-1)=Split(Mj) (2)如图2中的黑色网格顶点均为消去点在正式删除消去点之前,我们还需要计算消去点的相对位置并保存。消去点可根据周围的若干个保留点,通过蝶形细分面具计算而得到一个近似点,通过公式(3)计算得到近似点和消去点之间的误差,操作符P表示以公式(1)或改蝶形细分面具。
ej-1=Oddj-1-P(Evenj-1) (3)为了减小几何误差,我们还将定义一个新算子U来更新消去点周围的保留点,那么此次化简后的网格Mj-1可由公式(4)得到Mj-1=Evenj-1-U(ej-1)(4)ei是在公式(3)中计算得到的下面分析算子U的取法,从公式(1)可知ΔPi=12(ΔP1+ΔP2)+18(ΔP3+ΔP4)-116(ΔQ1+ΔQ2+ΔQ3+ΔQ4)---(5)]]>ΔP是对原始网格进行编辑前后的顶点P的误差,由公式(5)可知根据距离P1的不同每个周围点对误差调整的影响权值也存在差异,而对距离大于3的周边点的影响力不予考虑。
因此算子U的取法如公式(6)U(e)=λvalence(12Σe1+18Σe2-116Σe3)---(6)]]>λ是调整系数,这次取值为2,valence是每个将被更新的保留点的价,e′,i=1,2,3表示距离保留点距离分别是1,2,3的消去点所产生的预测误差。
网格的恢复可很快地通过下面的步骤实现
(1)回滚更新操作Evenj-1=Mj-1-U(ej-1)(2)回滚预测操作Oddj-1=ej-1+P(evenj-1)(3)合并误差项Mj=Merge(Evenj-1,Oddj-1)以上的算法可以实现原始网格的无损化简和恢复。
渐进传输的实现即通过重复利用上述算法,将一个稠密网格M=Mn逐步简化为稀疏网格M0,如公式(7)所示Mn→Mn-1→Λ→M0(7)每一层网格都包括以下一些数据,但原始网格不包括误差信息(i)层的标识(ii)网格数据,包括(a)顶点数目和每个顶点的坐标(b)面的数目和每个面的顶点序列(iii)误差数据,包括误差的数目和误差信息,包括(a)误差的标识,以确定误差的修正目标顶点(b)误差向量的坐标(c)两个顶点的序列,以标识下一层的误差位置渐进网格数据存放在如图3所示的数据链表中,通过逐次合并最后一层的网格数据和中间层的误差数据,最终可以恢复出原始网格。
当接收端收到最后一层的网格数据时,已可以显示出较为粗糙的网格模型,如需要更精细的视觉效果,则可以逐步添加中间层的误差数据。假如传输的原始网格是M0,通过一次分解可分为M1和第一次分解后的误差S1,M1可通过同样的方式分解为M2和S2,依此类推,最终得到Mn和一系列误差Sn,Sn-1,Λ,S2,S1。进行渐进传输时,首先传送简化后的基础网格Mn,再依次传输Sn,Sn-1,Λ,S2,S1,合并Mn和Sn可得到Mn-1,此时的显示效果已经比基础网格Mn有所提高;同理再合并Mn-1和Sn-1可得到Mn-2,进一步改进显示效果,依次逐步合并下去,最终得到原始网格M0,此时整个渐进传输过程完成。
3.

与实施例下面是该引擎开发的细分图形的传输过程Demo程序,

其中的两个
图4表示一个球体的渐进化简和表示的过程,而图5同时也将每次化简所提取出的误差值在图形下方也表示了出来。图4中,经过每次化简后,从左往右每个图形的表示多边形数目是递减的,从而有效地减少了图形的表示数据量,达到减少传输信息的目的。
图5中,经过每次化简后,从左往右每个图形的表示多边形数目也是递减的,同时也将被提取出来的误差信息表示在每个图形的下方,通过逆向合并中间图形和误差量,可以最终恢复为原始图形。
图形的化简层次是根据当时网络状况和用户选定的参数决定的,在发送端完成简化后,才可以逐步传输基础网格图形和误差量。
权利要求
1.一种移动图形渐进传输引擎技术,包括对原始图形进行化简、构造多分辨率模型、提取细节特征和误差偏移量、逐步传输多分辨率模型、添加细节特征、修正误差偏移量的过程。
2.按权利要求1所述的移动图形渐进传输引擎技术,其特征在于该引擎根据用户设置的大致网络传输速度,自动选择一个图形简化算法和图形层次,然后根据选定的算法逐步消去原始图形中的部分顶点,并记录模型简化过程中原顶点和新顶点位置以及顶点间的连接关系的变动信息,从而生成了一个由原始模型的最简化模型和一系列简化信息组成的渐进网格表示模式进行传输;在接收终端实时绘制时,通过逆向跟踪简化信息序列,对每条简化信息执行逆操作,逐步恢复所删除的模型细节,实时得到原始模型的连续精度的简化模型,并由此实现了多层次细节模型的平滑过渡。
3.按权利要求2所述的移动图形渐进传输引擎技术,其特征在于每一层网格都包括以下一些数据,但原始网格不包括误差信息(i)层的标识(ii)网格数据,包括(a)顶点数目和每个顶点的坐标(b)面的数目和每个面的顶点序列(iii)误差数据,包括误差的数目和误差信息,包括(a)误差的标识,以确定误差的修正目标顶点(b)误差向量的坐标(c)两个顶点的序列,以标识下一层的误差位置渐进网格数据存放在数据链表中,接收终端通过逐次合并最后一层的网格数据和中间层的误差数据,最终恢复出原始网格。
全文摘要
本发明公开了移动图形渐进传输引擎技术,其包括对原始图形进行化简、构造多分辨率模型、提取细节特征和误差偏移量、逐步传输多分辨率模型、添加细节特征、修正误差偏移量的过程。本发明所述的移动图形渐进传输引擎系统是适用于嵌入式系统和手持移动设备(手机、PDA等)上的,通过独特的传输机制进行图形的化简、压缩、编码、传输、解码、解压、加细、恢复等一系列过程的传输管理模块。使用者或其他功能模块可方便地通过调用该传输引擎完成移动设备等上的图形渐进传输。
文档编号G06T1/00GK1738247SQ200510035178
公开日2006年2月22日 申请日期2005年6月15日 优先权日2005年6月15日
发明者罗笑南, 胡秋生, 张勤, 周建国, 陈任, 张大捷 申请人:中山大学, 深圳Tcl工业研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1