当前位置: 首页 > 专利查询>广西大学专利>正文

基于点线面的三维空间几何虚拟模型细节层次裁剪方法技术

技术编号:20488308 阅读:27 留言:0更新日期:2019-03-02 20:33
本发明专利技术公开了一种基于点线面的空间三维几何虚拟模型裁剪方法。首先将三维空间几何虚拟模型的属性从整体结构中分离出来,查找模型中具有共享性质的顶点、线和面的结构,从位置共享到纹理共享,将它们在数据处理中进行标记,当所有顶点完成关联三角形的映射处理之后,通过周围与之接壤的三角形获取到一个模型的相邻三角网格信息;借助模型全局网格信息,计算出各权重指数,得到该区域的点线面在全局网格模型中的重要性。删除或者简化重要性较低的区域,保留重要性较高的区域。该方法能够限定裁剪的层次数和复杂度,即不影响视觉观测效果,同时能够保证系统对模型的构建功能正常进行,兼顾了模型渲染过程的有效性和稳定性。

Level-of-detail clipping method for 3D geometric virtual model based on point-line-surface

The invention discloses a trimming method of spatial three-dimensional geometric virtual model based on point, line and surface. Firstly, the attributes of the three-dimensional geometric virtual model are separated from the whole structure, and the structures of vertices, lines and surfaces with shared properties are searched. From position sharing to texture sharing, they are marked in data processing. When all vertices complete mapping of the associated triangles, the adjacent triangles of a model are obtained through the adjacent triangles. Triangular mesh information; with the help of the global mesh information of the model, the weight index is calculated, and the importance of points, lines and planes in the global mesh model is obtained. Delete or simplify areas of low importance and retain areas of high importance. This method can limit the number of layers and complexity of cropping, that is, it does not affect the visual observation effect, while ensuring the normal functionality of the system for model building, taking into account the validity and stability of the model rendering process.

【技术实现步骤摘要】
基于点线面的三维空间几何虚拟模型细节层次裁剪方法
本专利技术属于三维空间建模
,更具体地,涉及一种基于点线面的三维空间几何虚拟模型细节层次裁剪方法。
技术介绍
三维空间模型渲染,并不是按照实体本身从内到外在机器上进行一模一样的设计,一般来说我们都是设计出物体的同形线框,在其表面进行纹理、材质和贴图的附着,不管是颜色、光照还是花纹图案都是通过这种方式在模型上展现。纹理、材质和贴图其实本质上与图片并无本质区别,但是它们是专门针对三维模型而设计的,其中像素可以投影到屏幕空间中的像素,使得就像把图像贴上去一样具有真实感。从三维建模技术诞生的那一刻开始,如何更快绘制和渲染的问题便随之而来。从底层硬件的中央处理器(CentralProcessingUnit,CPU)与图形处理器(GraphicsProcessingUnit,GPU)的高效计算,到中层图形程序的图形绘制算法,再到顶层应用软件的多样渲染技术,都有极大的性能优化空间,能够适应于不同计算机配置,适应于不同的绘制算法,以及适应于不同的场景渲染。除了上述计算机图形层面的纵向优化因素外,项目研发时间轴的横向优化也是重要的因素之一。性能优化不能在三维空间几何虚拟模型建模及动画效果完成之后再进行,因为这样会导致大量的工作积压在优化程序上,另一方面就是无法精确定位导致模型资源运行效率低下的位置,这样排查起来就会消耗太多的时间。必须提出跟进项目每一步的小型优化方案,以及能够进行最后场景综合处理的大型优化方案。目前,常用的三维空间几何虚拟模型裁剪算法有边收缩细节层次算法,二次误差度量算法,CPU+GPU协作裁剪算法等。边收缩细节层次算法使用顶点权重来表示顶点的重要程度,顶点权重按照对模型外观影响由大到小的程度进行排序,将裁剪控制在一个影响较小的范围内;顶点的权重存储在一个有序数组中,数组顺序既是裁剪顶点顺序,优点在于算法易于实现,执行速度快。边收缩细节层次算法的局限性在于,只考虑了顶点这一个因素,模型整体是由点线面构成,只考虑顶点来进行裁剪只能较好的保留模型的边缘特征,对于模型整体的可观性受到较大影响。二次误差度量算法是基于边收缩细节层次算法的改进,在顶点合并的过程中考虑了误差评价,该评价主要基于边界约束和面法向量的机制,利用误差矩阵来存储误差值,优点在于考虑的模型属性诸多方面,能达到较好的运行效果。二次误差度量算法的局限性在于,计算误差矩阵消耗的时间非常大,要进行多次高维的矩阵相乘,矩阵取反等高时间复杂度的操作,对于模型渲染的时间较长。CPU+GPU协作裁剪算法是CPU与GPU共同协作完成的,调整CPU与GPU的数据处理量来达到负载平衡,可以使得两者效用发挥到最大。实现CPU+GPU的异构并行,需要协调两者时钟周期,计算能力,存储能力,线程管理等。优点是拥有集群级并行支持以及统一计算设备架构(CUDA,ComputeUnifiedDeviceArchitecture)提供节点级的并行支持,系统整体计算性能得到极大的提高,同时又能保证运行的效果良好。CPU+GPU协作裁剪算法的局限性在于,需要对CPU和GPU架构进行编写,算法逻辑非常复杂,不易于实现;同时由于该算法涉及底层硬件计算,往往收到平台硬件类型的影响,不具有广泛支持性。
技术实现思路
上述方法都没能很好的协调三维空间模型渲染中速度、效果、跨平台和易实现的问题。为了克服上述现有技术的不足,本专利技术提供了基于点线面的三维空间几何虚拟模型细节层次裁剪方法,该方法基于三维空间中几何模型的固有点线面性质来进行裁剪,不需要进行中间的转换,结合改进之后的细节层次裁剪方法,成功应用于三维空间几何虚拟模型的细节层次裁剪问题。细节层次算法描述了在物体远离摄像机的时候,可以使用分辨率较低的模型,即复杂度比原型要低,但是由于距离较远,差别就显得细微而不可见了。如何在不影响视觉效果情况下降低三维模型复杂度一直是细节层次算法的重点。由于模型得到了简化,在一定程度上会提高模型的渲染速度,降低渲染的顶点数和三角形数。本专利技术基于点线面的三维空间几何虚拟模型细节层次裁剪方法,具体方法如下:(1)网格属性拆分并建立有序索引列表通过分离原始网格顶点属性、顶点中法线属性、格面贴图属性、格面颜色属性以及三角形,获取不同材质所对应的三角形数组,将各个三角形数组合并成不同的子网格数组。为了在后面的双顶点查找能够快速有效的进行,需要建立一个有序的索引列表,有序顶点索引列表最终以xyz由小到大顺序进行排列。有序顶点索引列表最终以顶点的三维坐标值,按照x,y,z坐标的优先级顺序,从小到大进行排列;例如a(2,5,7)和b(2,8,4)则a的坐标值小于b,因为a.y<b.y。(2)查找位置共享属性顶点以及纹理共享属性顶点该系统简化顶点主要依据就是:去除相似顶点,保留独立顶点或者重要顶点,如果能存在多个子网格中的共同顶点,说明该顶点具有多种材质共享,属于重要顶点,要把它们找出来,通过遍历三角形数组每个顶点,找出子网格共存顶点;通过将需要查找的顶点坐标传入有序索引列表进行遍历,找出相同的顶点索引。这里的子网格共存顶点和有序列表中的共同索引就是位置共享属性顶点和纹理共享属性顶点。(3)建立关联三角形数组和相邻三角形数组每个顶点都有许多三角形共享,获取这些三角形对后面的算法起到关键作用,三角形数组值就是顶点的索引,把相同的索引合并即可。由于每一个三角形的三个角都有许多个相邻三角形,上一方法只是将每个顶点与有关三角形下标对应起来,但并没有根据顶点提取具体的三角形数组,本方法是对上一方法的补充,针对每一顶点,通过比较x,y,z坐标值,当两个三角形的某一顶点坐标值相等时说明两者为相邻三角形;所以可以通过获取该顶点具有所有相同值的三角形数组来得到所有的相邻三角形,在后面计算顶点角度和以及贴图的拉伸时候就需要用到相邻三角形。拆分当前三角形的三个顶点,获取第一顶点所关联的三角形组,将该组添加进空的相邻三角形数组,然后将该组添加进已遍历三角形组,对该组相邻三角形组设置唯一组号,获取第二和第三顶点所关联的三角形组,如果该三角形数组已经遍历,则丢弃当前获取的三角形,如果没有,则添加进相邻三角形数组,将该组添加进已遍历三角形组,对该组相邻三角形组设置唯一组号。(4)计算顶点角度和权重网格中每个顶点其实都被许多相邻三角形共享着,这些共享顶点角度的和决定了该顶点位于网格中独特的位置。如果和为0度,则属于简化顶点;如果和为180度,该顶点处于网格边上;如果和为360度,则该顶点处于网格内部。邻边的创建使用两个顶点的向量差。利用前面相邻三角形,把所有角度求和即可得总度数,可以通过以下公式来计算权重:Vertex_Weight=Sub_Vertex_Weight+1Side_Weight+=Vertex_Weight*AreaSide_Weight+=Angle*Side_LengthSide_Weight+=Total_Angle*AreaSide_Weight+=(New–Old)*Total_Angle*Area其中Vertex_Weight表示该坐标值权重,Sub_Vertex_Weight表示子顶点权重,Side_Weight表示边权重,Area表示该边对应三角形面积,Angl本文档来自技高网
...

【技术保护点】
1.一种基于点线面的三维空间几何虚拟模型细节层次裁剪方法,其特征在于,包括:第一步:将几何模型的原始网格顶点属性、顶点中法线属性、格面贴图属性、格面颜色属性与原始三角形集合分离出来,对提取出来的顶点集合建立一个排序数组,同时建立有序索引列表;第二步:通过所述分离出来的三角形集合,查找模型原始网格中的具有纹理共享属性顶点,并进行标记;并通过所述有序索引列表,查找模型原始网格中的具有位置共享属性顶点,并进行标记;第三步:通过所述含有标记的三角形集合,根据原始顶点坐标,建立模型网格关联三角形数组;通过所述关联三角形数组,根据共享顶点或边,建立模型网格相邻三角形数组;第四步:通过所述相邻三角形数组,计算每个顶点的角度和并且计算权重;第五步:通过第三步中相邻三角形数组,计算每个三角形的中心距并且计算权重;第六步:通过判断折叠前后的贴图及三角形面积变化,计算相关边权重;第七步:将以上所有权重以向量形式进行相加,通过权值高低进行区域重要性比较,对重要性高的区域进行保留,非重要或者不重要的区域进行裁剪,完成对整个模型的简化操作。

【技术特征摘要】
1.一种基于点线面的三维空间几何虚拟模型细节层次裁剪方法,其特征在于,包括:第一步:将几何模型的原始网格顶点属性、顶点中法线属性、格面贴图属性、格面颜色属性与原始三角形集合分离出来,对提取出来的顶点集合建立一个排序数组,同时建立有序索引列表;第二步:通过所述分离出来的三角形集合,查找模型原始网格中的具有纹理共享属性顶点,并进行标记;并通过所述有序索引列表,查找模型原始网格中的具有位置共享属性顶点,并进行标记;第三步:通过所述含有标记的三角形集合,根据原始顶点坐标,建立模型网格关联三角形数组;通过所述关联三角形数组,根据共享顶点或边,建立模型网格相邻三角形数组;第四步:通过所述相邻三角形数组,计算每个顶点的角度和并且计算权重;第五步:通过第三步中相邻三角形数组,计算每个三角形的中心距并且计算权重;第六步:通过判断折叠前后的贴图及三角形面积变化,计算相关边权重;第七步:将以上所有权重以向量形式进行相加,通过权值高低进行区域重要性比较,对重要性高的区域进行保留,非重要或者不重要的区域进行裁剪,完成对整个模型的简化操作。2.如权利要求1所述的基于点线面的三维空间几何虚拟模型细节层次裁剪方法,其特征在于,所述第四步中计算每个顶点的角度和并且计算权重具体为:利用所述相邻三角形,把所有角度求和即可得总度数,并通过以下公式来计算权重:Vertex_Weight=Sub_Vertex_Weight+1Side_Weight+=Vertex_Weight*AreaSide_Weight+=Angle*Side_LengthSide_Weight+=Total_Angle*AreaSide_Weight+=(New–Old)*Total_Angle*Area其中Vertex_Weight表示该坐标值权重,Sub_Vertex_Weight表示子顶点权重,Side_Weight表示边权重,Area表示该边对应三角形面积,Angle表示该边上顶点的角度,Side_Length表示该边长度,Total_Angle表示该边对应三角形角度和,New和Old表示边折叠前后的三角形变化。3.如权利要求2所述的基于点线面的三维空间几何虚拟模型细节层次裁剪方法,其特征在于,所述第五步中计算每个三角形的中心距并且计算权重具体为:以计算顶点相关三角形的平均中心距来代替顶点本身的中心距值,并通过以下公式来计算权重:Weight1=(New–Old)*NormalWeight2=(New–Old)*Total_Center_DistanceSide_Weight+=Weight1*Weight2其中Weight1表示法线权重,Normal表示三角形法线值,Weight2表示中心距权重,Total_Center_Distance表示中心距值。4.如权利要求3所述的基于点线面的三维空间几何虚拟模型细节层次裁剪方法,其特征在于,所述第六步中计算相关边权重具体为:获取三角形的三个顶点,读取贴图数组获取三个顶点的贴图坐标,求三角形面积以及贴图面积,循环检测三个顶点两两合并时,三角形面积的变化和贴图面积的变化,记录下前后的各个面积值,并通过以下公式来计算权重:Side_Weight+=Weight+(New–Old)*AreaSide_Weight+=Weight+(New–Old)*UV_Area其中Weight表示折叠边原有权重,UV_Area表示贴图面积。5.如权利...

【专利技术属性】
技术研发人员:黄怀霖陈宁江
申请(专利权)人:广西大学
类型:发明
国别省市:广西,45

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

1