一种基于离屏渲染的背面构件剔除方法、系统和存储介质技术方案

技术编号:26380118 阅读:20 留言:0更新日期:2020-11-19 23:48
本发明专利技术涉及一种基于离屏渲染的背面构件剔除方法、系统和存储介质,包括获取待渲染模型中所有构件的渲染数据,将所有构件和所有渲染数据均装载入预设的初始构件容器后,对初始构件容器进行初始化得到渲染构件容器;根据渲染构件容器得到可见集扩散数组集合,根据渲染构件容器和可见集扩散数组集合获取多个目标邻近构件,并根据所有目标邻近构件得到潜在可见集容器;按照潜在可见集容器中的所有目标邻近构件进行离屏渲染,得到多个渲染查询帧数据,根据所有渲染查询帧数据对渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。本发明专利技术在进行遮挡查询与剔除时,能够以更高识别率分辨出构件是否被遮挡,识别效果更为显著,剔除效果稳定。

【技术实现步骤摘要】
一种基于离屏渲染的背面构件剔除方法、系统和存储介质
本专利技术涉及图形渲染优化
,尤其涉及一种基于离屏渲染的背面构件剔除方法、系统和存储介质。
技术介绍
背面构件的剔除,是指在大体量的三维模型渲染过程中,由于所渲染体量大大超过了当今主流GPU渲染的渲染极限,而在软件层面通过一系列方法剔除渲染模型的背面没有被渲染在屏幕上的构件几何体或在远处看不明显的构件几何体,是一种图形渲染性能的优化方法。目前,主流的解决方法有两种,一种是基于深度缓存(即z-buffer)的方式来做遮挡背面剔除,该方法剔除效果不是很理想,且存在当透明构件在不透明构件之前时,会将透明构件后面的不透明构件剔除掉的问题。另一种是利用WebGlAPI接口(WebGlAPI是一个JavaScriptAPI,可在任何兼容的Web浏览器中渲染高性能的交互式3D和2D图形,而无需使用插件)的查询方式来做遮挡查询与剔除,该方法需要构建包围盒,并根据包围盒来做遮挡测试,然而我们大多应用场景的包围盒的构建是非规则构建,而使用规则构建包围盒又会造成剔除误差,导致剔除不准确。因此,采用上述两种方法在大体量的模型(如几十万构件)中进行背面构件遮挡查询与剔除的时候,不能100%地能保证分辨出构件是否被遮挡,不可见构件查询效果差,且在进行遮挡查询与剔除过后,确定的不可见集与总构件比例浮动较大,进而导致渲染帧的帧率非常不稳定。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术的不足,提供一种基于离屏渲染的背面构件剔除方法、系统和存储介质,在对大体量的模型的背面构件进行遮挡查询与剔除时,能够以更高识别率分辨出构件是否被遮挡,识别不可见构件的效果更为显著,剔除效果稳定。本专利技术解决上述技术问题的技术方案如下:一种基于离屏渲染的背面构件剔除方法,包括以下步骤:步骤1:获取待渲染模型中所有构件的渲染数据,将所有所述构件和所有所述渲染数据均装载入预设的初始构件容器后,对所述初始构件容器进行初始化,得到渲染构件容器;步骤2:根据所述渲染构件容器计算得到可见集扩散数组集合,根据所述渲染构件容器和所述可见集扩散数组集合,获取多个目标邻近构件,并根据所有所述目标邻近构件得到潜在可见集容器;步骤3:按照所述潜在可见集容器中的所有所述目标邻近构件进行离屏渲染,得到多个渲染查询帧数据,根据所有所述渲染查询帧数据对所述渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。依据本专利技术的另一方面,还提供了一种基于离屏渲染的背面构件剔除系统,应用于本专利技术的基于离屏渲染的背面构件剔除方法中,包括初始化模块、计算模块、离屏渲染模块和更新模块;所述初始化模块,用于获取待渲染模型中所有构件的渲染数据,将所有所述构件和所有所述渲染数据均装载入预设的初始构件容器后,对所述初始构件容器进行初始化,得到渲染构件容器;所述计算模块,用于根据所述渲染构件容器计算得到可见集扩散数组集合,根据所述渲染构件容器和所述可见集扩散数组集合,获取多个目标邻近构件,并根据所有所述目标邻近构件得到潜在可见集容器;所述离屏渲染模块,用于按照所述潜在可见集容器中的所有所述目标邻近构件进行离屏渲染,得到多个渲染查询帧数据;所述更新模块,用于根据所有所述渲染查询帧数据对所述渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。依据本专利技术的另一方面,提供了一种基于离屏渲染的背面构件剔除系统,包括处理器、存储器和存储在所述存储器中且可运行在所述处理器上的计算机程序,所述计算机程序运行时实现本专利技术中的基于离屏渲染的背面构件剔除方法中的步骤。依据本专利技术的另一方面,提供了一种计算机存储介质,所述计算机存储介质包括:至少一个指令,在所述指令被执行时实现本专利技术的一种基于离屏渲染的背面构件剔除方法中的步骤。本专利技术的基于离屏渲染的背面构件剔除方法、系统和存储介质的有益效果是:通过获取的构件的渲染数据并进行初始化,得到渲染构件容器,为后续的可见性构件的查询提供了渲染数据来源,通过计算得到可见集扩散数组集合进而得到潜在可见集容器,潜在可见集容器中包含有可见的构件,同时还可能是远处不明显的构件,能够便于后续进行离屏渲染,进而便于根据渲染后得到的渲染查询帧对渲染构件容器进行更新,得到只剔除背面构件的模型构件数据,即目标渲染构件容器中存储的数据,实现待渲染模型的背面没有被渲染的构件几何体或远处看不明显的构件几何体的剔除,有效提高图形渲染效果,实现图形渲染性能的优化;其中,渲染构件容器中包含了待渲染模型中的全部构件,潜在可见集容器中包含了待渲染模型中的全部可见构件,目标渲染构件容器中包含了待渲染模型中剔除了背面构件后的全部构件;本专利技术的背面构件剔除方法、系统和存储介质,能够更准确地查询出潜在可见集,在对大体量的模型的背面构件进行遮挡查询与剔除时,能够以更高识别率分辨出构件是否被遮挡,不可见构件的查询效果更为显著,同时还可以通过更改渲染查询帧数据来实现自带细节剔除效果,进而有效保证了剔除效果的稳定性,适用范围更广。附图说明图1为本专利技术实施例一中一种基于离屏渲染的背面构件剔除方法的流程示意图;图2为本专利技术实施例一中得到渲染构件容器的流程示意图;图3为本专利技术实施例一中得到可见集扩散数组集合的流程示意图;图4为本专利技术实施例一中得到潜在可见集容器的流程示意图;图5为本专利技术实施例一中另一种得到潜在可见集容器的完成流程示意图;图6为本专利技术实施例一中对渲染构件容器进行更新的流程示意图;图7为本专利技术实施例二中一种基于离屏渲染的背面构件剔除系统的结构示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。下面结合附图,对本专利技术进行说明。实施例一、如图1所示,一种基于离屏渲染的背面构件剔除方法,包括以下步骤:S1:获取待渲染模型中所有构件的渲染数据,将所有所述构件和所有所述渲染数据均装载入预设的初始构件容器后,对所述初始构件容器进行初始化,得到渲染构件容器;S2:根据所述渲染构件容器计算得到可见集扩散数组集合,根据所述渲染构件容器和所述可见集扩散数组集合,获取多个目标邻近构件,并根据所有所述目标邻近构件得到潜在可见集容器;S3:按照所述潜在可见集容器中的所有所述目标邻近构件进行离屏渲染,得到多个渲染查询帧数据,根据所有所述渲染查询帧数据对所述渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。通过获取的构件的渲染数据并进行初始化,得到渲染构件容器,为后续的可见性构件的查询提供了渲染数据来源,通过计算得到可见集扩散数组集合进而得到潜在可见集容器,潜在可见集容器中包含有可见的构件,同时还可能是远处不明显的构件,能够便于后续进行离屏渲染,进而便于根据渲染后得到的渲染查询帧对渲染构件容器进行更新,得到只剔除背面构件的模型构件数据,即目标渲染构件容器中存储的数据,实现待渲染本文档来自技高网...

【技术保护点】
1.一种基于离屏渲染的背面构件剔除方法,其特征在于,包括以下步骤:/n步骤1:获取待渲染模型中所有构件的渲染数据,将所有所述构件和所有所述渲染数据均装载入预设的初始构件容器后,对所述初始构件容器进行初始化,得到渲染构件容器;/n步骤2:根据所述渲染构件容器计算得到可见集扩散数组集合,根据所述渲染构件容器和所述可见集扩散数组集合,获取多个目标邻近构件,并根据所有所述目标邻近构件得到潜在可见集容器;/n步骤3:按照所述潜在可见集容器中的所有所述目标邻近构件进行离屏渲染,得到多个渲染查询帧数据,根据所有所述渲染查询帧数据对所述渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。/n

【技术特征摘要】
1.一种基于离屏渲染的背面构件剔除方法,其特征在于,包括以下步骤:
步骤1:获取待渲染模型中所有构件的渲染数据,将所有所述构件和所有所述渲染数据均装载入预设的初始构件容器后,对所述初始构件容器进行初始化,得到渲染构件容器;
步骤2:根据所述渲染构件容器计算得到可见集扩散数组集合,根据所述渲染构件容器和所述可见集扩散数组集合,获取多个目标邻近构件,并根据所有所述目标邻近构件得到潜在可见集容器;
步骤3:按照所述潜在可见集容器中的所有所述目标邻近构件进行离屏渲染,得到多个渲染查询帧数据,根据所有所述渲染查询帧数据对所述渲染构件容器进行更新,得到目标渲染构件容器,完成背面构件剔除。


2.根据权利要求1所述的基于离屏渲染的背面构件剔除方法,其特征在于,所述渲染数据包括所述待渲染模型中每个构件的中心点位置信息。


3.根据权利要求2所述的基于离屏渲染的背面构件剔除方法,其特征在于,在所述步骤1中,得到所述渲染构件容器的具体步骤包括:
步骤11:按照预设的颜色编码方法,对所述初始构件容器中的每个构件分别进行编码,得到每个构件一一对应的颜色编码;
步骤12:根据所述初始构件容器中的每两个构件的中心点位置信息,得到每两个构件之间的构件距离;
步骤13:根据所有构件、所有颜色编码和所有构件距离,得到所述渲染构件容器。


4.根据权利要求3所述的基于离屏渲染的背面构件剔除方法,其特征在于,在所述步骤2中,得到所述可见集扩散数组集合的具体步骤包括:
步骤21:在所述渲染构件容器中任选一个构件作为第一号构件,根据所有构件距离,在所述渲染构件容器除开所述第一号构件外的剩余构件中,查找与所述第一号构件之间的构件距离的最小值所对应的第1邻近构件,根据所述第一号构件对应的颜色编码以及所述第1邻近构件对应的颜色编码得到所述第一号构件对应的可见集扩散数组;
步骤22:根据所有构件距离,在所述渲染构件容器的第1剩余构件中,查找与所述第1邻近构件之间的构件距离的最小值所对应的第2邻近构件,根据所述第1邻近构件对应的颜色编码以及所述第2邻近构件对应的颜色编码得到所述第1邻近构件对应的可见集扩散数组;
步骤23:根据所有构件距离,在所述渲染构件容器的第N剩余构件中,查找与所述第N邻近构件之间的构件距离的最小值所对应的第N+1邻近构件,根据所述第N邻近构件对应的颜色编码以及所述第N+1邻近构件对应的颜色编码得到所述第N邻近构件对应的可见集扩散数组;其中,N=2,3,4……,所述渲染构件容器构件的总数为N+2;第N剩余构件为所述渲染构件容器中除开第一号构件以及第1邻近构件至第N邻近构件外的剩余构件;
步骤24:根据所有可见集扩散数组得到所述可见集扩散数组集合。


5.根据权利要求4所述的基于离屏渲染的背面构件剔除方法,其特征在于,在所述步骤2中,得到所述潜在可见集容器的具体步骤包括:
步骤25:判断所述渲染构件容器中...

【专利技术属性】
技术研发人员:马骁郝方位陶海波叶宇飞陈雷行廖灿灿
申请(专利权)人:中煤科工重庆设计研究院集团有限公司
类型:发明
国别省市:重庆;50

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

1