一种基于Web3D的超大场景实时渲染装置和方法

文档序号:7896795阅读:371来源:国知局
专利名称:一种基于Web3D的超大场景实时渲染装置和方法
技术领域
本发明涉及数据传输加载装置和方法,特别是涉及基于ffeb3D的超大场景数据实时加载渲染的装置和方法。
背景技术
如所公知的,在互联网快速发展的今天,互联网上的3D图形技术(Web3D)日趋成熟,在电子商务、联机娱乐休闲与游戏、科技与工程的可视化、教育、医学、地理信息、虚拟社区等领域应用前景广阔。但在实际应用中,基于B/S模式(即浏览器和服务端架构)的 Web3D应用发展存在两个致命性的因素,即网络带宽和用户客户端的实时渲染速度。用户要访问、使用一个ffeb3D应用程序,客户端程序需要调用本地操作系统的底层图形接口完成三维图形渲染,如果每次使用都需要等待几分钟甚至十几分钟以上的时间来等待通过网络将三维数据从服务器端下载到本地,并在验证完数据完整性之后开始渲染,那么这个应用程序是注定要丧失用户群体的。随着电缆和光纤通信技术的快速发展,网络带宽虽有着大幅提升,但对于文件体积100MB以上超大场景的三维数据而言,传输带宽仍是制约发展的主要瓶颈。三维应用在用户终端上的使用,客户端支持OpenGL或微软的Direct3D (OpenGL和 Direct3D都是专业的图形编程接口,最大区别在于Direct3D是微软Windows系统独有的, 而OpenGL是跨编辑语言、跨系统平台的)是实现的关键,在这一点上ffeb3D和PC 3D没有区别,而OpenGL或Direct3D的运行效率直接取决于用户终端的硬件水平,不同的用户终端存在高端和低端硬件配置的问题,所以要想满足BS模式的Web3D应用在海量良莠不齐的用户终端上流畅运行,优秀的实时渲染技术是非常关键的。Web3D的应用与基于主机的3D应用类似,数据的组织结构也是依照场景、元素、 对象、属性和对象间联系逐步细化,场景中包括各类元素,元素的特性限定了能够完成的方法;属于同一类元素属性的对象定义有不同的三维属性,包括位置、形状、颜色、外观等属性;每个对象还包括与其他对象间的连接关系,包括对象相互间运动状态、触发状态,关联层次等对象间的特征关系。

发明内容
针对以上缺陷,本发明目的是为Web3D的超大场景应用,提供一种实时渲染装置, 解决传输带宽较小不适应实时渲染高要求的技术问题。本发明目的是提供一种利用本实时渲染装置的方法,解决渲染速度慢的问题。本发明的超大场景实时渲染装置包括数据传输部分和数据渲染部分,数据传输部分包括结构转换装置,序列化装置,服务端线程管理装置,数据渲染部分包括客户端数据加载装置,动态显示管理装置;结构转换装置,根据客户端对场景对象的请求,将场景模型响应数据的封装结构转换为JSON结构;
序列化装置,用于将响应数据中场景的模型和元素对象实例化,将实例化的对象转换为独立的数据流;服务端线程管理装置,用来将数据流分配给不同的线程,实现场景模型中各元素对象的并发传输;客户端数据加载装置,用于将场景模型中的元素对象在客户端实时加载,实现数据并发传输与场景元素加载过程同步;动态显示管理装置,用于完成客户端实时渲染,调节客户端系统资源;其中结构转换装置包括内容压缩装置,用于排除JSON结构封装的数据中与场景数据无关的XML信息数据和冗余数据,包括换行符,空格符,制表符,用于平台兼容性的头文件结构;服务端线程管理装置包括优先级管理装置,用于对响应数据中的场景元素对象进行分类,根据恢复场景的需要设置优先级;动态显示管理装置包括资源监视装置,用于监视系统内存或显存的利用率,为优化系统资源提供触发条件。客户端数据加载装置还包括反序列化装置,数据提取装置,数据加载装置;反序列化装置,用于将数据流转换为JSON结构封装的数据,对于转换失败的数据流,向序列化装置发送重新序列化请求;数据提取装置,用于根据客户端请求从JSON封装结构的场景数据中提取场景元素和对象;数据加载装置,用于实时加载场景元素和对象至OpenGL或Direct3D,完成各个对象的渲染。服务端线程管理装置还包括线程分配装置,用于依据客户端请求优先级将序列化的数据流传递给不同线程处理,实现数据并行传送。动态显示管理装置还包括场景层次细节管理装置,根据资源监视装置的控制信号,控制相机元素的视野或视距调整场景中组成对象的三角形的渲染效果和贴图分辨率。动态显示管理装置还包括场景元素加载/卸载装置,根据资源监视装置的控制信号,实时从内存和显存中加载或卸载相机元素的视野或视距中的场景元素和对象。基于本发明的超大场景实时渲染装置的渲染方法,其步骤包括用户提出Web3D应用请求;结构装换装置将服务端场景模型数据的封装结构转换为JSON结构;利用内容压缩装置排除与场景数据无关的冗余数据;通过序列化装置将场景模型中的元素对象实例化,将实例化的对象转换为独立的数据流;通过优先级管理装置,对场景元素对象进行分类,根据恢复场景的需要设置优先级;将序列化的数据流通过线程分配装置传递给不同线程处理,实现数据并行传送;a、客户端将不同线程传送的序列化数据流,通过反序列化装置转换为JSON结构封装的数据;b、通过数据提取装置从JSON结构中提取场景元素;
C、数据加载装置实时加载场景元素;重复a至c步骤,动态完善场景内容。步骤还包括包括通过资源监视装置监视客户端系统内存,显存的动态利用率;当系统利用率达到触发条件时,通过场景层次细节管理装置降低三角形元素的渲染效果或通过场景元素加载/卸载装置卸载相机元素的视野或视距中的次要场景元素;当系统负荷较轻时,通过场景层次细节管理装置提高三角形元素的渲染效果或通过场景元素加载/卸载装置加载相机元素的视野或视距中的次要场景元素。通过本发明的基于ffeb3D的超大场景实时渲染装置,用户访问使用Web3D应用程序时不必再经过较长的等待时间,突破三维应用程序在互联网传播受网络带宽的严重限制;部署和实施Web3D应用时,不必担心用户群体的早期硬件配置较低的终端不兼容性,大大提升了 Web3D应用程序的可行性和实用性。下面结合具体实施例对本发明作进一步说明。


图1为本发明的超大场景实时渲染装置的结构示意图;图2为本发明的超大场景实时渲染装置的服务端数据控制示意流程图;图3为本发明的超大场景实时渲染装置的客户端数据控制示意流程图。
具体实施例方式如图1所示,本发明的基于ffeb3D的超大场景实时渲染装置包括数据传输部分和数据渲染部分,数据传输部分包括结构转换装置01,序列化装置02,服务端线程管理装置 03,数据渲染部分包括客户端数据加载装置04,动态显示管理装置05 ;结构转换装置01,根据客户端对场景对象的请求,将场景模型响应数据的封装结构转换为JSON结构;序列化装置02,用于将响应数据中场景的模型和元素对象实例化,将实例化的对象转换为独立的数据流;服务端线程管理装置03,用来将数据流分配给不同的线程,实现场景模型中各元素对象的并发传输;客户端数据加载装置04,用于将场景模型中的元素对象在客户端实时加载,实现数据并发传输与场景元素加载过程同步;动态显示管理装置05,用于完成客户端实时渲染,调节客户端系统资源。结构转换装置01包括内容压缩装置011,内容压缩装置011,用于排除JSON结构封装的数据中与场景数据无关的XML信息数据和冗余数据,包括换行符,空格符,制表符,用于平台兼容性的头文件结构等。服务端线程管理装置03包括优先级管理装置031,线程分配装置032 ;优先级管理装置031,用于对响应数据中的场景元素对象进行分类,根据恢复场景的需要设置优先级;线程分配装置032,用于依据客户端请求优先级将序列化的数据流传递给不同线程处理,实现数据并行传送。客户端数据加载装置04包括反序列化装置041,数据提取装置042,数据加载装置 043 ;反序列化装置041,用于将数据流转换为JSON结构封装的数据,对于转换失败的数据流,向序列化装置02发送重新序列化请求;数据提取装置042,用于根据客户端请求从JSON封装结构的场景数据中提取场景元素和对象;数据加载装置043,用于实时加载场景元素和对象至OpenGL或Direct3D,完成各个对象的渲染。动态显示管理装置05包括场景层次细节管理装置052,场景元素加载/卸载装置 053,资源监视装置051 ;场景层次细节管理装置052,根据相机元素的视野或视距调整场景中组成对象的三角形的渲染效果和贴图分辨率;场景元素加载/卸载装置053,实时从内存和显存中加载或卸载相机元素的视野或视距中的场景元素和对象;资源监视装置051,用于监视系统内存或显存的利用率,为优化系统资源提供触发条件,为场景层次细节管理装置052,和场景元素加载/卸载装置053提供调节参数。应用中,结构转换装置01响应客户端对场景中元素和对象的请求,将以XML格式封装的请求的场景元素数据和对象数据映射生成更加轻量级的JSON封装格式,通过内容压缩装置011,将JSON封装格式数据中的XML信息过滤掉,并排除冗余信息如空格符,回车符,制表符和其他与场景数据无关的控制字符和平台兼容信息头文件。JSON(JavaScript Object Notation) ^STJavaScript (Standard ECMA-262 3rd Edition-December 1999) 的一个子集,采用完全独立于语言的文本格式,,使JSON和XML —样成为理想的数据交换语言。JSON的对象是一个无序的“ ‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔;数组是值(value)的有序集合,一个数组以“[”(左中括号)开始, “]”(右中括号)结束,值之间使用“,”(逗号)分隔;值(value)可以是双引号括起来的字符串(string)、数值(number)、ture、false、null、对象(object)或者数组(array),这些结构可以嵌套;字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义,一个字符(character)即一个单独的字符串(character string)。JSON结构使得被封装的数据在不同的开发环境中经过简单转换就可加以利用,减轻了数据交换的负载程度,提升了数据利用效率。三维数据经过以上两个步骤的压缩处理后,元素和对象的体积可降至原文件的1%。 1%,非常适用在网络上传输。优先级管理装置031将客户端的数据请求按元素、或对象的数量,模型的复杂程度以及对象间的连接关系标记为不同的优先等级。序列化装置02,根据优先等级,对JSON 数据中的模型、元素或对象进行序列化,将客户端需求的场景元素对象实例化,并将实例化对象转换为独立的数据流。通过线程分配装置032为优先级高的数据流分配更多的处理线程,使多个线程并行处理,优先读取该数据流,实现针对一个或多个客户端的数据请求的并发传输和下载。同时,优先级管理装置031响应客户端数据加载装置04的反馈,保证下载失败的数据流可以获得优先处理,再次传输。客户端数据加载装置04通过反序列化装置041将数据流转换为标准JSON封装结构的数据,该过程一旦失败,反序列化装置041将向优先级管理装置031反馈重传信息。经反序列化装置041转换的各JSON结构数据形成服务端响应数据,数据提取装置042实时从中提取出客户端请求的响应数据。数据加载装置043将响应数据即时加载至渲染引擎完成渲染过程。在三维场景渲染过程中,异步到达响应数据的实时加载,使用户登录场景后就可以开始观看和操控,数据加载装置043在后台会自动加载当前未使用的场景元素和对象, 场景中的模型和对象会顺次的载入视野,逐步完善场景内容,避免了客户端因数据等待而造成服务超时报错。当用户登录三维场景后开始观看和操控,动态显示管理装置05在后台会自动加载当前未使用的场景,模型会顺序载入视野。对于超大三维场景图形数据,利用资源监视装置051,场景层次细节管理装置052,场景元素加载/卸载装置053,实现最大化用户终端对场景的实时渲染能力。资源监视装置051监视客户端系统内存或显存的利用率,按利用率的30%,50%,60%和80%设定触发条件,并反馈给场景层次细节管理装置052和场景元素加载/卸载装置053。使场景层次细节管理装置052调整Web3D应用客户端生成的地形细节,根据三角面与相机距离的远近自动确定组成场景对象的三角形显示级别(密度), 近距离地面三角面密度大,远距离密度小,从而节省了资源开销,而又不影响画面的渲染效果;通过场景元素加载/卸载装置,对三维交换数据中的对象模型进行可视见范围的调整, Web3D应用客户端程序实现直接对内存数据操作,动态加载进入视野的物体,卸载离开视野的元素、对象模型所占用的内存和显存资源,从而保证内存、显存占用量在一个较低的水平。如图2所示,利用本发明的实时渲染装置进行超大场景渲染的使用方法,步骤包括用户提出Web3D应用请求;结构装换装置01将服务端场景模型数据的封装结构转换为JSON结构;利用内容压缩装置011排除与场景数据无关的冗余数据;通过序列化装置02将场景模型中的元素对象实例化,将实例化的对象转换为独立的数据流;通过优先级管理装置031,对场景元素对象进行分类,根据恢复场景的需要设置优先级;将序列化的数据流通过线程分配装置032传递给不同线程处理,实现数据并行传送;a、客户端将不同线程传送的序列化数据流,通过反序列化装置041转换为JSON结构封装的数据;b、通过数据提取装置042从JSON结构中提取场景元素;C、数据加载装置043实时加载场景元素;重复a至c步骤,动态完善场景内容。如图3所示,利用本发明的实时渲染装置进行超大场景渲染的使用方法,步骤包括通过资源监视装置051监视客户端系统内存,显存的动态利用率;当系统利用率达到触发条件时,通过场景层次细节管理装置052降低三角形元素的渲染效果或通过场景元素加载/卸载装置053卸载相机元素的视野或视距中的次要场景元素;当系统负荷较轻时,通过场景层次细节管理装置052提高三角形元素的渲染效果或通过场景元素加载/卸载装置053加载相机元素的视野或视距中的次要场景元素。以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
权利要求
1.一种超大场景实时渲染装置,包括数据传输部分和数据渲染部分,数据传输部分包括结构转换装置(01),序列化装置(02),服务端线程管理装置(03),数据渲染部分包括客户端数据加载装置(04),动态显示管理装置(05);结构转换装置(01),根据客户端对场景对象的请求,将场景模型响应数据的封装结构转换为JSON结构;序列化装置(02),用于将响应数据中场景的模型和元素对象实例化,将实例化的对象转换为独立的数据流;服务端线程管理装置(03),用来将数据流分配给不同的线程,实现场景模型中各元素对象的并发传输;客户端数据加载装置(04),用于将场景模型中的元素对象在客户端实时加载,实现数据并发传输与场景元素加载过程同步;动态显示管理装置(05),用于完成客户端实时渲染,调节客户端系统资源;其特征在于结构转换装置(01)包括内容压缩装置(011),用于排除JSON结构封装的数据中与场景数据无关的XML信息数据和冗余数据,包括换行符,空格符,制表符,用于平台兼容性的头文件结构;服务端线程管理装置(0 包括优先级管理装置(031),用于对响应数据中的场景元素对象进行分类,根据恢复场景的需要设置优先级;动态显示管理装置(0 包括资源监视装置(051),用于监视系统内存或显存的利用率,为优化系统资源提供触发条件。
2.如权利要求1所述的超大场景实时渲染装置,其特征在于客户端数据加载装置 (04)包括反序列化装置(041),数据提取装置(042),数据加载装置(043);反序列化装置(041),用于将数据流转换为JSON结构封装的数据,对于转换失败的数据流,向序列化装置(0 发送重新序列化请求;数据提取装置(04 ,用于根据客户端请求从JSON封装结构的场景数据中提取场景元素和对象;数据加载装置(04 ,用于实时加载场景元素和对象至OpenGL或Direct3D,完成各个对象的渲染。
3.如权利要求2所述的超大场景实时渲染装置,其特征在于服务端线程管理装置 (03)包括线程分配装置(032),用于依据客户端请求优先级将序列化的数据流传递给不同线程处理,实现数据并行传送。
4.如权利要求3所述的超大场景实时渲染装置,其特征在于动态显示管理装置(05) 包括场景层次细节管理装置(052),根据资源监视装置(051)的控制信号,控制相机元素的视野或视距调整场景中组成对象的三角形的渲染效果和贴图分辨率。
5.如权利要求4所述的超大场景实时渲染装置,其特征在于动态显示管理装置(05) 包括场景元素加载/卸载装置(053),根据资源监视装置(051)的控制信号,实时从内存和显存中加载或卸载相机元素的视野或视距中的场景元素和对象。
6.利用权利要求1至5所述任一基于ffeb3D的超大场景实时渲染装置的方法,其步骤包括用户提出Web3D应用请求;结构装换装置(01)将服务端场景模型数据的封装结构转换为JSON结构; 利用内容压缩装置(011)排除与场景数据无关的冗余数据;通过序列化装置(0 将场景模型中的元素对象实例化,将实例化的对象转换为独立的数据流;通过优先级管理装置(031),对场景元素对象进行分类,根据恢复场景的需要设置优先级;将序列化的数据流通过线程分配装置(032)传递给不同线程处理,实现数据并行传送;a、客户端将不同线程传送的序列化数据流,通过反序列化装置(041)转换为JSON结构封装的数据;b、通过数据提取装置(04 从JSON结构中提取场景元素; C、数据加载装置(04 实时加载场景元素;重复a至c步骤,动态完善场景内容。
7.如权利要求1至5所述任一基于ffeb3D的超大场景实时渲染装置的方法,其步骤包括通过资源监视装置(051)监视客户端系统内存,显存的动态利用率; 当系统利用率达到触发条件时,通过场景层次细节管理装置(052)降低三角形元素的渲染效果或通过场景元素加载/卸载装置(05 卸载相机元素的视野或视距中的次要场景元素;当系统负荷较轻时,通过场景层次细节管理装置(05 提高三角形元素的渲染效果或通过场景元素加载/卸载装置(05 加载相机元素的视野或视距中的次要场景元素。
全文摘要
本发明超大场景实时渲染装置,涉及数据传输加载装置和方法。包括数据传输部分和数据渲染部分,数据传输部分包括结构转换装置,序列化装置,服务端线程管理装置,数据渲染部分包括客户端数据加载装置,动态显示管理装置。本装置使用户访问使用Web3D应用程序时不必再经过较长的等待时间,突破三维应用程序在互联网传播受网络带宽的严重限制;部署和实施Web3D应用时,不必担心用户群体的早期硬件配置较低的终端不兼容性,大大提升了Web3D应用程序的可行性和实用性。同时提供一种利用本装置进行渲染的方法。
文档编号H04L29/08GK102279752SQ20111025600
公开日2011年12月14日 申请日期2011年8月31日 优先权日2011年8月31日
发明者方宝友, 李建中, 解军, 饶英俊, 马春宇 申请人:北京华电万通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1