一种大体量三维场景三维模型渲染优化方法和系统技术方案

技术编号:31499069 阅读:15 留言:0更新日期:2021-12-18 12:46
一种大体量三维场景三维模型渲染优化方法和系统,涉及图像数据处理技术领域,包括:三维模型文件数据简化预处理、对剔除区域进行分类、包围体构建、深度检测和实时绘制与渲染等步骤,本方法通过多层级的视域剔除区域识别和确定,把三维模型分为三种模式来剔除不可见面和不可见模型,减少渲染数据量,以此提高视角移动时的加载速度,减少丢帧卡顿现象,达到普通PC最佳的显示效果和观看体验。通PC最佳的显示效果和观看体验。通PC最佳的显示效果和观看体验。

【技术实现步骤摘要】
一种大体量三维场景三维模型渲染优化方法和系统


[0001]本专利技术涉及图像数据处理
,具体涉及一种大体量三维场景三维模型渲染优化方法和系统。

技术介绍

[0002]大体量三维模型的渲染优化主要有LOD(层次细节)模型和场景管理优化等,其中场景管理优化一般有使用场景分割以及进行可见性剔除计算等不同的方法,场景管理分为场景分割和可见性剔除两种方法,可见性剔除属于场景管理的优化,其目的是为了减少三维场景在渲染流程中的数据量,因为现代使用的大体量的三维场景越来越多,其规模性和复杂性大大增加,再加上人们对交互的实时性的要求越来越高,传统的算法已经不能满足现实需求。在大体量的三维场景中,场景中的对象数量极大地增加了,但是对于用户来说,可以看到的物体是远远小于场景中物体的总数的。
[0003]通过对各种可见性剔除的分析,可见性剔除方法一般分为预处理、遮挡剔除以及实时绘制三个部分。为了能够更快的实时绘制,要尽可能的把计算操作放到离线的处理中,对于大体量的三维模型场景,以大型设备的装配场景为例,总装配体模型往往有着非常庞大的数据量,远超主流配置PC所能承受的范围,为了对装配体模型进行简化,减少数据量和渲染时间,需要将模型中一些隐藏的零件模型做剔除,也可以叫做模型的轻量化。
[0004]事实上,随着人机交互需求的增加,对于普通PC而言,如果采用已有的模型剔除和简化方法,在视角转换的过程中会存在需要计算视域再绘制的过程,模型的渲染会占用CPU近100%的计算,出现模型加载过慢产生的卡顿感和丢帧现象,影响实际使用体验

技术实现思路

[0005]本专利技术实施例提供了一种大体量三维场景三维模型渲染优化方法和系统,通过多层级的视域剔除区域识别和确定,把三维模型分为三种模式来剔除不可见面和不可见模型,减少渲染数据量,以此提高视角移动时的加载速度,减少丢帧卡顿现象,达到普通PC最佳的显示效果和观看体验。
[0006]一种大体量三维场景三维模型渲染优化方法,包括以下步骤:S1,三维模型文件数据简化预处理,对三维模型文件进行简化,提取用于进行场景渲染的三维可视化数据,去除其他数据,减少三维模型文件总数据大小;S2,对剔除区域进行分类,根据视点的观察范围,对三维模型文件中不在视点的观察范围的模型进行剔除区域分析,得到不同分类的剔除区域,形成多层次视域体;S3,包围体构建,对三维模型文件中物体的轮廓进行分析,得到物体的包围体;S4,深度检测,根据所述步骤S2中得到的多层次视域体和所述步骤S3中得到的不同物体的包围体,在视角和投影矩发生变化时,计算得到不同物体的包围体与多层次视域体的位置关系;S5,实时绘制与渲染,根据所述步骤S4得到的不同物体的包围体与多层次视域体
的位置关系进行实时绘制与渲染。
[0007]进一步的,所述步骤S2中得到的多层次视域体包括视锥体视域和圆锥体视域,所述视锥体视域和所述圆锥体视域同轴,所述圆锥体视域的范围包含所述视锥体视域的范围,位于所述圆锥体内和所述视锥体外的区域为中间体视域,所述圆锥体外的区域为视域外区域。
[0008]进一步的,所述步骤S3中,包围体类型为球形包围体。
[0009]进一步的,所述包围体与所述多层次视域体的位置关系为内含、相交和外离三种中任一种。
[0010]进一步的,所述步骤S4包括:S41,遍历视锥体的六个裁面,判断包围体是在该裁面的正面、背面,还是与该裁面相交;S42,计算从包围体中心到该裁面的距离;S43,如果距离大于0,则包围体在裁面正面,即在视锥体内,返回值IN;S44,如果小于0,则包围体是在裁面背面,进行下一步判断;S45,如果距离的绝对值小于球体半径,则包围体与该裁面相交,即包围体部分在视锥体内,返回值INTERSECT;S46,对于距离小于0且距离的绝对值大于包围体半径的包围体,继续遍历圆锥体三个裁面,判断包围体是在该裁面的正面,背面,还是相交;S47,计算从包围体中心到该裁面的距离;S48,如果距离大于0那包围体在裁面正面,即在圆锥体内和视锥体外,返回值INMED;S49,如果小于0那么包围体在裁面背面,进行下一步判断;S410,如果距离的绝对值小于包围体半径,那么包围体与该裁面相交,返回值INMEDSECT;S411,如果距离的绝对值大于包围体半径,即在视域外区域,返回值OUT;S412,集合A包含IN和INTERSECT返回值所代表的包围体内多叉树结构范围内的所有物体;集合B包含INMED和INMEDSECT返回值所代表的包围体内多叉树结构范围内的所有物体;集合C包含OUT返回值所代表的包围体内多叉树结构范围内的所有物体。
[0011]进一步的,所述步骤S411的计算方式为:设C为包围体中心坐标;设N为平面法线向量;设D为坐标系原点到裁面的距离;计算公式为:距离= C*N+D。
[0012]进一步的,所述步骤S5包括:S51,视锥体内或与视锥体相交,集合A渲染,实时加载绘制;S52,不在视锥体内,但在圆锥体内或与圆锥体相交,集合B不可见面做遮挡剔除;S53,圆锥体以外,集合C做视域剔除,不渲染。
[0013]进一步的,所述步骤S52中,遮挡剔除的内侧外侧判断方法为:根据顶点的连接顺序来判断,如果形成多边形的顶点的连接顺序是顺时针,判断为外侧,逆时针的时候为内
侧,亦可以反过来判断,顺时针就变成了内侧,将判断为内侧的模型面片做不可见剔除,构建完成后发送至渲染线程,剔除相关节点及其子节点,减少渲染模型面片和构件的数量,以达到简化的目的。
[0014]第二方面,本专利技术实施例提供一种大体量三维场景三维模型渲染优化系统,包括三维模型文件分析模块、多层次视域体分析模块、包围体构件模块、深度检测模块和实时绘制与渲染模块;所述三维模型文件分析模块,用于对三维模型文件进行简化,提取用于进行场景渲染的三维可视化数据,去除其他数据,减少三维模型文件总数据大小;其中,所述三维模型文件分析模块包括模型分析单元和数据剔除单元,所述模型分析单元用于对三维模型文件进行分析,对三维模型文件中用于进行场景渲染的三维可视化数据进行标记,所述数据剔除单元用于根据标记将其余未标记数据进行删除;所述多层次视域体分析模块,用于根据视点的观察范围,对三维模型文件中不在视点的观察范围的模型进行剔除区域分析,得到不同分类的剔除区域,形成多层次视域体;其中,所述多层次视域体分析模块包括视域分析单元、视锥体视域分析单元和圆锥体视域分析单元,所述视域分析单元用于根据分析视点的观察范围,得到视点观察范围,所述视锥体视域分析单元用于根据视点观察范围得到视锥体视域,所述圆锥体视域分析单元用于根据视点观察范围和视锥体视域得到圆锥体视域;所述包围体构件模块,用于对三维模型文件中物体的轮廓进行分析,得到物体的包围体;其中,所述包围体构件模块包括模型轮廓检测单元和包围体计算单元,所述模型轮廓检测单元用于分析和检测三维模型文件中单个物体的轮廓,所述包围体计算单元用于根据所述单个物体的轮廓和中心点计算得到球形包围体;所述深度检测模块,用于检测包围体和所述多层次视域体的位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大体量三维场景三维模型渲染优化方法,其特征在于,包括以下步骤:S1,三维模型文件数据简化预处理,对三维模型文件进行简化,提取用于进行场景渲染的三维可视化数据,去除其他数据,减少三维模型文件总数据大小;S2,对剔除区域进行分类,根据视点的观察范围,对三维模型文件中不在视点的观察范围的模型进行剔除区域分析,得到不同分类的剔除区域,形成多层次视域体;S3,包围体构建,对三维模型文件中物体的轮廓进行分析,得到物体的包围体;S4,深度检测,根据所述步骤S2中得到的多层次视域体和所述步骤S3中得到的不同物体的包围体,在视角和投影矩发生变化时,计算得到不同物体的包围体与多层次视域体的位置关系;S5,实时绘制与渲染,根据所述步骤S4得到的不同物体的包围体与多层次视域体的位置关系进行实时绘制与渲染。2.如权利要求1所述的一种大体量三维场景三维模型渲染优化方法,其特征在于,所述步骤S2中得到的多层次视域体包括视锥体视域和圆锥体视域,所述视锥体视域和所述圆锥体视域同轴,所述圆锥体视域的范围包含所述视锥体视域的范围,位于所述圆锥体内和所述视锥体外的区域为中间体视域,所述圆锥体外的区域为视域外区域。3.如权利要求2所述的一种大体量三维场景三维模型渲染优化方法,其特征在于,所述步骤S3中,包围体类型为球形包围体。4.如权利要求3所述的一种大体量三维场景三维模型渲染优化方法,其特征在于,所述包围体与所述多层次视域体的位置关系为内含、相交和外离三种中任一种。5.如权利要求4所述的一种大体量三维场景三维模型渲染优化方法,其特征在于,所述步骤S4包括:S41,遍历视锥体的六个裁面,判断包围体是在该裁面的正面、背面,还是与该裁面相交;S42,计算从包围体中心到该裁面的距离;S43,如果距离大于0,则包围体在裁面正面,即在视锥体内,返回值IN;S44,如果小于0,则包围体是在裁面背面,进行下一步判断;S45,如果距离的绝对值小于球体半径,则包围体与该裁面相交,即包围体部分在视锥体内,返回值INTERSECT;S46,对于距离小于0且距离的绝对值大于包围体半径的包围体,继续遍历圆锥体三个裁面,判断包围体是在该裁面的正面,背面,还是相交;S47,计算从包围体中心到该裁面的距离;S48,如果距离大于0那包围体在裁面正面,即在圆锥体内和视锥体外,返回值INMED;S49,如果小于0那么包围体在裁面背面,进行下一步判断;S410,如果距离的绝对值小于包围体半径,那么包围体与该裁面相交,返回值INMEDSECT;S411,如果距离的绝对值大于包围体半径,即在视域外区域,返回值OUT;S412,集合A包含IN和INTERSECT返回值所代表的包围体内多叉树结构范围内的所有物体;集合B包含INMED和INMEDSECT返回值所代表的包围体内多叉树结构范围内的所有物体;集合C包含OUT返回值所代表的包...

【专利技术属性】
技术研发人员:张驰余晓君张兵武银雪
申请(专利权)人:武汉方拓数字科技有限公司
类型:发明
国别省市:

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

1