本发明属于三维虚拟现实调度领域,尤其涉及一种基于中心坐标距离加权的动态调度方法。
背景技术:
传统二维地图的投影方式决定了必须用抽象的符号进行表达,不能给人直观的感受,尤其是在地面特征复杂的时候,二维地图很难准确反映。在信息时代的新趋势下,智能手机和开源平台不断普及,虽然嵌入式设备与电脑的硬件条件有很大差距,但移动设备具有便携、可移动的先天优势。随着大数据实时渲染和实时调度技术的发展,再加上移动设备硬件的不断提升,在嵌入式设备上显示三维场景逐渐成为可能。但受到移动端硬件局限性和三维场景复杂性的双重影响,真三维场景在移动端的流畅运行仍然存在很大的问题。
技术实现要素:
针对上述现有技术的不足,本发明提供了一种基于中心坐标距离加权的动态调度方法,目的即解决移动终端三维场景运行不流畅问题。
为解决上述技术问题,本发明提供了如下技术方案:
一种基于中心坐标距离加权的动态调度方法,其特征在于,包括如下步骤:
(1)将模型包在内存中的状态分为四种:未加载、加载为内存镜像、释放资源、实例化;
(2)将模型分为三类:高级模型、低级模型和通用模型;
(3)将三维空间划分为六个不同区域:视锥内高级区V-I、视锥内中级区V-II、视锥内低级区V-III、视锥外高级区N-I、视锥外中级区N-II、视锥外低级区N-III;
(4)距离加权的视锥体预调度,用距离加权的方法进行缓冲区的分配,可以根据需要调节成各种缓冲预调度区域;
(5)三阶多级模型调度,高级模型分为若干子物体进行分别调度,低级模型作为一个整体进行调度,模型在步骤(3)中划分为六个不同区域之间的转换,并都以转换后的区域特征为依据进行调度。
作为上述技术方案的优选,所述步骤(1)中未加载指模型包没有被调度;加载为内存镜像指模型包被载入内存但没有释放资源;释放资源指释放模型的内存镜像;实例化指将模型 加载到场景中模型可见。
作为上述技术方案的优选,所述步骤(2)中高级模型指高精细度的模型,主要用于满足近景观看;低级模型指低精细度模型,主要是满足远景端物体的显示;通用模型介于低级模型和高级模型之间,一般用于中等距离物体的显示,也可当作高级模型使用或低级模型的替代,主要用于解决模型实例化过程中的不连续的问题。
作为上述技术方案的优选,所述步骤(3)中视锥内高级区V-I区域为高级模型可视区和模型III阶加载区;视锥内中级区V-II区域为低级模型可视区和高级模型II阶加载区;视锥内低级区V-III区域为剪裁区,但作为高级模型I阶加载区和低级模型II阶加载区;视锥外高级区N-I区域为III阶卸载区,任何模型落入这个区域,程序都将销毁模型的实例;视锥外中级区N-II区域为II阶卸载区,任何模型落入这个区域,程序都会将模型的资源镜像销毁;视锥外低级区N-III为I阶卸载区,任何模型落入这个区域,程序都会销毁该模型包的内存镜像。
作为上述技术方案的优选,所述步骤(4)中用距离加权方法的公式为:
公式1:
公式2:
A、B、C、D为调节参数,Z为物体在三维空间水平面的纵坐标,F为摄像机的远剪裁面,Xr为右视边界,Xι为左视边界,Yt为上视边界,Yb为下视边界。
作为上述技术方案的优选,所述步骤(5)中当物体由视锥内高级区V-I区移入视锥内中级区V-II区域的过程中,判断高级模型上是否有子物体越过界限,如果有则立刻加载低级模型,当高级模型上的子物体全部进入视锥内中级区V-II区域时才把高级模型消隐;反之,当物体由视锥内中级区V-II区移入视锥内高级区V-I区域的过程中,立刻加载高级模型的子物体,当高级模型上的子物体全部进入视锥内高级区V-I区域后才把低级模型消隐。
本发明的有益效果是:本发明在实时消隐的基础上实现了内存的优化,最终突破了大数据三维场景在移动端运行的瓶颈。可以实现三维模型更有效的实时渲染和消隐,突破了移动设备硬件条件的束缚,从而为虚拟三维场景在移动终端上的流畅运行提供了技术基础,实现移动端上真三维的流畅运行。
附图说明
图1为本发明基于中心坐标的动态调度方法示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
一种基于中心坐标距离加权的动态调度方法,包括如下步骤:
(1)将模型包在内存中的状态分为四种:未加载、加载为内存镜像、释放资源、实例化;未加载指模型包没有被调度;加载为内存镜像指模型包被载入内存但没有释放资源;释放资源指释放模型的内存镜像;实例化指将模型加载到场景中模型可见。
(2)将模型分为三类:高级模型、低级模型和通用模型;高级模型指高精细度的模型,主要用于满足近景观看;低级模型指低精细度模型,主要是满足远景端物体的显示;通用模型介于低级模型和高级模型之间,一般用于中等距离物体的显示,也可当作高级模型使用或低级模型的替代,主要用于解决模型实例化过程中的不连续的问题。
(3)将三维空间划分为六个不同区域:视锥内高级区V-I、视锥内中级区V-II、视锥内低级区V-III、视锥外高级区N-I、视锥外中级区N-II、视锥外低级区N-III;视锥内高级区V-I区域为高级模型可视区和模型III阶加载区;视锥内中级区V-II区域为低级模型可视区和高级模型II阶加载区;视锥内低级区V-III区域为剪裁区,但作为高级模型I阶加载区和低级模型II阶加载区;视锥外高级区N-I区域为III阶卸载区,任何模型落入这个区域,程序都将销毁模型的实例;视锥外中级区N-II区域为II阶卸载区,任何模型落入这个区域,程序都会将模型的资源镜像销毁;视锥外低级区N-III为I阶卸载区,任何模型落入这个区域,程序都会销毁该模型包的内存镜像。
(4)距离加权的视锥体预调度,用距离加权的方法进行缓冲区的分配,可以根据需要调节成各种缓冲预调度区域;用距离加权方法的公式为:
公式1:
公式2:
A、B、C、D为调节参数,Z为物体在三维空间水平面的纵坐标,F为摄像机的远剪裁面,Xr为右视边界,Xι为左视边界,Yt为上视边界,Yb为下视边界。
(5)三阶多级模型调度,高级模型分为若干子物体进行分别调度,低级模型作为一个整体进行调度,模型在步骤(3)中划分为六个不同区域之间的转换,并都以转换后的区域特征为依据进行调度。当物体由视锥内高级区V-I区移入视锥内中级区V-II区域的过程中,判断 高级模型上是否有子物体越过界限,如果有则立刻加载低级模型,当高级模型上的子物体全部进入视锥内中级区V-II区域时才把高级模型消隐;反之,当物体由视锥内中级区V-II区移入视锥内高级区V-I区域的过程中,立刻加载高级模型的子物体,当高级模型上的子物体全部进入视锥内高级区V-I区域后才把低级模型消隐。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。