一种基于视距分层优化的Web3D模型渲染方法技术

技术编号:23213729 阅读:48 留言:0更新日期:2020-01-31 22:12
本发明专利技术公开了一种基于视距分层优化的Web3D模型渲染方法,包括:预处理阶段:(1)为三维模型生成一系列的空间单元,保证三维模型的每一块边缘都包围在空间单元中;(2)从不同的视点对每一个空间单元进行可见度计算,记录每个空间单元在不同视点时的可见度,剔除不可见的空间单元;(3)为未被剔除的每个空间单元分配随机数,并按该数为键值进行排序和存储;运行阶段:(4)随着视点的改变,动态地计算每个空间单元的细节层次因素;(5)根据细节层次因素动态地确定当前细节层次模型所必要的空间单元,并将必要的空间单元构成三角形序列,最终发送到渲染管线进行渲染。

A rendering method of Web3D model based on horizon layered optimization

【技术实现步骤摘要】
一种基于视距分层优化的Web3D模型渲染方法
本专利技术涉及可视化
,具体涉及一种基于视距分层优化的Web3D模型渲染方法。
技术介绍
由于三维(3D)图形比二维图形能够更加真实和直观地表征世界,更容易被人类所认知和接受,所以三维图形的应用越来越广泛。但是,呈现三维图形需要计算机具备较强的渲染能力,尤其是在Web端,由于以往只能调用CPU的资源进行渲染,这对于大型的三维图形极具挑战性。随着计算机硬件、计算机图形学等相关技术的快速发展和WebGL的出现,目前浏览器已经能够直接调用GPU资源进行渲染,使复杂的三维模型在浏览器端的快速渲染成为了可能。但是,随着三维模型体量的迅速增加,浏览器的渲染帧率会随之降低,而过低的帧率会使产品的交互实时性减弱,甚至会给用户带来糟糕的体验。所以,为了提高浏览器端对于大体量模型的渲染速度和质量,必须对大体量模型渲染进行优化,在保证模型精度的前提下提高渲染效率。针对传统的大体量三维模型进行的渲染优化,主要有层次细节模型和场景管理优化等方式。其中层次细节模型通常需要根据渲染模型与相机的不同距离,使用不同层次(从模糊到清晰)的模型进行显示,因此往往包含多个不同的模型。例如,在一些地图产品中经常使用的瓦片结构和细节层次的概念就很接近,即根据地图的缩放情况,使用不同精密程度的贴图给用户展示。而场景管理优化包括场景分割和可见性剔除等。开发者们经常使用的场景分割方式是BVH(包围体层次结构)、BSPtree(二叉空间分割树)、Quadtree(四叉树)、Octree(八叉树)以及k-d树;可见性剔除是基于大模型场景中必然存在的不可见几何体与三角形的假设,从渲染流程中剔除掉这些可见性较低的部分,以减少模型复杂度,从而降低模型渲染消耗。
技术实现思路
针对本领域存在的不足之处,以及浏览器渲染大体量模型帧率低的技术问题,本专利技术提供了一种基于视距分层优化的Web3D模型渲染方法,可应用于有3D可视化需求的领域,如智能楼宇、数据中心、健康医疗等领域。一种基于视距分层优化的Web3D模型渲染方法,包括:预处理阶段:(1)为三维模型生成一系列的空间单元,保证三维模型的每一块边缘都包围在空间单元中;(2)从不同的视点对每一个空间单元进行可见度计算,记录每个空间单元在不同视点时的可见度,剔除不可见的空间单元;(3)为未被剔除的每个空间单元分配随机数,并按该数为键值进行排序和存储;运行阶段:(4)随着视点的改变,动态地计算每个空间单元的细节层次因素;(5)根据细节层次因素动态地确定当前细节层次模型所必要的空间单元,并将必要的空间单元构成三角形序列,最终发送到渲染管线进行渲染。作为优选,步骤(1)的具体步骤为:(1-1)生成整个三维模型的包围体,即得到一个空间单元;(1-2)将一个空间单元划分成两个子空间单元,并作为这两个子空间单元节点的父节点;(1-3)按照步骤(1-2)所述划分方法进行n次空间划分,最终由所有节点构造出递归包含的方向包围盒树,所构造的方向包围盒树的深度为n、叶子数为2n,即最终将三维模型划分成了2n个子空间单元。使用方向包围盒树来辅助生成空间单元,通过给定不同的深度值,得到不同细粒度的空间单元集合。生成越多的空间单元,可以使步骤(2)的可见度计算效果更好。本专利技术将三维模型划分成128(2的7次方)个空间单元,即给定深度为n=7。也就是说,方向包围盒树的最底层叶子为128个,此时树的深度为7。作为优选,步骤(2)的具体步骤为:(2-1)在三维模型周围均匀分布m个摄像头作为m个视点,对三维模型的整体形状进行采样;(2-2)通过调用函数getVis(cell,cameraID)进行可见度计算,其中cell表示任一个空间单元,cameraID表示任一个摄像头或视点,该函数返回指定摄像头对指定空间单元的可见度;(2-3)逐个对每一对摄像头和空间单元组合进行可见度计算;(2-4)剔除掉可见度为0的空间单元。可见度决定了从给定视点观察,特定空间单元里有多少特征是可见的。计算公式如下:对于每个视点cameraID,空间单元cell中的特征都会被渲染四次:第一次渲染用来设置深度缓冲,第二次渲染用来获取可见的像素数,记为totalPixels;第三次渲染会渲染所有空间单元,填满深度缓冲;最后一次渲染会再次渲染当前空间单元来计算通过深度测试的像素数,即未被遮挡的像素数visPixels。本专利技术中,m可取16。作为优选,步骤(3)具体步骤为:(3-1)为未被剔除的每一个空间单元分配一个随机数,并将所分配的随机数赋值为该空间单元的键值;(3-2)根据键值对所有空间单元进行二分排序后存储起来。作为优选,步骤(4)的具体步骤为:(4-1)动态获取预处理阶段所采集的任一组视点与空间单元的可见度,记为Vis(cell);(4-2)根据Vis(cell)和该视点到每一个空间单元的距离,分别计算出每个空间单元的细节层次因素,记为Factor(lod);(4-3)将每个空间单元的Factor(lod)存储在显存的缓存中。作为优选,步骤(5)的具体步骤为:(5-1)根据预处理阶段所得到的有序空间单元序列,计算得出最少必要空间单元表示当前的细节层次模型,最少必要空间单元记为Ncell×Factor(lod);(5-2)利用GPU的并行能力,并行生成必要空间单元的三角形序列;(5-3)将三角形序列发送到渲染管线进行渲染。步骤(5-1)中,Ncell表示每个空间单元的特征数,由于在预处理阶段保证了空间单元的随机性,所以可以选取空间单元随机排序的前Ncell×Factor(lod)个特征表示当前视点下的最少必要空间单元。本专利技术与现有技术相比,主要优点包括:本专利技术通过视距分层优化的方法,剔除了非必要空间单元,在不影响用户体验的情况下,不仅简化了模型的复杂度,而且能够减少模型传输流量,提升加载效率。附图说明图1为本专利技术的视距分层优化算法流程示意图;图2为使用方向包围盒树辅助生成空间单元集合的示意图;图3为从不同的视点计算空间单元的可见度的示意图;图4为三维模型按照实施例优化流程后的细节分层对比图。具体实施方式下面结合附图及具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。下列实施例中未注明具体条件的操作方法,通常按照常规条件,或按照制造厂商所建议的条件。本专利技术的视距分层优化算法流程如图1所示,分为预处理阶段和运行阶段。其中,预处理阶段包括空间单元的生成、可见度计算和叶子随机排序;运行阶段包括LOD(LevelsOfDetail,细节层次)选择和生成三角形序列。本实施例具体阐述上述基于视距分层优化的Web3D模型渲染方法,包括:预处理阶段:...

【技术保护点】
1.一种基于视距分层优化的Web3D模型渲染方法,其特征在于,包括:/n预处理阶段:/n(1)为三维模型生成一系列的空间单元,保证三维模型的每一块边缘都包围在空间单元中;/n(2)从不同的视点对每一个空间单元进行可见度计算,记录每个空间单元在不同视点时的可见度,剔除不可见的空间单元;/n(3)为未被剔除的每个空间单元分配随机数,并按该数为键值进行排序和存储;/n运行阶段:/n(4)随着视点的改变,动态地计算每个空间单元的细节层次因素;/n(5)根据细节层次因素动态地确定当前细节层次模型所必要的空间单元,并将必要的空间单元构成三角形序列,最终发送到渲染管线进行渲染。/n

【技术特征摘要】
1.一种基于视距分层优化的Web3D模型渲染方法,其特征在于,包括:
预处理阶段:
(1)为三维模型生成一系列的空间单元,保证三维模型的每一块边缘都包围在空间单元中;
(2)从不同的视点对每一个空间单元进行可见度计算,记录每个空间单元在不同视点时的可见度,剔除不可见的空间单元;
(3)为未被剔除的每个空间单元分配随机数,并按该数为键值进行排序和存储;
运行阶段:
(4)随着视点的改变,动态地计算每个空间单元的细节层次因素;
(5)根据细节层次因素动态地确定当前细节层次模型所必要的空间单元,并将必要的空间单元构成三角形序列,最终发送到渲染管线进行渲染。


2.根据权利要求1所述的基于视距分层优化的Web3D模型渲染方法,其特征在于,步骤(1)的具体步骤为:
(1-1)生成整个三维模型的包围体,即得到一个空间单元;
(1-2)将一个空间单元划分成两个子空间单元,并作为这两个子空间单元节点的父节点;
(1-3)按照步骤(1-2)所述划分方法进行n次空间划分,最终由所有节点构造出递归包含的方向包围盒树,所构造的方向包围盒树的深度为n、叶子数为2n,即最终将三维模型划分成了2n个子空间单元。


3.根据权利要求1所述的基于视距分层优化的Web3D模型渲染方法,其特征在于,步骤(2)的具体步骤为:
(2-1)在三维模型周围均匀分布m个摄像头作为m个视点,对三维模型的整体形状进行采样;
(2-2)通过调用函数getVis(cell,cameraID)进行可见度...

【专利技术属性】
技术研发人员:李智猛黄剑平
申请(专利权)人:杭州师范大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1