面向大场景渲染的场景剔除方法及其对应的装置制造方法及图纸

技术编号:39799139 阅读:8 留言:0更新日期:2023-12-22 02:30
本发明专利技术提供一种面向大场景渲染的场景剔除方法及其对应的装置,用以减少场景剔除计算量,减少每帧场景剔除耗费的时间,加速渲染绘制

【技术实现步骤摘要】
面向大场景渲染的场景剔除方法及其对应的装置


[0001]本专利技术涉及数字孪生
,尤其涉及一种面向大场景渲染的场景剔除方法及其对应的装置


技术介绍

[0002]在三维实时渲染系统中,为提高三维渲染效率,要对待渲染的各种数据进行有效组织和管理,一般使用具有层次结构的空间数据结构存储待渲染物体

八叉树是一种常见的场景管理数据结构

八叉树通过将整个场景包含在一个最小的轴对齐包围盒中进行构造,递归分割,直到达到最大递归层次或包围盒中包含的图元小于某个阈值

在面向大场景的渲染中,一般通过八叉树(松散八叉树)来管理场景中的物体,再通过视椎体剔除算法,获得当前帧需要渲染的物体,进而进行渲染绘制

[0003]在渲染大尺度场景时,如以地球为渲染对象时,相机在高空中,为了看见地球正面,远裁剪面设置的很大

此时,地面上有大量小物体时,离相机很远,最终看不见

按照传统场景管理逻辑,所有物体都会加入到一棵八叉树中进行管理;此时这些小物体虽然最终看不见(绘制不出来),但都参与了场景剔除计算,耗费了计算时间,拖慢了渲染帧率


技术实现思路

[0004]本专利技术实施例提供一种面向大场景渲染的场景剔除方法及其对应的装置,用以解决现有技术中大尺度场景渲染效率低的问题

[0005]本专利技术实施例的面向大场景渲染的场景剔除方法,包括:
[0006]根据待渲染场景中物体在当前视口上的最小显示像素宽度,将所述待渲染场景中物体划分为多个分组,每个所述分组对应一个可视大小范围区间,所述可视大小范围区间表示其对应的分组内的物体在所述当前视口上的最小显示像素宽度的范围区间;
[0007]为每个所述分组构建一颗八叉树,所述八叉树管理其对应分组中的物体;所有所述八叉树的结构均相同;
[0008]基于公式1‑2,计算最小可视大小范围区间对应的八叉树中各层级对应的需求远裁剪面:
[0009]公式1,
[0010]公式2,
[0011]其中,表示边长为1米的立方体盒子在所述当前视口上显示的像素宽度为1像素时距离所述当前相机的距离;
viewportHeight
表示所述当前视口的高度;
heightZ1
表示距离当前相机一米处所述当前相机视野空间内垂直面的高度;
sceneLevel
表示待渲染场景层级;
[0012]将所述需求远裁剪面与所述当前相机的远裁剪面进行比较,若所述需求远裁剪面大于所述当前相机的远裁剪面,则确定所述当前相机的远裁剪面为当前层级节点的远裁剪
面;否则,确定所述需求远裁剪面为当前层级节点的远裁剪面;依次递归计算,直到所述需求远裁剪面小于当前相机的近裁剪面时收敛退出,以获得层级视椎体;
[0013]将所述层级视椎体依次与每棵所述八叉树进行相交测试,剔除不需要绘制的物体,包括:
[0014]针对每颗所述八叉树,从所述层级视椎体中查找与所述八叉树中根节点匹配的远裁剪面作为开始远裁剪面并将所述开始远裁剪面与所述八叉树中根节点执行相交运算;
[0015]从所述开始远裁剪面开始依次向后移动一层作为当前远裁剪面,从所述八叉树中根节点开始依次向后移动一层作为当前层节点,对所述当前远裁剪面和所述当前层节点执行相交运算

[0016]本专利技术实施例的面向大场景渲染的场景剔除装置,包括:
[0017]物体管理模块,用于:根据待渲染场景中物体在当前视口上的最小显示像素宽度,将所述待渲染场景中物体划分为多个分组,每个所述分组对应一个可视大小范围区间,所述可视大小范围区间表示其对应的分组内的物体在所述当前视口上的最小显示像素宽度的范围区间;为每个所述分组构建一颗八叉树,所述八叉树管理其对应分组中的物体;所有所述八叉树的结构均相同;
[0018]层级视椎体计算模块,用于:基于公式1‑2,计算最小可视大小范围区间对应的八叉树中各层级对应的需求远裁剪面:
[0019]公式1,
[0020]公式2,
[0021]其中,表示边长为1米的立方体盒子在所述当前视口上显示的像素宽度为1像素时距离所述当前相机的距离;
viewportHeight
表示所述当前视口的高度;
heightZ1
表示距离当前相机一米处所述当前相机视野空间内垂直面的高度;
sceneLevel
表示待渲染场景层级;将所述需求远裁剪面与所述当前相机的远裁剪面进行比较,若所述需求远裁剪面大于所述当前相机的远裁剪面,则确定所述当前相机的远裁剪面为当前层级节点的远裁剪面;否则,确定所述需求远裁剪面为当前层级节点的远裁剪面;依次递归计算,直到所述需求远裁剪面小于当前相机的近裁剪面时收敛退出,以获得层级视椎体;
[0022]剔除模块,用于将所述层级视椎体依次与每棵所述八叉树进行相交测试,剔除不需要绘制的物体,包括:
[0023]针对每颗所述八叉树,从所述层级视椎体中查找与所述八叉树中根节点匹配的远裁剪面作为开始远裁剪面并将所述开始远裁剪面与所述八叉树中根节点执行相交运算;
[0024]从所述开始远裁剪面开始依次向后移动一层作为当前远裁剪面,从所述八叉树中根节点开始依次向后移动一层作为当前层节点,对所述当前远裁剪面和所述当前层节点执行相交运算

[0025]本专利技术实施例还对应提出一种计算机设备,包括:存储器

处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的面向大场景渲染的场景剔除方法的步骤

[0026]本专利技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现如上所述的面向大场景渲染的场景
剔除方法的步骤

[0027]采用本专利技术实施例,通过改进传统的场景管理方式和场景剔除算法,可以减少场景剔除计算量,减少每帧场景剔除耗费的时间,加速渲染绘制

[0028]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的

特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式

附图说明
[0029]通过阅读下文实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了

附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制

在附图中:
[0030]图1是本专利技术实施例中面向大场景渲染的场景剔除方法流程图;
[0031]图2是本专利技术实施例中八叉树划分逻辑示意图;
[0032]图3是本专利技术实施例中八叉树与层级视椎体对应关系图;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种面向大场景渲染的场景剔除方法,其特征在于,包括:根据待渲染场景中物体在当前视口上的最小显示像素宽度,将所述待渲染场景中物体划分为多个分组,每个所述分组对应一个可视大小范围区间,所述可视大小范围区间表示其对应的分组内的物体在所述当前视口上的最小显示像素宽度的范围区间;为每个所述分组构建一颗八叉树,所述八叉树管理其对应分组中的物体;所有所述八叉树的结构均相同;基于公式1‑2,计算最小可视大小范围区间对应的八叉树中各层级对应的需求远裁剪面:公式1,公式2,其中,表示边长为1米的立方体盒子在所述当前视口上显示的像素宽度为1像素时距离当前相机的距离;
viewportHeight
表示所述当前视口的高度;
heightZ1
表示距离所述当前相机一米处所述当前相机视野空间内垂直面的高度;
sceneLevel
表示待渲染场景层级;将所述需求远裁剪面与所述当前相机的远裁剪面进行比较,若所述需求远裁剪面大于所述当前相机的远裁剪面,则确定所述当前相机的远裁剪面为当前层级节点的远裁剪面;否则,确定所述需求远裁剪面为当前层级节点的远裁剪面;依次递归计算,直到所述需求远裁剪面小于所述当前相机的近裁剪面时收敛退出,以获得层级视椎体;将所述层级视椎体依次与每棵所述八叉树进行相交测试,剔除不需要绘制的物体,包括:针对每颗所述八叉树,从所述层级视椎体中查找与所述八叉树中根节点匹配的远裁剪面作为开始远裁剪面并将所述开始远裁剪面与所述八叉树中根节点执行相交运算;从所述开始远裁剪面开始依次向后移动一层作为当前远裁剪面,从所述八叉树中根节点开始依次向后移动一层作为当前层节点,对所述当前远裁剪面和所述当前层节点执行相交运算
。2.
如权利要求1所述的方法,其特征在于,所述将所述待渲染场景中物体划分为多个分组,包括:将所述待渲染场景中物体划分为九个分组,所述九个分组对应的可视大小范围区间依次为:
[0
像素
,1
像素
)、[1
像素
,2
像素
)、[2
像素
,4
像素
)、[4
像素
,8
像素
)、[8
像素
,16
像素
)、[16
像素
,32
像素
)、[32
像素
,64
像素
)、[64
像素
,128
像素
)、[128
像素
,256
像素
)。3.
如权利要求2所述的方法,其特征在于,所述从所述层级视椎体中查找与所述八叉树中根节点匹配的远裁剪面作为开始远裁剪面,包括:所述可视大小范围区间为
[0
像素
,1
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第0层远裁剪面;所述可视大小范围区间为
[1
像素
,2
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第1层远裁剪面;所述可视大小范围区间为
[2
像素
,4
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第2层远裁剪面;
所述可视大小范围区间为
[4
像素
,8
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第3层远裁剪面;所述可视大小范围区间为
[8
像素
,16
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第4层远裁剪面;所述可视大小范围区间为
[16
像素
,32
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第5层远裁剪面;所述可视大小范围区间为
[32
像素
,64
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第6层远裁剪面;所述可视大小范围区间为
[64
像素
,128
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第7层远裁剪面;所述可视大小范围区间为
[128
像素
,256
像素
)
对应的八叉树对应的开始远裁剪面为所述层级视椎体中第8层远裁剪面
。4.
如权利要求1所述的方法,其特征在于,所述待渲染场景为地球,
sceneLevel=23。5.
一种面向大场景渲染的场景剔除装置,其特征在于,包括:物体管理模块,用于:根据待渲染场景中物体在当前视口上的最小显示像素宽度,将所述待渲染场景中物体划分为多个分组,每个所述分组对应一个可视大小范围区间,所述可视大小范...

【专利技术属性】
技术研发人员:陈玉明彭爱峰
申请(专利权)人:北京睿呈时代信息科技有限公司
类型:发明
国别省市:

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

1