移动终端用户实时交互访问远程3D场景的渲染交互方法与流程

文档序号:11865997阅读:790来源:国知局
移动终端用户实时交互访问远程3D场景的渲染交互方法与流程

本发明属于云渲染和应用软件体系结构设计相结合的领域,涉及虚拟现实在移动智能终端的应用,具体涉及一种移动终端用户与远程3D场景进行实时交互访问的方法。



背景技术:

随着计算机视觉、虚拟现实、增强现实、增强虚拟环境等技术日新月异的发展,各种规模的三维场景随之走进了人们的生活,如:大规模的3D网络游戏,支持多人同时在线对自己逝去的亲人进行祭祀活动的网络虚拟祭祀平台、虚拟试衣平台、场景展示平台、虚拟测试平台等。毫无疑问,当前主流PC机可以直接对各种规模的远程场景进行漫游和相关的交互操作;而当前的移动终端用户对远程3D场景的访问和交互则受到了诸多方面因素的限制:

1、硬件的限制:当前移动端为了解决渲染性能不足的问题,已经从原先的CPU承担渲染工作转化为了由专门的GPU芯片承担渲染工作。但是由于在移动设备领域并没有形成类似PC界的统一标准,各个厂商推出的产品实现各不相同,因此一套渲染程序在不同的移动设备上运行效果差别可能会比较大。并且渲染性能好一些的移动设备价格又比较高,想要让一般手机用户也能感受到比较好的虚拟场景交互体验很难做到。除此之外,就算是目前顶级的一些移动设备,在面对三角形数目多、渲染算法复杂的场景时,依然会出现卡顿、硬件不支持的情况;

2、第三方插件的依赖:目前在移动端运行3D场景,大多都需要安装由第三方开发的软件才能够运行,这样的要求对于一些项目来说并不方便,部分用户有可能会拒绝安装这些第三方插件,从而阻碍了相关产品的推广;

3、浏览器技术的限制:当前主流移动端浏览器在渲染3D场景普遍采用WebGL的技术,但该技术在移动设备浏览器上还不成熟,并且主流浏览器在对该技术的支持上也是各不相同。在这种情况下,渲染程序在不同的浏览器上运行得到的效果不仅可能会不一致,还有可能在运行过程中出现效率低、渲染错误的情况;

4、网络传输速度的限制:当移动终端本地需要渲染3D场景时,需要从服务器下载相关的素材文件,而当前移动终端的网络传输速度在应对这些素材有些困难,如果通过WIFI或者是4G网络进行下载,单个素材文件大小达到10M的量级时,仅仅下载素材就要耗费许多时间,这将会影响到用户的体验。如果预先将渲染所需的素材文件保存在移动设备中,也很难避免到后期素材文件更新的问题,并且占用用户过多的存储空间也可能会导致用户拒绝使用。

当前主流移动终端设备都存在的瓶颈问题:移动端浏览器不能流畅的漫游、浏览远程3维场景,如何能够让更多的移动终端用户体验到近似PC端的3D场景交互,是一个需要解决的问题。



技术实现要素:

本发明为了克服现有技术不支持移动端用户对远程三维场景浏览和相关的交互操作技术瓶颈,使得移动终端用户和PC端用户达到相似的用户体验,提供了一种移动终端用户实时与远程虚拟3D场景交互的方法。

本发明提供的基于云的移动终端用户实时访问远程3D场景的渲染交互方法,基于三层渲染交互框架,三层渲染交互架构从上而下依次为通信层、渲染层和资源管理层。实现移动终端用户实时访问远程3D场景的渲染交互方法的步骤包括三个,如下:

步骤1,在通信层建立移动终端与云渲染集群的通信通道。

在通信层,通过负载均衡服务器将用户的访问请求进行分流,发送到不同的服务器镜像区;每个服务器镜像区对应有一个任务调度服务器和一个渲染集群;服务器镜像区内的任务调度服务器将用户的操作请求,转换成渲染机可识别的操作指令,分配给服务器镜像区所属的渲染集群中的渲染机进行处理。

负载均衡服务器缓存用户的访问请求、访问路径和操作。任务调度服务器负责跟渲染机通信,将用户的操起请求分配给低负荷的渲染机,以便该用户下次访问的时候能在上次的基础上进行访问。

步骤2,渲染层中的渲染机,向资源管理层请求资源文件,构造虚拟场景,根据操作指令调整虚拟场景中的摄像头进行渲染,将渲染结果以图片的形式传送回文件服务器保存,并传输给移动终端用户。

用户访问时,将加载用户虚拟场景配置信息,根据用户虚拟场景配置信息从异构场景素材资源管理层中获取所需要的场景素材。

渲染层中的渲染机构造虚拟场景的方法具体是:由云服务器运行U3D.EXE可执行程序,每个U3D.EXE通过外部用户指令启动1个线程,生成1个独立的用户虚拟场景单元;用户虚拟场景单元通过Socket套接字与任务调度服务器进行通信,有用户请求访问时任务调度服务器通过Socket启动一个U3D.EXE程序并传递用户指令。

步骤3,资源管理层管理渲染所需的各种资源文件,向渲染机提供异构资源调度管理服务,通过异步资源下载、异步资源解包和委托方法确保资源调度和处理的性能。

本发明的优点与积极效果在于:

(1)本发明将移动终端用户的操作自动转换为操作指令,并由云渲染集群实际完成执行过程并将渲染结果以高质量图片的方式传输给移动终端用户。对于用户来说,体验到的是近似于本地场景的交互操作,通过本发明方法提供给用户易上手的远程沉浸式的交互方式,其体验效果也达到了与PC端用户效果近似的水平。

(2)本发明避免了三维场景生成是时所采用的引擎差异、移动端浏览器的差异,同时也解决了实时场景交互受限于移动终端硬件配置及其计算能力、移动网络速度的限制和移动终端处理速度等问题的限制,通过以云服务和连续间隔图片的方式,使移动终端用户和PC端用户有近似的3D场景沉浸式互效果,取得了良好的用户体验。

(3)本发明还提出以异步下载异步加载定期回写的实时云渲染方案和实时数据传输的平衡策略,以支持移动终端对远程3D场景的高并发访问。

附图说明

图1为本发明的渲染交互方法的应用示意图;

图2为本发明移动终端用户实时访问远程3D场景的渲染交互框架的层次结构图;

图3为本发明方法中实现用户虚拟场景的单元模块示意图。

具体实施方式

下面将结合附图和实施例对本发明作进一步的详细说明。

本发明方法采用基于云概念的移动终端实时远程交互3D场景的渲染架构,来使移动终端用户体验到近似PC端的3D场景交互。方法的核心思想是:

1)将渲染工作转移到具有大规模渲染计算能力的云渲染集群避开移动设备的性能缺陷;

2)移动设备通过指令的方式与云渲染集群进行沟通,并通过接收渲染图片来展示3D场景,这种采用离散的渲染图片逼近3D场景浏览的方式选取了通信代价和用户体验的平衡点,在尽可能实现近似于PC端3D场景交互的用户体验的同时避开网络传输速度的限制;

3)用图片的方式来展示3D场景有助于摆脱第三方插件的依赖,因为移动设备本身自带的浏览器即可完成此工作;

4)通过异构场景素材资源管理器提供对渲染场景所需的资源,屏蔽了用户直接接触这些复杂且较大的资源文件。

通过以上几个关键设计思想实现的渲染架构,实现了移动终端设备上通过浏览器作为访问平台,跟PC端近似的对远程3D虚拟场景的交互访问体验。总体实现了移动终端设备用户实时交互访问远程3D场景的一种方法。

如图1所示,本发明方法在用户访问系统的入口处通过负载均衡服务器对用户的访问请求任务进行分流,并将用户的需求以等效指令流的方式发送给云服务端,云服务端接到用户的指令流后,在云端完成用户全部的交互操作,并将交互过程进行高质量的实时渲染并以图片的形式发送给移动终端用户。本发明方法以用户只发送指令和相关的操作,由云服务端实际完成用户操作过程并将这个过程以实时连续帧的方式传送给移动终端用户。对于用户来说,体验到的只是最自然最真实的本地场景的交互操作,实际是对云端计算完结果的渲染图片的虚拟化操作,本发明提供的渲染交互框架屏蔽了这个过程,最终提供给用户逼真的、远程沉浸式的交互方式。

如图2所示,渲染交互框架包括三层,自上而下依次为通信层、渲染层和资源管理层。

下面结合图1和图2来说明本发明的基于云的移动终端用户实时访问远程3D场景的渲染交互方法。

步骤1,在通信层建立移动终端与云渲染集群的通信通道。

通信层内设置有负载均衡服务器,通过负载均衡服务器对移动终端用户的访问请求进行分流,将用户的访问请求、访问路径和操作进行缓存,将用户的访问请求分流发送给不同的服务器镜像区,也就是图1所示的渲染任务调度层,由其内的任务调度服务器读取渲染服务器信息管理程序,将用户的访问请求传输给渲染服务器。渲染服务器也就是渲染机。如图1所示,在进行渲染前,需要根据用户的访问请求进行渲染有效性检查。

考虑到当前移动终端的硬件配置、存储限制和当前前沿技术不能解决移动终端漫游、交互访问远程3D场景的技术瓶颈限制,本发明将场景的渲染处理过程转移到云渲染集群进行处理,因此需要通过通信层建立移动终端与云渲染集群的通信通道。具体来说是将移动终端用户的访问请求进行负载均衡,将这些请求分配到不同的服务器镜像区域以保证云端服务器的压力均衡。另一方面每个镜像区域内部都维持着一个独立的云渲染服务器集群,即图2中所示的云渲染集群,该集群由镜像区域内唯一存在的任务调度服务器统一管理,当收到用户的操作请求后,任务调度服务器会将其转化为渲染机可识别的操作指令,再根据渲染集群中各渲染机的占用率和之前的用户访问缓存决定目标渲染机。在通过负载均衡服务器和任务调度服务器的分配以后,渲染层即可对用户虚拟场景进行渲染,由渲染层上的渲染服务器完成用户的交互,并将交互过程以渲染的高质量图片的方式存入数据库缓存池,并进行渲染的有效性检测,最终发送给移动终端最终呈现给用户。

步骤2,渲染层中的渲染服务器,向资源管理层请求资源文件,构造虚拟场景,根据操作指令调整虚拟场景中的摄像头进行渲染。

渲染层包含了许多台渲染服务器,它们根据服务器镜像区域数量被均匀划分归属,由所属服务器镜像区域的任务调度服务器统一管理。渲染层的主要功能是动态地管理用户的虚拟场景并解析运行用户的操作指令,这些指令包含了交互操作、渲染场景等功能。每一台渲染机都会运行一定数量的渲染进程,每一个进程都包含了一个场景,该场景被这个渲染进程上的虚拟场景共享,也就是说场景被划分成多个场景单元,每个场景单元对应着一个用户的虚拟场景。用户访问时,将加载用户虚拟场景配置信息,根据用户虚拟场景配置信息从异构场景素材资源管理层中获取所需要的场景素材。通过这样的方式就把大规模的计算集中到了高性能的云渲染集群来完成,在移动终端只发送指令和接收图片,这种充分利用云渲染集群高计算能力的方法减小了移动终端计算负荷和对软硬件兼容性的依赖,有效的提高了移动终端用户与远程3D场景交互的用户体验。

本发明采用云渲染服务器来完成移动终端用户的访问请求,由云服务器运行U3D.EXE可执行程序,每个U3D.EXE可通过外部用户操作指令启动1个线程,生成1个独立的用户虚拟场景单元,同时在用户虚拟场景单元内生成一个摄像头、指令收发器以及其他的各功能模块。用户虚拟场景单元通过Socket套接字与任务调度服务器进行通信,当有用户需要访问时任务调度服务器便通过Socket启动一个U3D.EXE程序并传递用户操作指令,并开始工作。

用户虚拟场景单元中各功能模块如图3所示,包括数据库交互模块、镜头捕捉模块、Debug(调试)模块、动态加载场景模块、服务器信息管理模块、程序配置库、基础类库/外部DLL库(动态链接库)、AssetsBundle加载/同步/管理模块以及U3D指令收发服务器。

镜头捕捉模块就是生成的摄像头,这个虚拟场景内部的摄像头在功能上等效于当前用户自己的眼睛,用户可通过自己生成的摄像头观看到自己在虚拟场景内的一切交互操作;U3D指令收发服务器在接收到用户的指令后触发其它模块完成交互操作,如:进行各方向上的漫游、旋转等操作,并把这个交互操作过程以连续间隔的渲染帧的形式发给移动终端用户,这样就把大规模的计算集中到了高性能分布式的云服务端来完成,在移动终端只发送指令和接受图片,这种最大程度利用服务器的高计算性能并最大程度地减小移动终端的计算负荷的方式,极大地提高了移动终端用户与远程3D场景的交互效率。

进一步的,本发明由基于Socket套接字通信连接、松耦合的3层架构实现。最顶层是通信层,这一层主要是由负载均衡服务器对用户的访问进行分流,保存用户路径,保存用户交互文件数据,启动一个线程将用户的访问请求发送给分布式任务调度模块,由分布式任务调度模块读取渲染机性能监测程序,将用户的访问请求分配给负荷较小的渲染集群。图3所示的模型中,分布式任务调度模块对应各任务调度服务器,U3D渲染服务器即云渲染机。对不同的用户,由渲染层提供不同的交互策略,在接到移动终端用户对场景的访问请求后,渲染层将用户的访问请求再分配给负荷较小的U3D渲染服务器,在较空闲的渲染预设区启动一个U3D.EXE并生成一个用户基本场景,以及摄像头,渲染机等模块,由U3D指令收发服务器接收用户的交互操作指令并调用其他模块完成用户指令包含的全部操作,并将这个操作过程以连续渲染帧图片的方式发送给终端用户。

本发明首次最大限度地对云服务器和移动终端的处理任务进行了合理分配,将繁琐复杂的高运算部分交给具有强大运算能力的云服务器,移动终端以只发送指令集和接受图片的方式实现了对远程3D场景的实时交互访问;并且,本发明方法对用户虚拟场景的设计由U3D指令收发服务器调用其他模块实现,对内部资源采用占用资源较小的动态调度,实时加载的方式,如对3维模型、贴图、纹理、灯光等资源的基本加载、交互过程中动态实时加载等。

步骤3,最底层是资源管理层,包括文件服务器和异构场景素材资源管理器等,管理场景的数据资源,渲染机可以从本层更新资源文件,并将用户的交互结果写回配置文件。资源管理层管理渲染所需的各种资源文件,向渲染机提供异构资源调度管理服务,通过异步资源下载、异步资源解包和委托方法确保资源调度和处理的性能。

由于渲染层使用的场景素材是通用的,因此将场景素材进行统一管理对于整个系统来说意义很重要。场景素材的独立方便了系统之后的变更,减轻了渲染层的存储压力,渲染层通过异构场景素材资源管理器提供的接口便可以获取素材。另外,异构场景素材资源管理层采用了松耦合、中间件的设计理念,确保了该系统底层数据操作过程的稳定性、可拓展性。具体来说,异构场景素材资源管理层由文件服务器和异构场景素材资源管理器组成,文件服务器提供了相关场景素材的存储,资源管理器用于屏蔽文件服务器中的资源存储和素材类别,渲染层通过访问资源管理器的接口就能够获取所需的资源。并且,考虑到数据交互过程可能带来的系统性能下降,该层设计采用了异步下载、异步解压和委托回调的设计机制,保证了渲染层的资源请求过程与渲染层的主循环并行运行。

本发明中,用户通过指令启动自己场景单元只是根据基本的场景配置文件信息创建一个基本的场景,这个配置文件是记录了场景中基本物品的位置、旋转角度和朝向信息的文件。同时在这个基本的虚拟场景内部会生成一个指令收发器,用户在移动终端设备的外部虚拟的操作等效地传递到用户虚拟场景单元内部的指令收发器,由指令收发器触发相关模块进行场景内的进一步操作,如:调用资源服务器进行加载模型资源,调用文件路径数据库加载纹理、贴图、声音、动画等资源。

本发明方法还采用了如下的调度策略来提高效率:

(1)有效渲染帧的复用。在摄像头属性没有发生变化,场景没有修改的时候,即时将数据库中经过有效性检测和加入标志位的云端渲染结果发送给移动终端用户,实现了结果的高效复用。

(2)根据云服务端的使用频率,将场景中的大规模渲染放在服务器使用率低的时候进行集中渲染,减少使用高峰期用户的等待时间,提高用户的真实体验。

(3)云端渲染服务器与资源管理层之间采用异步下载、异步加载和定期回写的方式进行资源下载。本发明采用AssetBundle将场景中模型GameObject对应的预设体Prefeb进行打包,这样在用户下载到的资源中带有资源的一切属性,包括移动、旋转等,同时利用AssetBundle将界面、模型、材质、声音、音效等内容分开打包的方式解决了一次更新所需要下载资源的问题,以提高渲染效率,减少从资源服务器请求资源的次数,在渲染服务器本地采用AssetBundle完成资源的加载。移动终端用户是在云服务端完成交互的,为了减少渲染服务器与文件服务器产生的通信延迟,本发明专利采用Thread和WWW来实现异步资源下载的方式,当渲染服务器检测到文件服务器资源有更新时进行更新下载操作,以便渲染服务器在需要资源时就能从渲染服务器本地申请到资源,在渲染服务器本地采用按需加载的异步加载方式,并定期将结果写回到配置文件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1