一种三维场景模型渲染方法

文档序号:36001649发布日期:2023-11-16 14:34阅读:26来源:国知局
一种三维场景模型渲染方法

本发明属于渲染,具体地涉及一种三维场景模型渲染方法。


背景技术:

1、随着倾斜摄影测量、地理信息系统、虚拟现实等技术的发展,基于三维场景的应用已经在元宇宙、数字孪生、智慧城市、工业管理、游戏、旅游等领域发挥重大作用。为了提高此类应用的便捷性和使用体验,各领域更倾向于使其实现轻量化和跨平台的功能,web应用就是一个很好的载体。同时,在三维可视化技术中,web图形库(web graphics library,webgl)技术的发展使得浏览器端对三维模型渲染具有越发成熟的功能和优秀的效果。但随着三维场景的规模不断扩大,场景模型的精度和复杂度不断提升,web应用在渲染大规模三维场景时,受限于多种计算机硬件设备,如内存、cpu、gpu等,三维场景的渲染大多不够流畅,出现卡顿和掉帧的现象。这严重影响需要大型三维模型数据加载的应用的使用体验和工作效率。在三维可视化中涉及两个重要过程,模型数据的解析与调度及模型渲染。

2、其中,模型数据的解析与调度是指应用对三维模型内在的组件内容数据进行解析,获取其相关信息,如瓦片类型、瓦片位置及瓦片层级等,同时,根据相机视角和缩放程度因素对组件进行相应的调度,筛选出用于显示的恰当组件。模型渲染是对根据筛选后的组件数据,通过一系列图形渲染算法,使其从计算机文件转为可视化的三维模型,从而实现后续人机交互操作。因此为缓解三维场景渲染卡断及掉帧问题,改善用户对大型三维模型使用的体验与工作效率,需要从上述两个方面提出相应的解决方法。

3、三维瓦片(3d tiles)是目前主流的地理信息web端可视化和分析三维数据的规范,也是针对三维地理空间数据,如摄影测量、三维建筑、bim/cad、实例化要素、点云等,进行流处理和渲染而开发的三维模型数据格式。

4、目前模型瓦片的渲染与调度常采用多层次细节技术(levels of detail,lod)构建瓦片金字塔,以减轻同一场景cpu的计算压力。该技术可以根据相机距离、物体运动速度和距离视域中心的位置等因素,对加载的模型组件进行合理的算力资源分配。例如,在同一幅画面中,让距离更近、运动速度更慢、更靠近人眼视域中心的物体展示出更多的细节,即加载的lod层级越高,反之,加载的lod层级越低。通常来说,lod层级数目越大,能展示的细节越多。

5、一些图形库基于lod在数据调度和渲染方法进行了尝试,如cesium 3d在渲染三维场景时,cesium着色器能够忽略位于相机视野外的三维瓦片,仅需要渲染相机视野内的三维瓦片,可以提高三维瓦片的渲染效率。但cesium默认的调度策略在渲染大规模三维场景时存在两个严重问题:

6、1.cesium默认的调度策略通常会发送大量的请求去计算屏幕空间误差(screenspace error,sse),然后不停的对比sse是否达到了设定的sse阈值,以此来判断判断当前lod级别的瓦片是否应该被渲染,即判断瓦片的渲染优选级。但过多的请求次数意味着过多的比较次数,导致渲染效率较低。

7、2.cesium默认的调度策略在三维场景漫游时由于场景空间变化需要重新计算与绘制,通常会出现画面卡顿和掉帧的问题,甚至无法流畅的漫游三维场景。并且随着人机交互的需求增加,在可视化的视角和范围切换渲染三维模型时,复杂的图形计算和绘制使得硬件设备达到处理极限,流畅度降低,影响可视化使用体验。


技术实现思路

1、为了解决现有方法三维场景渲染效率低下的问题,本发明提供一种三维场景模型渲染方法,其可提高渲染效率。

2、本发明的目的通过以下技术方案来实现:

3、本发明提供一种三维场景模型渲染方法,包括以下步骤:

4、获取三维场景的3d tiles格式的模型文件及瓦片集的元数据;

5、响应于接收到模型渲染请求,渲染线程向调度线程发送解析请求;

6、调度线程响应绘制线程的解析请求,解析瓦片集的元数据并将瓦片集的属性信息返回给渲染线程,所述绘制线程为渲染线程的一个分支线程;

7、渲染线程根据所述属性信息和视景体对场景进行裁剪,保留完全或者部分位于视景体内的几何体,所述几何体由至少一个瓦片构成;

8、调度线程响应绘制线程需要瓦片的请求,获取当前瓦片的空间屏幕误差,比较当前瓦片的空间屏幕误差与空间屏幕误差阈值以判断当前lod级别的瓦片是否需要被渲染;

9、响应于当前瓦片的空间屏幕误差小于等于空间屏幕误差阈值,将lod模型数据加载至缓冲区;

10、渲染线程对缓冲区内的lod模型依次进行渲染。

11、本发明与现有技术相比,至少具有以下优点和有益效果:

12、1、本发明采用双线程渲染三维场景,根据视点位置动态获取瓦片模型渲染层级,实现优先显示高精度模型,剔除非必要模型,远处显示低精度模型,实现高效的三维可视化渲染功能。

13、2、采用本发明的方法,随着相机视距的减少,跃级渲染策略跳过当父节点的lod直接渲染子节点的lod,减少了比较sse和sse阈值的次数,同时又由于动态屏幕空间误差生成的新sse阈值总是小于原有的sse阈值,更容易触发跃级渲染策略,提高了三维可视化渲染效率。



技术特征:

1.一种三维场景模型渲染方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种三维场景模型渲染方法,其特征在于,所述属性信息包括边界体;

3.根据权利要求2所述的一种三维场景模型渲染方法,其特征在于,所述渲染线程根据所述属性信息和视景体对场景进行裁剪包括:

4.根据权利要求1所述的一种三维场景模型渲染方法,其特征在于,所述获取三维场景的3d tiles格式的模型文件及瓦片集的元数据,之前还包括:

5.根据权利要求4所述的一种三维场景模型渲染方法,其特征在于,所述对模型文件及瓦片集的元数据进行优化包括:

6.根据权利要求5所述的一种三维场景模型渲染方法,其特征在于,所述对所述三角网进行节点划分生成八叉树索引,包括:

7.根据权利要求5所述的一种三维场景模型渲染方法,其特征在于,所述根据所述lod模型的特征和属性对所述lod模型进行分组,包括:

8.根据权利要求5所述的一种三维场景模型渲染方法,其特征在于:所述对每一组lod模型进行同等级的节点对齐操作,包括:

9.根据权利要求5所述的一种三维场景模型渲染方法,其特征在于:所述根据所述主要模型和次要模型之间的深度差进行模型合并,包括:

10.根据权利要求9所述的一种三维场景模型渲染方法,其特征在于:所述融合规则为同时满足条件1和条件2,


技术总结
本发明公开了一种三维场景模型渲染方法,其同时采用调度线程和渲染线程双线程渲染三维场景,根据视点位置动态获取瓦片模型渲染层级,实现优先显示高精度模型,剔除非必要模型,远处显示低精度模型,实现高效的三维可视化渲染功能。

技术研发人员:赵飞,高祖瑜,赵志芳,沈克强,栾桂泽,徐世光,李兆正,王鑫瑞,张一扬,晁江琴,朱思瑾
受保护的技术使用者:云南大学
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1