【技术实现步骤摘要】
一种基于离屏渲染的背面构件剔除方法、系统和存储介质
本专利技术涉及图形渲染优化
,尤其涉及一种基于离屏渲染的背面构件剔除方法、系统和存储介质。
技术介绍
背面构件的剔除,是指在大体量的三维模型渲染过程中,由于所渲染体量大大超过了当今主流GPU渲染的渲染极限,而在软件层面通过一系列方法剔除渲染模型的背面没有被渲染在屏幕上的构件几何体或在远处看不明显的构件几何体,是一种图形渲染性能的优化方法。目前,主流的解决方法有两种,一种是基于深度缓存(即z-buffer)的方式来做遮挡背面剔除,该方法剔除效果不是很理想,且存在当透明构件在不透明构件之前时,会将透明构件后面的不透明构件剔除掉的问题。另一种是利用WebGlAPI接口(WebGlAPI是一个JavaScriptAPI,可在任何兼容的Web浏览器中渲染高性能的交互式3D和2D图形,而无需使用插件)的查询方式来做遮挡查询与剔除,该方法需要构建包围盒,并根据包围盒来做遮挡测试,然而我们大多应用场景的包围盒的构建是非规则构建,而使用规则构建包围盒又会造成剔除误差,导致剔除不准确。因此,采用上述两种方法在大体量的模型(如几十万构件)中进行背面构件遮挡查询与剔除的时候,不能100%地能保证分辨出构件是否被遮挡,不可见构件查询效果差,且在进行遮挡查询与剔除过后,确定的不可见集与总构件比例浮动较大,进而导致渲染帧的帧率非常不稳定。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术的不足,提供一种基于离屏渲染的背面构件剔除方法、系统和存储介质, ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。