用于三维场景模型递进传输的方法和装置的制作方法

文档序号:7923400阅读:175来源:国知局
专利名称:用于三维场景模型递进传输的方法和装置的制作方法
技术领域
本发明一般涉及数据传输技术,且更具体地,涉及一种采用多层次递进策略在网 络上对大规模三维场景模型进行传输的方法和软件系统。
背景技术
随着模型获取手段的提高,三维网格模型越来越精细,数据量急剧增大,大规模三 维场景对实时绘制和网络传输都提出了更高的要求。在实时三维场景绘制过程中,为了提 高复杂场景的绘制效率,一般采用多分辨率的方式来表示场景中的模型,传统的多分辨率 方式称为离散细节层次模型(Level-of-Detail,缩写为L0D),即对同一个模型生成多个不 同层次的细节模型,当需要以不同精度表示三维模型时,可以在所述的多个层次的细节模 型中进行选择。采用这一方法的实质是针对一个三维对象构建多个三维模型,从而大大增 加了场景的数据量。对于网络应用来说,这种方式不但不会增加绘制效率而且会增加网络 负担。而传统的单分辨率模型的网络传输采取“传统的单分辨率模型的网络传输(下载 并显示)模式,即将三维模型的所有相关数据都下载到客户端之后再显示。采用离散细节 模型表示的场景,需要单独传输每一个细节层次的单分辨率模型,在现有较低网络带宽的 情况下,传输的延迟必然造成用户响应延迟,导致实时效率降低并真实感体验程度。针对这一问题,在现有技术中已经提出了递进网格(Progressive Mesh)技术,这 一技术提出首先,采用模型化简的方法对精细模型进行化简,生成一个简单粗糙的三维模 型,并保存化简过程中所删除的几何信息;而在绘制过程中,首先绘制上述经简化的粗糙网 格模型,然后依次读取化简过程中所删除的几何信息,进而得到最终的模型。这种方式对于大规模模型的递进网络传输尤为有用。它提供了一种高精细粒度的 优化方法,在从粗糙网格生成精细网格的过程中,每次只增加一个顶点。因而在当前的网络 传输条件下,使用这一方法可以较好地解决传统的“下载并显示”方法中存在的模型传输延 迟问题。然而,在视点相关的大规模场景绘制和传输过程中,这种优化粒度过细。这是因为 这种方法在最终生成精细网格的过程中,每次只增加一个顶点,因而这种高精细度优化方 法相对于用户对于模型精细程度的感知度来说过于细致,即,普通用户很难感觉到当前模 型与增加一个顶点后的模型的差异;同时,用户期望在生成最终模型的生成时间以及递进 生成的精细粒度之间存在良好的平衡关系。因而,期望能够在大规模场景绘制和传输过程中,提供一种以递进方式传送大规 模模型的方法和设备。

发明内容
本发明的目的在于,提供一种以递进方式传送大规模模型的方法和设备。根据本发明的第一方面,提供了一种用于三维场景模型的递进传输方法,其中所述方法包括-对象级传输策略根据场景的空间位置关系和对象属性将场景划分成为相互独 立的区块;-点面级传输策略对于所述每个区块,采用模型化简对每个区块进行化简,并记 录化简过程中删除的点的信息以形成递进网格格式。根据本发明的另一方面,提供了一种用于三维场景模型的递进传输装置,其中所 述装置包括-对象级划分器,用于根据场景的空间位置关系和对象属性将场景划分成为相互 独立的区块;-点面级简化器,对于所述每个区块,采用模型化简对每个区块进行化简,并记录 化简过程中删除的点的信息以形成递进网格格式。


参考以下结合附图的详细说明,本发明的特征、优点以及其他方面将变得更加明 显,在附图中图1示出了根据本发明的方法的操作流程图;图2A概要示出了用于实现根据本发明的方法的客户端_服务器模式的架构图;图2B详细示出了根据本发明的方法的实现框图;图3示出了在客户端处实现的各线程模块之间的交互关系;图4示出了在服务器端实现的插件的设计结构;图5A示出了在传输过程中某时刻时的模型三角网格的图示;以及图5B示出了在传输过程中的最终模型三角网格的图示。
具体实施例方式在下文中,将参考附图详细说明根据本发明的方法以及装置的实现过程。首先介绍在大规模三维场景的网络传输中的几个基本事实事实之一,在当前的网络条件下,大多数的三维场景模型的传输(例如,三维网络 游戏中的模型传输)都是在常规网络(例如,因特网)中进行的,仅有少数高端应用是基于 专用高速网实现。三维模型传输的主要瓶颈在于网络速度造成的延迟,而传统的单分辨率 传输方法需要将模型的所有数据都下载到客户端后才能进行显示,造成用户需要等待过长 的时间。针对这一现状,本发明提出了一种递进传输测量,即首先传输比较粗糙的模型,然 后随着时间的推移,通过后续逐渐传输的细节信息对该粗糙模型进行优化,进而以递进方 式逐渐形成精细的模型。这就能够大大降低用户等待时间,提高实时性。另外,递进网格的优化策略中,针对现有技术每次只更新一个网格顶点的粒度过 细的问题而提出了一种包含对象级策略和点面级测量的递进传输方式。首先,对象级策略 是针对大规模模型显示负担较重的问题,提出将模型按表面空间进行划分;其次点面级策 略是针对每个区块内部的点面数据,即,对于每一个区块分别生成单独的递进网格格式,并 分别传输。
4
事实之二,当用户在一个较大场景中进行漫游的过程中,在除鸟瞰以外的绝大多 数情况下,其浏览的模型数据可能只是所有数据中的一小部分,因而仅需要对用户视点附 近的区块进行传输,即仅传输当前正处于用户视野范围内的区块、以及将来很可能进入用 户视野范围内的区块的数据。针对这一问题,在传输过程中只需要根据用户当前的视点判断哪些区块正处 于当前的用户视点范围以内,并仅对用户视点范围以内的区块进行传输;而对于用户 不关心的区域信息,不需要进行传输,从而降低网络数据传输量,这是一种需求驱动 (Demand-driven)的传输策略。另外,当网络处于空闲状态时,可以根据用户当前的视点位置和运动情况,判断其 下一步可能需要的数据,并向服务器端发送数据请求,这是一种预请求传输策略。本发明的方法的优点在于,不但减少了用户等待时间,而且降低了数据传输量,尤 其是在低速网络环境中,这种优势更加明显。另外在网络传输过程中,采用标准的HTTP服 务器,针对视点相关传输,开发了针对服务器的相关插件,使得客户端和服务器之间可以实 现高效的网络传输。在下文中将详细说明本发明传输方法,其包括两个层次第一层次是对象级,对于一个较大规模的三维场景,首先根据空间和物体对象属 性将场景划分成块,块与块之间的划分考虑到场景中物体本身的属性,在保持物体本身完 整的前提下进行划分,之后对每一块进行编号,并定义其空间坐标位置,以及记录与绘制相 关的信息,如纹理信息等,这些信息采用配置文件的形式保存;第二个层次是点面级,针对每一个块,我们采用模型化简策略对其进行化简,在化 简过程中,为了避免块与块之间产生漏洞,我们需要保持块边界顶点的完整性,之后将其转 换为递进网格格式编码。本发明相关软件系统包括两部分其一是客户端,我们基于ATL技术开发了针对 IE浏览器的ActiveX插件,该客户端软件支持多层次数据异步下载绘制策略、有效的资源 管理、高效的场景管理、碰撞检测及响应、鼠标拾取以及多通道渲染技术;其二是服务器端 软件,开发了针对HTTP服务器的ISAPI插件,支持基于状态的多层次传输策略。在实际传 输过程中,首先将场景配置文件传输到客户端,然后根据配置文件的空间信息以及当前用 户的视点信息向客户端发送请求,将最粗糙的模型传递到客户端,然后当用户视点变化的 时候,向服务器端发送关于视点位置的请求,在服务器端保持对每个客户端的状态信息,当 新的视点位置请求到达后,服务器根据这一信息以及相关状态确定需要发送的数据信息。下面详细描述本发明方法的各个部分。(一 )传输策略实现本发明分两个层次实现传输策略,分别是对象级和点面级。在对象级,根据场景 中物体的空间位置和对象属性将场景划分。对于由多个物体组成的场景,根据物体对象本 身进行划分,如将一个场景分为地形、树木、建筑物等;对于只有一个物体对象的场景,根据 空间位置进行划分。并且在划分过程中保证每一块不会出现人为空洞,如对于较大的地形 对象,根据空间进行划分,但是对于高度陡峭的区域,为了保证网格的连续性,并不将高度 突出或者凹陷的部分划分到两个区域。划分之后,将每一块的位置信息、范围以配置文件的形式保存,在这里采用XML作为基本文件格式,该配置文件在传输过程中首先传输到客户端,客户端根据当前的视点信 息确定需要请求的区块信息,对于每个区块首先传输其基于递进网格格式的基网格,当基 网格传输结束之后,开始点面级数据的传输;在基网格的生成过程中,为了保证块与块之间 不出现空洞,化简过程中需要保证对于块边界上的点不变。对于点面级传输,如果客户端的 视点发生变化,那么就将视点信息作为参数传输到服务器端,服务器根据当前视点判断需 要传输的数据,并将数据传递到客户端。与现有的传输方法相比,多层次递进传输可以有效利用网络带宽,尤其是在低速 网络条件下,能够最大限度的减少用户等待时间,实现边下载边显示的模式。如图1中所示,其中示出了根据本发明的方法的流程图。首先,根据本发明的方法开始于步骤S110,步骤S110和S120均为预处理步骤,其 分别用于将场景划分成为相互独立的区块,以及用于采用模型化简方法来对每个区块进行化简。接着,预处理步骤之后,在实际应用过程中,在步骤S130中判断当前用户视点是 否有所变化,如果用户视点产生了变化,则操作流程前进至步骤S140,以便递进方式传输用 户可视区域中的区块中的点面数据;否则,操作流程跳转至步骤S150。在步骤S150中,判断当前网络是否处于空闲状态,如果判断为真,则操作流程前 进至步骤S160以便预估可能需要传输的区块,即有可能后续进入用户可视区域中的区块 并以递进方式传输相关的点面信息;否则,操作流程返回步骤S130进行后续处理。表1示出了在两种不同网络速度下基于本发明的传输策略与传统传输策略对应 的时间对比,其中模型大小为15MB。表 1 从表中可以看出,基于本发明的传输策略,用户能够在很短的时间(0. 35s左右) 内得到一个粗糙的网格,具有非常快的响应速度,而传统的非递进传输策略则需要等待 280s(56KB/s 速度下)。( 二 )系统结构如图2A所示,本方法采用了其中所示出的客户端-服务器模式。如图2B所示,概 要示出了用于实现根据本发明的方法的客户端-服务器模式的架构图。服务器端针对每个 客户端建立一个传输进程,并保存其传输状态,客户端根据用户当前视点的变化实时的发 送数据请求到服务器并取得数据,其具体交互过程如下1)客户端向服务器发出模型传输请求,并建立与服务器之间的数据连接通道。2)服务器向客户端发送场景配置文件。3)客户端分析场景配置文件,并根据当前视点发送具体文件请求信息。
4)服务器向客户端传送基网格信息。5)客户端接收到基网格信息后进行显示。6)当客户端视点变化之后,发送新的请求到服务器。7)服务器进行优化信息的传送。8)重复步骤6)9)客户推出,请求断开。(三)客户端设计为了更好的组织和管理场景,客户端根据功能划分成四个独立的模块异步下载、 资源管理、场景管理和渲染系统。如图3中所示,其中示出了在客户端处实现的各线程模块 之间的交互关系,为了达到平滑绘制效果,客户端分三个线程运行,分别是数据下载线程 310、数据分析线程320以及绘制线程330,其中下载线程310和分析线程320属于异步下载 模块。三线程之间的关系如图3所示。当下载速度比较慢时,分析线程320解析完毕当前的数据段后,分析线程320需要 根据当前下载的状态决定其本身运行状态。如果当前文件未下载完毕,那么继续等待下一 段数据的到来;如果当前文件已经下载完毕,说明刚才分析的是文件的最后一部分数据,分 析结束退出。异步下载模块该模块运行在单独的线程中,负责数据的请求和接受以及分析。服 务器将模型文件顺序的传输到客户端,客户端在接收数据的同时分析数据内容,针对内容 的不同构建不同的内部模型数据表示,当基网格传输结束之后,便开始渲染;同时在每个优 化信息到达时,都需要更新内部的数据内容,并重新更新屏幕中的图像。资源管理模块该模块负责管理场景中的各种资源,如三维网格模型、纹理图片 等,这部分数据量比较大,运行中占据的系统内存空间也比较大。在实际应用中,经常出现 多个仿真实体具有相同的几何模型的情况,为了节约内存和模型下载的时间,对于这种模 型,可以只加载一次,在绘制的时候多次调度同一个模型。场景管理采用场景图方式对场景数据进行组织,与其它系统不同之处是本系统 采用树结构组织,同时考虑到实际应用中,模型的几何信息占据大部分内存空间,因此采用 共享几何信息的方式实现数据管理,模型的几何信息由资源管理模块负责调度,场景图中 的节点只包含一些特例信息。渲染系统该模块负责系统的绘制,采用OpenGL作为底层API,以通道表示一个取 景视口,系统中至少存在一个通道,根据用户的需求可以添加多通道操作,实现“画中画”效^ o(四)服务器端设计为了确保对每个客户端数据传输的正确性,即只传输客户视域内的优化信息,并 且防止数据的重复传输,在这里我们设计了有状态的服务器,对每一个客户端构建一个单 独的进程,并同时构建一个二叉顶点分裂森林用来保持传输状态;同时为了防止同一模型 在内存中加载多次,所有的模型都由主线程控制,多个线程共享同一模型内存数据。如图4中所示,示出了在服务器端实现的插件的设计结构。数据管理线程410负责 响应用户请求,当某一个用户发出文件传输请求之后,则数据管理线程410便启动一个通 信线程(例如,通信线程A 420),负责该用户的数据传输任务。数据管理线程410负责管理
7所有客户请求的模型文件的数据,所有通信线程(例如,通信线程A 420、通信线程B 430) 只保存该线程所对应的客户端的状态信息,这些信息引用数据管理线程410的模型数据信 肩、o当某一通信线程A 420请求一个模型文件,如果数据管理线程410中包含这个文 件,那么返回该模型的内存数据的指针,否则需要启动模型加载线程将该模型从磁盘中加 载到内存。通信线程A 420以及通信线程B 430根据数据管理线程410中的模型数据内容 构建自己的状态,并负责对用户状态的接收和数据的传输。图5为传输过程中某个时刻模型三角网格和最终三角网格的比较。其中图5A示 出了在传输过程中某时刻时的模型三角网格的图示;以及图5B示出了在传输过程中的最 终模型三角网格的图示。本领域技术人员应该理解,在实际环境中,可以对上述实施方式及其变型中的各 个特征和步骤进行任意组合,只要能够实现根据基于关系信息来查询联系人信息即可。本发明可通过多种编程语言来实现,包括但不限于C、C++、C#、Java等等。本发明可以以硬件、软件、固件以及它们的组合来实现。本领域技术人员应该认识 到,也可以在供任何合适数据处理系统使用的信号承载介质上所设置的计算机程序产品中 体现本发明。这种信号承载介质可以是传输介质或用于机器可读信息的可记录介质,包括 磁介质、光介质或其他合适介质。可记录介质的示例包括硬盘驱动器中的磁盘或软盘、用 于光驱的光盘、磁带,以及本领域技术人员所能想到的其他介质。本领域技术人员应该认识 到,具有合适编程装置的任何通信终端都将能够执行如程序产品中体现的本发明方法的步 马聚o从上述描述应该理解,在不脱离本发明精神的情况下,可以对本发明各实施方式 进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本 发明的范围仅受权利要求书的限制。
权利要求
一种用于三维场景模型的递进传输方法,其中所述方法包括-对象级传输策略根据场景的空间位置关系和对象属性将场景划分成为相互独立的区块;-点面级传输策略对于所述每个区块,采用模型化简对每个区块进行化简,并记录化简过程中删除的点的信息以形成递进网格格式。
2.根据权利要求1中所述的方法,其中在所述对象级传输策略中,以区块作为基本传 输单位。
3.根据权利要求1中所述的方法,其中在所述点面级传输策略中,以递进方式传输所 述每个区块中的点面信息。
4.根据权利要求1中所述的方法,其中在所述模型化简过程中,保持每个区块的边界 顶点不变,以防止形成空洞。
5.根据权利要求1-4中所述的方法,进一步包括_按需传输策略传输过程中只传输用户视域范围内的块区块和/或相关的点面信息。
6.根据权利要求5中所述的方法,所述按需传输策略进一步包括当用户视点变动之后,需要根据新的当前视点信息获取相应的区块和/或点面数据信 息进行传输;无须更新视域之外的区块和/或相关的点面信息。
7.根据权利要求1-4中所述的方法,进一步包括_预取传输策略当网络处于空闲状态时,根据当前视点预估可能需要传输的区块,并 传输所述区块和/或相关的点面数据信息。
8.一种用于三维场景模型的递进传输装置,其中所述装置包括_对象级划分器,用于根据场景的空间位置关系和对象属性将场景划分成为相互独立 的区块;-点面级简化器,对于所述每个区块,采用模型化简对每个区块进行化简,并记录化简 过程中删除的点的信息以形成递进网格格式。
9.根据权利要求8中所述的装置,其中进一步包括-对象级传输器,用于以区块作为基本传输单位进行传输。
10.根据权利要求8中所述的装置,其中进一步包括-点面级传输器,用于以递进方式传输所述每个区块中的点面信息。
11.根据权利要求8-10中所述的装置,进一步包括-视点检测器,用于当用户视点变动之后,需要根据新的当前视点信息获取相应的区块 和/或点面数据信息进行传输;无须更新视域之外的区块和/或相关的点面信息。
12.根据权利要求8-10中所述的装置,进一步包括-预取传输器,用于当网络处于空闲状态时,根据当前视点预估可能需要传输的区块, 并传输所述区块和/或相关的点面数据信息。
全文摘要
本发明公开了一种用于三维场景模型的递进传输方法,其中所述方法包括对象级传输策略根据场景的空间位置关系和对象属性将场景划分成为相互独立的区块;点面级传输策略对于所述每个区块,采用模型化简对每个区块进行化简,并记录化简过程中删除的点的信息以形成递进网格格式。
文档编号H04L12/24GK101854368SQ20081018780
公开日2010年10月6日 申请日期2009年4月3日 优先权日2009年4月3日
发明者吕伟伟, 王秀玲 申请人:吕伟伟;王秀玲
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1