一种三维模型综合动态调度方法技术领域
本发明属于三维虚拟现实调度领域,尤其涉及一种三维模型综合动态调度方法。
背景技术
传统二维地图的投影方式决定了必须用抽象的符号进行表达,不能给人直观的感受,尤
其是在地面特征复杂的时候,二维地图很难准确反映。在信息时代的新趋势下,智能手机和
开源平台不断普及,虽然嵌入式设备与电脑的硬件条件有很大差距,但移动设备具有便携、
可移动的先天优势。随着大数据实时渲染和实时调度技术的发展,再加上移动设备硬件的不
断提升,在嵌入式设备上显示三维场景逐渐成为可能。但受到移动端硬件局限性和三维场景
复杂性的双重影响,真三维场景在移动端的流畅运行仍然存在很大的问题。
发明内容
针对上述现有技术的不足,本发明提供了一种三维模型综合动态调度方法,目的即解决
移动终端三维场景运行不流畅问题。
为解决上述技术问题,本发明提供了如下技术方案:
一种三维模型综合动态调度方法,其特征在于,包括如下步骤:
(1)三维模型几何特征精简;
(2)三维模型材质简化;
(3)三维模型的渲染优化;
(4)确定可视区,对三维模型进行初步消隐;
(5)利用三维场景中物体之间的遮挡进行消隐;
(6)LOD消隐;
(7)基于三维场景中物体的中心坐标对物体进行动态调度。
作为上述技术方案的优选,所述步骤(1)中三维模型几何特征精简包括减少三角面片、
减少UV贴图缝隙和翻转顶点、使用批处理。
作为上述技术方案的优选,所述步骤(2)中三维模型材质简化包括减少材质数量、压缩
贴图且减少贴图数量、减少实时阴影。
作为上述技术方案的优选,所述步骤(3)中三维模型的渲染优化包括简化着色器、减少
实时光照、优化渲染路径。
作为上述技术方案的优选,所述步骤(4)中通过摄像机视口的远剪裁面或近剪裁面来确
定可视区,只有位于摄像机视口、远剪裁面、近剪裁面所组成的空间内的物体才加载,从而
实现消隐视口之外物体,降低资源消耗。
作为上述技术方案的优选,所述步骤(5)是对步骤(4)的进一步优化,由摄像机发出
一定数量的射线,这些射线都存在于视锥体内,通过只渲染每条射线上最前端的点来降低GPU
的消耗。
作为上述技术方案的优选,所述步骤(6)是对步骤(4)和(5)的进一步优化,根据需
要将移动平台上的场景模型划分为几个等级,远处的物体只使用低级模型,这样可以大大降
低GPU的消耗。
作为上述技术方案的优选,所述步骤(7)将三维模型分为三类,将模型包在内存中的状
态分为四种,将形成的三维空间划分为六个不同区域,对视锥体进行了距离加权的扩展,实
现了三维模型的预调度,对处在不同区域的不同模型进行不同程度的加载,实现了三维场景
中物体的综合动态调度。
本发明的有益效果是:本发明可以实现三维模型更有效的实时渲染和消隐,突破了移动
设备硬件条件的束缚,从而为虚拟三维场景在移动终端上的流畅运行提供了技术基础,实现
移动端上真三维场景的流畅运行。
附图说明
图1为本发明的处理流程图。
图2为本发明视锥体示意图。
图3为本发明综合动态调度方法示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
以南京大学鼓楼校区三维数字校园为例,利用本发明实现南京大学鼓楼校区三维数字校
园的掌上流畅运行,工作过程描述如下:
(1)三维校园场景的构建。南京大学鼓楼校区占地面积约800亩,如果不采用本发明提
出的三维模型几何特征精简、纹理和贴图使用、渲染的基本策略,数据量共为2.3G,完整版
的鼓楼校区三维校园需要在性能较好的PC端才能流畅运行,直接移植到平板或者手机,会造
成系统崩溃。采用本发明提出的三维校园场景构建基本策略后数据量降低到了239.2M。
(2)移动三维校园场景的实时消隐。具体是结合视锥体消隐、遮挡消隐和LOD消隐来实
现场景的实时渲染,大大提高了程序的性能。下面对该方法进行描述:
如图1~2所示,首先,描述视锥体消隐。在三维场景中漫游,只能看到摄像机视口内的
物体,而其他的物体是不可见的,因此,通过摄像机视口的远剪裁面或近剪裁面来确定可视
区,只有位于摄像机视口、远剪裁面、近剪裁面所组成的空间内的物体才加载,从而实现消
隐视口之外物体,降低资源消耗。
可视区域确定的计算过程如下:
从摄像机到每一个视锥体截面都有一定的距离,每个锥体截面有一定的大小。有时根据
给定的距离,计算矩形的大小,或根据给定矩形的大小来计算距离。例如,如果一个物体想
要始终保持在移动的摄像机镜头内,那么它必须不能太靠近规定的远剪裁面或近剪裁面,否
则该对象的部分会被截断。
有了这些参数,就可以确定可视区域。将三维场景中的物体通过坐标计算和转换,得到
与视锥体的空间关系,结合直线裁剪算法原理,判断物体是否在视口内,并进行剪裁,从而
达到消隐视口外物体的目的。
其次,描述遮挡消隐。在三维场景中漫游,摄像机视口内的物体也不是都能看到的,由
摄像机发出一定数量的射线,这些射线都存在于视锥体内,射线触碰到的场景中的第一个点
需要显示,而这条射线上后面的点都会被这个点遮挡住,因此通过只渲染每条射线上最前端
的点来降低GPU的消耗。
遮挡消隐的运行将通过在场景中使用一个虚拟的摄像机来创建一个物体潜在可视状态的
层级。这些数据可以实时地让每个摄像机来确定什么能看见什么看不见。通过这些数据,将
确定可以看见的物体送去渲染,这将降低绘制调用的数量并增加运行效率。
由于计算屏幕上每一个点到摄像机中心的运算量非常大,为了达到类似的效果并节省资
源,采用场景分块技术来近似实现这一功能。使用单元格将整个场景划分,单元格来自于一
个二叉树,遮挡消隐使用两棵树,一个用于静态物体,另一个用于移动物体。可视单元格将
映射到一个定义静态可视物体的索引列表,包含了消隐后的静态物体。通常使用潜在可视集
合来存储和确定哪些单元格是可见的。
最后,描述LOD消隐。在三维场景中漫游,当远处的物体比较高,遮挡剔除会不起作用。
但远处物体的模型不需要太精细,因此,根据需要将移动平台上的场景模型划分为四个等级,
远处的物体只使用低级模型,则可以大大降低GPU的消耗,是把三维场景移植到移动设备上
的关键因素之一。
(3)基于中心坐标的动态调度技术。通过对场景的优化与实时消隐,程序的性能已经有
了大幅的提升,但是仍然有一个关键问题需要解决。由于场景中所有的物体都是在程序运行
前,也就是初始化阶段,统一加载到内存里,当场景内物体相对较少时,移动设备上勉强可
以运行。当需要运行三维大场景的时候,把所有模型都加载进内存,并且始终不释放,不仅
在启动程序时会变得非常缓慢,而且在硬件资源有限的情况下,经常会出现死机或者黑屏的
现象,这就需要一种动态调度技术来解决。移动设备资源越是有限,就越是需要强大的算法
来支撑,传统调度的方法多是以视点为缓冲区,计算需要调度的物体,或者将场景划分,然
后用各个分块间的邻近关系来调度可能出现的物体。本发明提出了一种更加精确的调度技术
和算法,通过模型体的中心坐标进行动态调动,在实时消隐的基础上实现了内存的优化,最
终突破了大数据三维场景在移动端运行的瓶颈。
如图3所示,基于中心坐标的动态调度技术的实现过程如下:
第一,将模型包在内存中的状态分为四种:未加载、加载为内存镜像(I阶)、释放资源
(II阶)、实例化(III阶)。未加载指模型包没有被调度;加载为内存镜像指模型包被载入
内存但没有释放资源;释放资源指模型包被打开但场景中不会出现物体;实例化指将模型加
载到场景中模型可见。
第二,将模型分为三类:高级模型、低级模型和通用模型。高级模型指精细度较高的模
型,主要用于满足近景观看;低级模型指精细度很低的模型,主要是满足远景端物体的显示;
通用模型介于低级模型和高级模型之间,这种模型可以单独存在,既可当做高级模型使用,
又可当做低级模型使用,主要用于解决模型实例化过程中的不连续。同时,各种模型又可以
作为LOD中的不同的模型级别,如高级模型对应LOD-A,通用模型对应LOD-B,低级模型对应
LOD-C。
第三,将三维空间划分为六个不同区域:视锥内高级区(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阶卸载区,
任何模型落入这个区域,程序都会销毁该模型包的内存镜像。
第四,距离加权的视锥体预调度,用距离加权的方法(公式1,公式2)进行缓冲区的分
配,A、B、C、D为调节参数,z为物体在三维空间水平面的纵坐标,F为摄像机的远剪裁面,
Xr为右视边界,Xl为左视边界,Yt为上视边界,Yb为下视边界,可以根据需要调节成各种缓冲
预调度区域。
公式1:
公式2:
第五,三阶多级模型调度,在模型转换中采用一种新的触发方法,高级模型(A级)分
为许多子物体分别调度,低级模型(B、C级)作为一个整体进行调度。当物体由V-I区移入
V-II区域的过程中,判断高级模型上是否有子物体越过界限,如果有则立刻加载低级模型,
当高级模型上的子物体全部进入V-II区域时才把高级模型消隐;反之,当物体由V-II区移
入V-I区域的过程中,立刻加载高级模型的子物体,当高级模型上的子物体全部进入V-I区
域后才把低级模型消隐。模型在分区之间的转换都以转换后的区域特征为依据进行调度。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本
发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利
用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的
等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施
例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。