发明名称 虚拟现实下的海量模型数据动态调度与实时异步加载方法
摘要 本发明公开一种虚拟现实下的海量模型数据动态调度与实时异步加载方法,包括如下步骤:(一)3D模型场景数据的预处理;(二)对模型场景整体的切割分块;(三)多线程并行分布加载;(四)视锥体裁剪。本方法基于视锥体和地形区域求交点的视锥体裁剪算法,实现了动态调度中基于地形区域的实时裁剪,采用模型数据分块调度和渲染管线的多线程处理机制,使不同介质之间的动态调度与绘制管线和数据处理调度管线能异步加载,从而实现了在有限内存,处理器等硬件环境下对海量场景模型数据加载和表现效率的动态平衡。
申请公布号 CN103914868B 申请公布日期 2017.02.22
申请号 CN201310708102.4 申请日期 2013.12.20
申请人 柳州腾龙煤电科技股份有限公司 发明人 陈金龙;伍轶斌;胡俊鑫;覃祖茂;谢燕武;伍正中;张利学;李勇;吴旻馨;马永丽
分类号 G06T17/00(2006.01)I 主分类号 G06T17/00(2006.01)I
代理机构 广西南宁汇博专利代理有限公司 45114 代理人 邓晓安
主权项 一种虚拟现实下的海量模型数据动态调度与实时异步加载方法,其特征在于,包括如下步骤:(一)3D模型场景数据的预处理;(二)对模型场景整体的切割分块;(三)多线程并行分布加载;(四)视锥体裁剪;所述预处理,其步骤为:1)优化VR场景模型的几何面数VR场景模型的优化是要对每个独立的模型面数进行精简,还需要对模型的个数进行精简;2)优化VR场景独立模型对象的数量将相同材质的物共用好材质;调整好各自的贴图坐标;然后再将这些相同材质的物体进行合并以减少模型个数;3)优化VR场景模型的贴图量和贴图细节;将单独的模型对象纹理全部烘焙在一张纹理上,重新定位纹理坐标,贴图格式转换为dds格式,能够直接通过显卡计算,加快载入速度;所述对模型场景整体的切割分块,1)对海量模型数据进行分块;海量模型数据对应较大空间范围广度的模型场景内容,根据VR系统的漫游器操作设定对三维空间视锥体进行分析,计算出平面内可见场景空间的范围值,依照此范围值确定对应分块空间的极限值,然后将场景空间的笛卡尔坐标系的高位坐标截取作为块号,低位坐标极限值为视锥体可见范围极限值;2)对分块排序并建立索引表;依照高位坐标值生成的块号的空间关系,将整个场景分块生成的分块号序列进行排序,并保存在外部文件中,每条块号记录文件包括:块号ID,块号名,块号坐标,块号备注;3)将分块数据打包;将原始场景的模型数据分块切割后,对每个分块后的模型数据块添加块号ID,此块号ID对应分块索引表中块号记录文件中的块号ID,通过此ID进行关联,实现遍历索引表找到对应ID的分块数据包功能,然后将分块数据包压缩打包成二进制流文件;所述多线程并行分布加载,其步骤为:其步骤为:1)使用预加载线程载入场景分块索引表;在VR系统初始化阶段,启动线程载入场景分块索引表,当海量模型数据时,索引表体积偏大,使用线程加载能保证在VR系统初始化中其他操作不受影响;2)使用异步加载线程动态的加载场景分块;在场景漫游器初始化完成后,操作漫游器视锥体进行场景漫游时,开始计算当前视锥体与场景的交点区域,确定分块后,启动异步加载线程动态加载当前分块号对应的场景分块模型数据包;3)使用渲染线程渲染模型场景纹理和模型顶点结构;加载完模型数据进内存后,启动渲染线程渲染场景纹理和模型顶点几何数据;所述视锥体裁剪,其步骤为:1)计算当前视锥体与场景相交区域;将地形检测的块状物体放到场景里面进行设置,每一个检测块都对应着一块分块号,位置与其对应的地形一致;当漫游器视锥体的自身Z轴方向与某个检测块发生碰撞之后,即获得视锥体所需显示的当前区域模型分块号;2)遍历模型分块索引表获得当前相交区域块号;获得当前视锥体范围对应块号后,遍历模型分块索引表,通过分块ID查找到对应场景模型分块包数据,然后从本地硬盘或网络异步加载分块包中数据到内存中,将模型分块索引表中获得的块号对象的高位坐标值同场景模型分块包中数据的低位坐标值进行拼接,得到最终的完整坐标,然后显示在场景中;3)动态调度块号对应的模型数据包,加载进当前场景;将该区域块号的分块数据包载入到内存中,异步克隆其主资源中各个子物体到其相应的位置;当整个场景中加载的区块数目超出一个事先设定的值时或系统的内存监控消耗达到临界值时,就会调用动态调度优化处理算法,计算距离漫游器视锥体中心区域最远的地块区域,获取地块的分块ID和对应的内存中分块数据进行释放,从而降低系统内存负载。
地址 545006 广西壮族自治区柳州市高新一路标准厂房D座六层