论文部分内容阅读
随着互联网技术的快速发展,尤其是在WebGL标准提出后,大量基于Web的3D应用涌现出来。不同于传统的Web应用,基于Web的3D应用需要面临的一个问题则是3D资源的传输的带宽占用过多,从而导致的严重的系统延迟。另外,因3D资源都存储在服务器端,对这些3D数字内容的有效管理必然离不开版本控制。然而传统的版本控制机制关注的更多是文本文件,并非二进制文件。大部分的3D资源都是二进制文件,如果采用传统的版本控制方法,则会占用大量的存储空间。本文则主要研究基于Web的协同3D场景建模系统。为了解决因3D资源的传输而导致的系统延迟问题,本文基于场景图提出了抽象场景的概念。在基于Web的场景建模的应用中,大多时候我们只需传输抽象场景,从而极大地减少系统的网络数据传输量。另外,在同步(实时)协同3D场景建模时,需要维护多个用户之间共享场景的一致性。用户的操作越频繁,数据的传输越频繁,为了避免每次都传输整个抽象场景,我们基于抽象场景,定义了更加轻量级的抽象操作,以描述各种实时的场景建模用户操作。为了提高3D数字内容管理的效率,我们提出了面向3D场景的版本控制系统。我们通过将3D场景资源存储并表示成有向无环图结构的场景图,并基于这样的场景图结构设计各种版本控制算法,可以更高效地计算各个场景版本之间的差异,从而减少版本控制系统的存储空间的消耗。另外,本文基于此思想实现的版本控制系统所支持的非线性工作模式,直接为非线性工作模式的异步协同3D场景建模提供了有力的支持。本文的主要研究工作如下:(1)提出了面向3D场景的非线性版本控制方法,其核心思想是将各种3D场景资源存储并表示为场景图。基于这样的场景图数据结构,设计了各种版本控制相关的算法,包括提交版本、提取版本、分支与标记、差分与融合等。其中差分融合是核心也是最具挑战性的部分,我们定义了五种状态差异类型和七种结构差异类型,并基于这些差异类型设计了自动差分以及半自动融合算法。(2)提出了基于Web的协同3D场景建模系统框架,该框架支持同步协同和异步协同,且基于面向3D场景的版本控制系统为3D数字内容进行管理。为了解决因3D资源的传输所带来的系统延迟的问题,我们从场景图中分割出场景资源,提出了抽象场景以及基于抽象场景的三种抽象操作,包括创建对象、编辑状态和编辑结构。(3)以面向3D的版本控制系统为基础,设计了同步协同和异步协同的3D场景建模。同步协同采用序列化操作的方式来维护共享场景的一致性,从而避免协同过程中发生的冲突。异步协同则直接依赖版本控制系统提供的非线性工作模式,并以乐观的方式来发现和解决因共享场景数据所带来的各种冲突。基于以上的研究,本文设计并实现了基于Web的协同3D场景建模原型系统。其中基于web的3D场景建模应用主要基于开源的three.js editor。该应用以提供了丰富的场景建模功能,并能将各种常见的3D各式文件转换成系统所依赖的场景图格式,three.js提出的JOS。最后,本文通过实际的用例对原型系统中的版本控制、同步协同3D建模和异步协同3D建模进行了验证和分析。