基于Web3D的异构数据存储及通信研究

时间:2020-09-07 15:33:42 通信工程毕业论文 我要投稿

基于Web3D的异构数据存储及通信研究

  【摘 要】针对目前虚拟现实中三维模型和二维属性关联程度低、加载速度慢的情况,本文以湖南省地质博物馆为例,采用Unity3D作为开发平台,研究了异构数据存储的存储方式及通信途径,制定了数据库存储和文件存储相结合的数据存储方案,并对Unity3D在Web环境下的数据通信过程进行了研究。采用异步、分层次加载的方式对异构数据进行加载,满足了参观者的参观心理,在保证数据一致性的前提下,提高了数据的加载速度。

基于Web3D的异构数据存储及通信研究

  【关键词】异构数据;存储;通信;Web3D;虚拟博物馆

  引言

  Web3D,即网络三维技术,指在虚拟现实的基础上,将现实世界中的物体通过互联网进行虚拟的三维立体展示并提供交互操作的一种虚拟现实技术[1]。目前,Web3D技术得到互联网领域的广泛关注,并已在博物馆的虚拟展示方面得到应用,Google与世界多家博物馆合作的Google“艺术计划”、南京市博物馆、上海市博物馆、敦煌洞窟壁画博物馆等使用Web3D,均已实现博物馆的远程三维浏览及互动,但是目前虚拟博物馆基本上采用图片或全景图进行展示。采用图片进行展示,实现方式简单,但三维展示功能普遍较弱,全景图虽然在该方面有所提高,能很好的现实虚拟效果,但是仍存在三维模型与二维属性信息关联程度低的缺陷,参观者不能获得场景及展品的信息,不能对展、藏品进行全方位展示,更谈不上对展、藏品的信息化管理。

  对展馆和展品进行虚拟展示,不仅要在网络中传输结构化的属性数据,还需要传输大量的沉重的图片、模型、音视频等非结构化数据,这些数据,特别是非结构化数据的传输速度受互联网网络带宽和传输速度的限制,加载速度慢。为了满足网络环境下参观者对于加载流畅度的要求,提高三维模型和二维属性的关联程度,实现异构数据的一致性存储,对虚拟博物馆进行数据存储和通信方式的研究变得尤为重要。

  Unity3D是一个成熟的跨平台、层次级的虚拟现实开发引擎,支持JavaScript、C#、Python等多种脚本语言,兼容各种操作系统,可发布成网页的方式,用户不用下载客户端即可体验。本文以湖南省地质博物馆为例,采用Unity3D作为开发平台,根据地质博物馆展/藏品的特点及之间的相互关系,设计了虚拟博物馆的数据存储方式,并对网络环境中虚拟博物馆的数据通信过程进行研究。

  图1 系统架构示意图

  1 系统架构

  在网络环境下,为了保证系统的响应速度和数据安全,系统采用B/S三层架构,图1展示了系统的主要构成,分为表示层、业务层及数据层[2]。

  1.1 表示层

  表示层采用Unity3D的NGUI插件进行开发,是虚拟博物馆与参观者进行交互的界面。表示层通过http协议将交互产生的数据发送到业务层,并对业务层反馈的数据进行可视化显示。

  在表示层中,虚拟浏览导航模块可根据用户选择的浏览方式为用户提供不同的参观线路,实现用户在虚拟展馆中的参观移动。展品展示模块实现展品在虚拟博物馆中的加载及图片、音频、视频、三维模型等全方位展示。查询功能模块实现用户对展馆及展、藏品的分类查询查询和在虚拟博物馆中的定位。

  1.2 业务层

  业务层采用Unity3D编写脚本,根据表示层用户的交互请求,向数据层请求数据。

  导航辅助模块提供虚拟展馆中参观的节点信息,并根据用户的位置提供参观线路。资源管理模块对客户端的请求对数据控制模块反馈的数据进行管理。数据控制模块按照导航辅助模块和资源管理模块的需求向数据层请求数据。

  1.3 数据层

  数据层存储虚拟博物馆的展馆及展、藏品的所有信息,包括属性信息、位置信息、模型、音频、视频、图片等。

  2 数据存储

  为了对系统中存储的异构数据进行统一管理,保持数据一致性,同时,保证数据的加载速度,系统采用数据库存储和文件存储相结合的方式存储异构数据,即在文件系统中存储文件,同时在数据库中存储文件的路径和文件相应的BLOB字段。系统在进行读取操作时,可直接读取文件系统中的文件,在更新数据时,则将数据库和文件系统的数据同时进行更新。

  2.1 基于心理设计存储层次

  2.1.1 数据库存储

  由于参观者参观博物馆时首先进入博物馆主场馆,然后按照展馆逐个参观,并重点观看自己感兴趣的展品,考虑到参观者的参观心理及参观习惯,系统按照湖南省地质博物馆中展馆及展品等实体的陈列关系,将博物馆按层次分为展馆主体、展厅、展柜、展品四部分,采用分步加载的方式对各层次数据进行加载,不仅能够满足参观者的视觉需求,而且减少了单次加载的数据量,从而减少参观者等待数据加载的时间。

  根据博物馆中实体的层次划分,系统共设计19张表,存储各层次主体的基本信息、音频、视频、三维模型的信息,各表之间以外键关联,既能保持各表的关联,同时保持了各自的独立性,便于日后按照需求进行扩充。

  以展品为例,根据系统需求,共包含展品基本信息表(EXITEM_BASEINFO)、展品图片信息表(EXITEM_PICINFO)、展品模型信息表(EXITEM_MODELINFO)、展品视频信息表(EXITEM_VIDEOINFO)、展品音频信息表(EXITEM_AUDIOINFO)、展品类型信息表(EXITEM_TYPEINFO),在此,主要对展品基本信息表和展品模型信息表进行说明。

  表1 展品基本信息表

  展品基本信息表中ITEM_ID为主键,EXHALL_ID等为外键,将展品基本信息表和展厅基本信息表进行关联,系统能够根据展品ID查询到其所在展厅、展柜及收藏者信息等,可以从多角度、全方位地对展品进行展示,同时,将这些信息分表存储,减小了单表的数据量,可提高查询速度,避免数据库更新异常等问题。

  表2 模型基本信息表

  模型基本信息表中主键为MODEL_ID,外键为EXITEM_ID,将模型基本信息表和展品基本信息表关联,系统可根据EXITEM_ID获取到展品的三维模型。展品模型按照二进制流[7](EXITEM_MODEL字段)和文件路径(FILEPATH字段)两种方式进行存储,既方便和文件系统的数据进行关联,实现数据的统一管理,而且二进制流在文件系统异常时可根据路径用于文件的恢复,在有数据冗余的情况下,可提高系统中数据的安全性能。