CN113902887A - 三维可视边生成方法、系统、计算机及可读存储介质 - Google Patents
三维可视边生成方法、系统、计算机及可读存储介质 Download PDFInfo
- Publication number
- CN113902887A CN113902887A CN202111280006.5A CN202111280006A CN113902887A CN 113902887 A CN113902887 A CN 113902887A CN 202111280006 A CN202111280006 A CN 202111280006A CN 113902887 A CN113902887 A CN 113902887A
- Authority
- CN
- China
- Prior art keywords
- primitive
- edge
- dimensional
- wire frame
- viewport
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000000007 visual effect Effects 0.000 title claims abstract description 18
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 230000009466 transformation Effects 0.000 claims abstract description 56
- 239000011159 matrix material Substances 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000005520 cutting process Methods 0.000 claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013519 translation Methods 0.000 claims description 6
- 230000030279 gene silencing Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 8
- 230000002349 favourable effect Effects 0.000 abstract description 3
- 230000001788 irregular Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种三维可视边生成方法、系统、计算机及可读存储介质,该方法包括:计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框;根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。本申请提供的三维可视边生成方法能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边及其图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种三维可视边生成方法、系统、计算机及可读存储介质。
背景技术
随着科学的进步以及生产力的快速发展,人们已经能够设计并制造出多种元器件以及设备,并在人们的日常生活中得到应用,极大的方便了人们的生活。
其中,在上述元器件以及设备生产之前,都需要首先构建出对应的三维模型,再通过该三维模型生成对应的二维图纸,以进行具体的生产制造。在此之中,三维可视边生成方法,即隐藏线消除(Hidden Line Removal),是三维模型转成二维图纸的重要步骤之一,它是一种从线框模型表示的三维场景中消去不可见边的算法。在三维CAD工程应用中,三维可视边生成方法常用于根据三维模型自动生成可用于指导生产及装配的二维图纸,也即二维出图。
然而,现有技术对大型三维模型的处理成本较高,使得无法满足大部分用户的使用需求,从而不利于大范围的推广与使用。
发明内容
基于此,本发明的目的是提供一种三维可视边生成方法、系统、计算机及可读存储介质,以解决现有技术对大型三维模型的处理成本较高,使得无法满足大部分用户使用需求的问题。
本发明第一方面提出了一种三维可视边生成方法,所述方法包括:
计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
本发明的有益效果是:本申请首先通过计算出需要的MVP变换矩阵并获取图元三维模型,且对该图元三维模型进行初始化处理,以定义出各个图元数据集,再通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,最后根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,从而可以生成三维可视边。本申请提供的三维可视边生成方法能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边及其图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
本发明第二方面提出了一种三维可视边生成系统,该系统包括:
初始化模块,用于计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
处理模块,用于通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
生成模块,用于根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
本发明第三方面提出了一种计算机,其包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上面所述的三维可视边生成方法。
本发明第四方面提出了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上面所述的三维可视边生成方法。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明第一实施例提供的三维可视边生成方法的流程图;
图2为本发明第二实施例提供的三维可视边生成方法的流程图;
图3为本发明第三实施例提供的三维可视边生成系统的结构框图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,所示为本发明第一实施例提供的三维可视边生成方法,需要说明的是,该方法主要用于处理大场景三维模型计算,例如用于三维建筑、三维电力等领域对全站模型进行出图的场景,并且本方法的处理效率高,从而能够大幅降低大型三维模型的处理成本。
具体的,本实施例提供的三维可视边生成方法具体包括以下步骤:
步骤S10,计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
具体的,在本实施例中,首先需要说明的是,上述MVP变换矩阵可用于后续三维模型上的点在二维视口平面上的投影计算,以及根据二维视口平面上的投影点反向计算三维模型上的点。该MVP变换矩阵由三部分组成:模型变换矩阵M、视口变换矩阵V和投影变换矩阵P。其中,上述MVP变换矩阵为:MVP=M*V*P。
另外,在本步骤中,还会获取图元三维模型,上述图元三维模型由大量图元组合而成,在本实施例中,上述图元三维模型可由用户通过CA软件自行创建或者由外部数据导入获得。
进一步的,当获取到图元三维模型过后,就会对该图元三维模型的图元数据集进行初始化处理,具体的,本实施例会将上述图元定义包含8项数据信息,分别为:拓扑面集合、三角片集合、二维视口投影区域、线框边集合、自消隐结果边集合、互相消隐结果边集合、断边修复结果边集合以及二维可视边集合。
步骤S20,通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
进一步的,在本实施例中,会对获取到的图元三维模型进行三维可视边处理,具体的,本实施例会通过视锥裁剪移除不在视锥内的图元,其中,视锥为本领域技术人员的公知常识,即视线从人的眼睛放射出去,呈一抽象的圆锥状,即叫做视锥。
更进一步的,本实施例再提取出存在于上述视锥内的图元对应的图元线框,其中,该图元线框包括锐边和轮廓边,并且上述锐边为所述图元三维模型的边界边,上述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边。
步骤S30,根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
最后,在本步骤中,会根据预设的消隐算法来消隐掉通过上述步骤S20获取到的图元线框中被遮挡的线条,与此同时,再通过预设程序来对上述图元线框中的断边进行修复,从而能够生成完整的三维可视边。与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本。
使用时,首先通过计算出需要的MVP变换矩阵并获取图元三维模型,且对该图元三维模型进行初始化处理,以定义出各个图元数据集,再通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,最后根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,从而可以生成三维可视边。本申请提供的三维可视边生成方法能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
需要说明的是,上述的实施过程只是为了说明本申请的可实施性,但这并不代表本申请的三维可视边生成方法只有上述唯一一种实施流程,相反的,只要能够将本申请的三维可视边生成方法实施起来,都可以被纳入本申请的可行实施方案。
综上,本发明上述实施例当中的三维可视边生成方法能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
请参阅图2,所示为本发明第二实施例提供的三维可视边生成方法,该三维可视边生成方法具体包括以下步骤:
步骤S11,计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
在本实施例中,需要说明的是,上述MVP变换矩阵包括模型变换矩阵M、视口变换矩阵V以及投影变换矩阵P;
其中,所述MVP变换矩阵为:MVP=M*V*P,并通过如下方式计算得到上述MVP变换矩阵;
其中,所述模型变换矩阵M为:
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
其中,(ex,ey,ez)为视点坐标;
所述视口变换矩阵V为:
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
其中,w为视口像素图宽,h为视口像素图高,从而能够计算得到上述MVP变换矩阵。
在本实施例中,经过上述初始化处理过后,上述图元被定义为包含8项数据信息,分别为:拓扑面集合、三角片集合、二维视口投影区域、线框边集合、自消隐结果边集合、互相消隐结果边集合、断边修复结果边集合以及二维可视边集合。其中,拓扑面集合和三角片集合为图元拓扑已知信息;二维视口投影区域在视锥裁剪中进行计算;线框边集合在线框提取中计算;自消隐结果边集合在自消隐中计算;互相消隐结果边集合在互相消隐中计算;断边修复结果边集合在断边修复中计算;二维可视边集合在可视边生成中计算。
其中,Fi为第i个图元的拓扑面集合,Ti为第i个图元的三角片集合,Ri为第i个图元的二维视口投影区域,WEi为第i个图元的线框边集合,SEi为第i个图元的自消隐结果边集合,HEi为第i个图元的互相消隐结果边集合,REi为第i个图元的断边修复结果边集合,VEi为第i个图元的可视边集合,i=1,2,...,N,N为自然数,从而能够完成对上述图元三维模型的图元数据集进行初始化处理。
步骤S21,获取各个所述图元的裁剪标记;当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元;
所述裁剪标记为:
其中,R为视口像素图区域,,(u,v)为视口像素图区域内任意像素,w为视口像素图宽,h为视口像素图高;Ri为第i个图元在视口平面上的二维投影区域,,(u,v)为视口像素图区域内任意像素,Xmin为第i个图元包围盒8个顶点在视口平面上投影点的最小横坐标取整,Xmax为第i个图元包围盒8个顶点在视口平面上投影点的最大横坐标取整,Ymin为第i个图元包围盒8个顶点在视口平面上投影点的最小纵坐标取整,Ymax为第i个图元包围盒8个顶点在视口平面上投影点的最大纵坐标取整。
步骤S31,提取所述图元线框,以得到所述图元线框对应的图元线框边集合;根据所述图元线框边集合进行轮廓边计算;
所述图元线框边集合WEi为:
其中,为第i个图元的锐边集合,由第i个图元的拓扑面集合Fi中平面类型的面直接提取边界边生成;为第i个图元的轮廓边集合,由第i个图元的拓扑面集合Fi中曲面类型的面和视口法向量N计算而来,视口法向量N为已知视锥参数。
具体的,在本步骤中,具体包括球曲面轮廓边计算、圆柱曲面轮廓边计算以及不规则曲面轮廓边计算。
其中,球曲面轮廓边计算为:
圆柱曲面轮廓边计算为:
其中,O为圆柱曲面底部圆心,h为圆柱曲面高,N为视口平面法向量,y为圆柱的轴方向,是圆柱曲面已知拓扑参数,x为圆柱底面圆起始扫角方向,x由N和y叉乘而来。
不规则曲面轮廓边计算:
不是以上两种规则的曲面,记为不规则曲面。不规则曲面采用开源几何内核OCC中的ContapContour算法进行轮廓边计算。
步骤S41,根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边;
在本步骤中,需要说明的是,上述预设算法包括自消隐计算以及互相消隐计算,具体的,自消隐也即去除图元线框边中被模型自身遮挡的部分;互相消隐是指去除某一图元的线框边被其他图元遮挡的部分。其中,上述自消隐计算包括球图元自消隐、圆柱图元自消隐、凸多面体图元自消隐以及非规则图元自消隐。
其中,球图元自消隐为:
假设第i图元为球图元,则其自消隐结果边SEi为:
其中type为第i图元的拓扑类型,为图元已知属性,WEi为球图元的线框边集合。
圆柱图元自消隐为:
假设第i图元为圆柱图元,根据视口法向量N和圆柱轴方向的位置关系的不同,圆柱图元的自消隐计算分为两种情况:
情况1:视口方向N垂直于圆柱轴方向y;
情况1对应的圆柱图元自消隐结果边SEi为:
其中,type为第i图元的拓扑类型,为图元已知属性;Arc为圆弧方程,由圆心、半径、轴向量、起点和终点5项参数确定;Line为直线方程,由起点和终点确定;O为圆柱底面圆圆心,r为圆柱半径,y为圆柱轴方向向量,为已知圆柱拓扑参数,为圆柱顶面圆圆心,P0-P3为圆柱侧面轮廓线的四个端点,由上述步骤S31计算而来。
情况2:视口方向N不垂直于圆柱轴方向y;
情况2对应的圆柱图元自消隐结果边SEi为:
其中,type为第i图元的拓扑类型,为图元已知属性;Circle为圆方程,由圆心、半径和轴向量三个参数确定;Arc为圆弧方程,由圆心、半径、轴向量、起点和终点5项参数确定;Line为直线方程,由起点和终点确定;O为圆柱底面圆圆心,r为圆柱半径,y为圆柱轴方向向量,为已知圆柱拓扑参数,为圆柱顶面圆圆心,P0-P3为圆柱侧面轮廓线的四个端点,由上述步骤S31计算而来。
凸多面体图元自消隐为:
假设第i图元为凸多面体图元,则其自消隐结果边SEi为:
凸多面体的可视边由所有正面所对应的边组成,因此有:
其中,type为第i图元的拓扑类型,为图元已知属性;Ej为第j条自消隐结果边,0<j<k,k为自然数,,表示线框边中所有正面所对应的边,WEi为第i图元的线框边集合,E.F.Nor表示当前线框边所在面的法向量,为已知图元拓扑参数,N为视口法向量。
非规则图元自消隐为:
不是以上三种规则类型的图元,记为非规则图元。非规则图元的自消隐计算在后续网格消隐中与互相消隐同时执行。
在本实施例中,需要说明的是,上述根据预设算法消隐所述图元线框中被遮挡的线条的步骤包括上述自消隐和互相消隐,其中,该互相消隐包括如下步骤:
将二维视口像素图划分为多个网格单元,并收集各个所述网格单元内的图元数据,以得到网格数据集;
对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条。
具体的,上述互相消隐的具体操作步骤为:
本实施例提出了一种新的基于Z-Buffer和分治策略的互相消隐方法,该方法通过将二维视口像素图划分为m*n个网格单元,通过网格区域限定来降低图元互相消隐配对数,进而减少算法计算开销。另外,每个网格的消隐计算互相独立,采用并行计算技术进行加速,在网格内图元可视边结果输出时可能存在线程冲突,此时通过互斥锁进行线程同步。除此之外,本实施例提出的互相消隐方法在移除不可见边时,会在自消隐的基础上,继续考虑图元自身遮挡的情况,从而可以解决非规则图元的自消隐问题。
该互相消隐计算分为两步执行:
1、网格划分
将二维视口像素图划分为m*n个网格单元,收集每个网格内图元数据,得到网格数据集G为:
其中,Gj为第j个网格的数据,j=1,2,...,m*n,m为像素图横向拆分数目,n为像素图纵向拆分数目,m和n均为大于1的自然数,m的默认值为80,n的默认值为60,二者均可根据实际场景进行调整;
第j个网格的二维像素区域GRj为:
其中,u、v为GRj内的像素坐标,r为第j个网格在整个网格分布中的行号,c第j个网格在整个网格分布中的列号,m为像素图横向拆分数目,n为像素图纵向拆分数目,w为视口像素图宽,h为视口像素图高。
第j个网格的二维像素区域GSj为:
其中Sk为在第j个网格内存在投影的图元,也即第j个网格的图元数据集中的第k个图元,k为自然数,k≤N,N为整个场景的图元数目;S为当前三维场景的图元数据集;Sk.Rk.umin为图元Sk的投影区域的u向像素最小值,Sk.Rk.umax为图元Sk的投影区域的u向像素最大值;Sk.Rk.vmin为图元Sk的投影区域的v向像素最小值,Sk.Rk.vmax为图元Sk的投影区域的v向像素最大值;GRj.umin为第j个网格的像素图区域u向像素最小值;GRj.umax为第j个网格的像素图区域u向像素最大值;GRj.vmin为第j个网格的像素图区域v向像素最小值;GRj.vmax为第j个网格的像素图区域v向像素最大值。
2、网格可视边计算
在本实施例中,需要说明的是,上述对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条的步骤包括如下具体步骤:
对各个所述网格单元对应的网格区域进行方法处理,并计算出各个所述网格单元对应的网格像素图;
根据所述网格像素图的深度值消除所述网格单元内完全不可见的图元,并对各个所述网格单元进行边拆分处理;
根据所述边拆分过后的可见性事实进行可见性判定,并根据所述可见性判定的结果将可见边按照所属图元的编号加入到对应的图元消音边集合中。
具体的,本实施例提出了一种新的基于边拆分的网格可视边计算方法,该方法基于以下事实进行设计:三维场景的线框图中,根据边与边的交点可将边拆分为多段,此时场景中的所有断开边要么完全可见,要么完全不可见。
根据以上事实,如图3所示,网格可视边计算方法分为六步执行,
1)放大网格区域
已知第j网格的二维像素区域为GRj,为了提升基于Z-Buffer像素图的消隐算法精度,降低单像素内根据边相交进行拆分算法复杂度,对网格区域GRj进行放大。记网格区域GRj放大K倍后的像素区域为SGRj,有:
2)计算网格像素图
设第j个网格的网格像素图为GMj,则
其中,Prc为第j个网格的网格像素图GMj中第r行、第c列的像素数据,其中1≤r≤u,1≤c≤v,u、v为第j个网格的网格像素图GMj的最大行数和最大列数。
第j个网格的网格像素图GMj的计算方法如下:
提取第j个网格的图元数据集GSj中每个图元的三角片列表,记Si为GSj中第i个图元,其三角片列表为Ti,由图元拓扑数据获得;
三角片MVP变换
其中,umin、vmin取P0、P1、P2三个投影点的最小横、纵像素坐标,umax、vmax取P0、P1、P2三个投影点的最大横、纵像素坐标。
更新像素图GMj
其中,P0、P1、P2为三角片Ti的三个顶点经MVP变换后的投影点,w1、w2为重心权重系数,该系数由克莱姆法则求解得到,w1=D1/D,w2 = D2/D,其中D、D1、D2计算公式如下:
如果w1≥0,w2≥0,w1+w2≤1,则像素点Vrc在投影三角形Trik内,则三角片Trik在像素Prc处的投影深度Drc为:
如果Drc≤Prc.dDepth,则更新像素图,也即Prc.dDepth =Drc,Prc.nShapeId =Si.nShapeId,将三角形Trik的唯一编号加入Prc.TriIds列表中,其中Si.nShapeId为图元Si的唯一编号。
重复步骤(2)(3)(4),完成图元Si的所有三角片计算,更新像素图GMj;
重复步骤(1)(2)(3)(4)(5),完成第j个网格的图元数据集GSj中所有图元的计算,更新像素图GMj。
3)剔除完全不可见图元
已知第j个网格的网格像素图GMj中某一像素为,其中Prc.nShapeId为其像素上投影深度值最小的图元编号。根据深度测试原理可知,在像素图GMj中未出现图元编号的图元为不可见图元。基于该项判据,移除第j个网格的图元数据集GSj中部分完全不可见图元,以减少后续计算开销。
4)边拆分
通常情况下单个网格内的线框图中边的分布往往比较复杂,直接按照边对边配对求交的方式进行边拆分,算法计算开销较大,无法满足实际应用性能需求。针对该问题,本发明提出了一种新的基于像素图的快速边拆分方法,它通过简单像素链相交性和一系列线段相交性检测(包围盒相交、是否平行、交点是否在线段上),优化了线框边相交计算,快速的获取三维线框边的拆分点。
如下所述,上述边拆分方法分为如下6步执行:
S1: 曲线边采样
网格线框视图中的边有两种类型:直线边、曲线边(圆、椭圆、B样条等),为了简化曲线边的求交,将其采样为直线串进行后续求交计算。经边采样后,网格线框视图中的边全部转化为直线段,从而将边求交转化为直线段求交。
S2: 计算边像素链
将网格线框视图中所有直线段经过MVP变换后,可得直线段像素链,进而可以利用边像素链求交进一步简化直线段求交。
记直线段L对应的像素链为LP,则:
在计算直线段L对应的像素链为LP时,如果存在像素不在当前网格范围内,则移除其对应像素分段,避免因为某个图元跨越多个网格,造成按网格进行互相消隐时消隐结果冲突问题。
S3: 计算边像素图
记第j个网格Gj的边像素图为GEMj,则有:
其中,Prc为第j个网格的边像素图GEMj中第r行、第c列的像素数据,其中1≤r≤u,1≤c≤v,u、v为第j个网格的边像素图GEMj的最大行数和最大列数。
边像素图填充方法为:遍历所有边像素链中的每一像素,根据像素坐标将其直线段唯一编号加入边像素图GEMj对应的像素的TriIds中即可。
S4: 边求交与边拆分
遍历第j网格的边像素图GEMj,对任意像素Prc,如果其直线段的唯一编号集合TriIds中边数目大于1,则存在边相交;进而根据直线段唯一编号进行两两配对求交,根据直线段交点将对应线框边一分为二。
根据包围盒相交性,判定线段是否相交,如果相交则继续计算,反之退出;
如果m不等于0,则两直线段不平行,继续计算,反之退出;
其中A为线段L1对应的三维线框边的拆分点,B为L2对应的三维线框边的拆分点,MVP-1表示MVP矩阵的逆。
5)可见性判定
记第j网格内经拆分后的图元的线框边集合为GSEj,根据拆分边可见性事实可知:GSEj中的边,要么完全可见,要么完全不可见。因此GSEj中任意一边ei的中间点Pc的可见性V(Pc)也即ei的可见性V(ei),也即:
其中,V为可见性判据,V(Pc)的可见性判定计算方法如下:
对三角片Trik执行MVP变换,可得:
根据三角形重心算法公式可得:
其中,w1、w2为重心权重系数,由克莱姆法则求解得到,w1=D1/D,w2 = D2/D,其中D、D1、D2由上述公式可得;
6)数据同步
根据可见性判定结果,将GSEj中的可见边,按照所属图元的唯一编号,加入对应图元Si的消隐结果边集合HEi中。
为了避免因多个网格同时对一个图元的HEi集合进行数据同步造成的线程冲突问题,本发明采用了互斥锁来确保数据同步的线程安全。
在本实施例中,会进行断边修复,具体的,由于消隐计算采用分治策略,将整个三维场景的线框边拆分为m*n个网格,其中边拆分时,网格边界会打断边,以去除网格消隐计算的互相影响,实现并行计算。但该项操作会将线框边过渡拆分,最终三维可视边结果会出现多个分段。
针对上述问题,本发明设计了一种断边修复机制:对于同一边,拆分为多段后,各个分段边均保持相同的边句柄,边分段通过参数区间加以区分。对任意图元Si的消隐边集合HEi中的边,按照边句柄进行分类,同一边句柄的边序列中,如果存在参数区域连续的情况,则通过合并参数区间修复断边。
每个图元断边修复计算互相独立,因此采用并行计算技术进行加速。
在本实施例中,还需要说明的是,在上述根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边的步骤之后,所述方法还包括:
步骤S51,通过所述MVP变换矩阵将所述三维可视边转换成对应的二维可视边;将所述二维可视边导出至工程图纸上。
具体的,任意图元Si的消隐边集合HEi中的边为三维可视边,而工程应用DWG图纸中输出的为投影平面上的二维边,因此最后再根据MVP变换矩阵将三维可视边变换为二维可视边,记为VEi。三维可视边分为:直线边和曲线边。
直线边的投影计算方法为:对其两个端点进行投影,连接投影点即可得到投影直线边;
曲线边的投影计算方法为:对曲线边进行等参采样,对采样点进行投影,得到投影点集后,以二维非均匀有理B样条曲线来拟合投影曲线边。
每个图元二维可视边生成计算互相独立,因此采用并行计算技术进行加速。
最后通过ODA File Converter组件,可导出至二维可视边图纸DWG中。
需要指出的是,本发明第二实施例所提供的方法,其实现原理及产生的一些技术效果和第一实施例相同,为简要描述,本实施例未提及之处,可参考第一实施例中相应内容。
综上,本发明上述实施例当中的三维可视边生成方法能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
请参阅图3,所示为本发明第三实施例提供的三维可视边生成系统,该系统包括:
初始化模块12,用于计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
处理模块22,用于通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
生成模块32,用于根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
其中,在上述三维可视边生成系统中,所述MVP变换矩阵包括模型变换矩阵M、视口变换矩阵V以及投影变换矩阵P;
其中,所述MVP变换矩阵为:MVP=M*V*P;
其中,所述模型变换矩阵M为:
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
所述视口变换矩阵V为:
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
其中,w为视口像素图宽,h为视口像素图高。
其中,在上述三维可视边生成系统中,所述处理模块22具体用于:
获取各个所述图元的裁剪标记;
当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元,所述裁剪标记为:
其中,R为视口像素图区域,,(u,v)为视口像素图区域内任意像素,w为视口像素图宽,h为视口像素图高;Ri为第i个图元在视口平面上的二维投影区域,,(u,v)为视口像素图区域内任意像素,Xmin为第i个图元包围盒8个顶点在视口平面上投影点的最小横坐标取整,Xmax为第i个图元包围盒8个顶点在视口平面上投影点的最大横坐标取整,Ymin为第i个图元包围盒8个顶点在视口平面上投影点的最小纵坐标取整,Ymax为第i个图元包围盒8个顶点在视口平面上投影点的最大纵坐标取整。
其中,在上述三维可视边生成系统中,所述处理模块22还具体用于:
提取所述图元线框,以得到所述图元线框对应的图元线框边集合;
根据所述图元线框边集合进行轮廓边计算,所述图元线框边集合WEi为:
其中,为第i个图元的锐边集合,由第i个图元的拓扑面集合Fi中平面类型的面直接提取边界边生成;为第i个图元的轮廓边集合,由第i个图元的拓扑面集合Fi中曲面类型的面和视口法向量N计算而来,视口法向量N为已知视锥参数。
所述处理模块22还用于:将二维视口像素图划分为多个网格单元,并收集各个所述网格单元内的图元数据,以得到网格数据集;
对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条。
所述处理模块22还用于:对各个所述网格单元对应的网格区域进行方法处理,并计算出各个所述网格单元对应的网格像素图;
根据所述网格像素图的深度值消除所述网格单元内完全不可见的图元,并对各个所述网格单元进行边拆分处理;
根据所述边拆分过后的可见性事实进行可见性判定,并根据所述可见性判定的结果将可见边按照所属图元的编号加入到对应的图元消音边集合中。
其中,在上述三维可视边生成系统中,所述三维可视边生成系统还包括转换模块42,所述转换模块42具体用于:
通过所述MVP变换矩阵将所述三维可视边转换成对应的二维可视边;
将所述二维可视边导出至工程图纸上。
本发明第四实施例提供了一种计算机,其包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一实施例或者第二实施例提供的三维可视边生成方法。
本发明第五实施例提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一实施例或者第二实施例提供的三维可视边生成方法。
综上所述,本发明上述实施例当中的三维可视边生成方法、系统、计算机及可读存储介质能够处理大规模的三维模型,同时能够精确的生成对应的三维可视边图像,与此同时,处理效率高,从而能够大幅降低大型三维模型的处理成本,能够有效的满足大部分用户的使用需求,有利于大范围的推广与使用。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种三维可视边生成方法,其特征在于,所述方法包括:
计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
2.根据权利要求1所述的三维可视边生成方法,其特征在于:所述MVP变换矩阵包括模型变换矩阵M、视口变换矩阵V以及投影变换矩阵P;
其中,所述MVP变换矩阵为:MVP=M*V*P;
其中,所述模型变换矩阵M为:
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
其中,(ex,ey,ez)为视点坐标;
所述视口变换矩阵V为:
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
其中,w为视口像素图宽,h为视口像素图高。
3.根据权利要求1所述的三维可视边生成方法,其特征在于:所述通过视锥裁剪移除不在所述视锥内的图元的步骤包括:
获取各个所述图元的裁剪标记;
当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元,所述裁剪标记为:
5.根据权利要求1所述的三维可视边生成方法,其特征在于:所述根据预设算法消隐所述图元线框中被遮挡的线条的步骤包括:
将二维视口像素图划分为多个网格单元,并收集各个所述网格单元内的图元数据,以得到网格数据集;
对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条。
6.根据权利要求5所述的三维可视边生成方法,其特征在于:所述对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条的步骤包括:
对各个所述网格单元对应的网格区域进行方法处理,并计算出各个所述网格单元对应的网格像素图;
根据所述网格像素图的深度值消除所述网格单元内完全不可见的图元,并对各个所述网格单元进行边拆分处理;
根据所述边拆分过后的可见性事实进行可见性判定,并根据所述可见性判定的结果将可见边按照所属图元的编号加入到对应的图元消音边集合中。
7.根据权利要求1所述的三维可视边生成方法,其特征在于:所述根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边的步骤之后,所述方法包括:
通过所述MVP变换矩阵将所述三维可视边转换成对应的二维可视边;
将所述二维可视边导出至工程图纸上。
8.一种三维可视边生成系统,其特征在于,所述系统包括:
初始化模块,用于计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
处理模块,用于通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
生成模块,用于根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的三维可视边生成方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的三维可视边生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280006.5A CN113902887B (zh) | 2021-11-01 | 2021-11-01 | 三维可视边生成方法、系统、计算机及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280006.5A CN113902887B (zh) | 2021-11-01 | 2021-11-01 | 三维可视边生成方法、系统、计算机及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113902887A true CN113902887A (zh) | 2022-01-07 |
CN113902887B CN113902887B (zh) | 2024-10-01 |
Family
ID=79027745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111280006.5A Active CN113902887B (zh) | 2021-11-01 | 2021-11-01 | 三维可视边生成方法、系统、计算机及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113902887B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115984458A (zh) * | 2022-12-12 | 2023-04-18 | 广东横琴全域空间人工智能有限公司 | 基于辐射场的目标物体模型提取方法、系统及控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063582A1 (en) * | 2003-08-29 | 2005-03-24 | Samsung Electronics Co., Ltd. | Method and apparatus for image-based photorealistic 3D face modeling |
CN101799937A (zh) * | 2010-03-23 | 2010-08-11 | 南京大学 | 一种采用草图创建三维模型的方法 |
CN102651145A (zh) * | 2012-04-06 | 2012-08-29 | 哈尔滨工业大学 | 股骨三维模型可视化方法 |
CN112991508A (zh) * | 2021-03-30 | 2021-06-18 | 赛瓦软件(上海)有限公司 | 一种基于WebGL的3D渲染系统及方法 |
-
2021
- 2021-11-01 CN CN202111280006.5A patent/CN113902887B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063582A1 (en) * | 2003-08-29 | 2005-03-24 | Samsung Electronics Co., Ltd. | Method and apparatus for image-based photorealistic 3D face modeling |
CN101799937A (zh) * | 2010-03-23 | 2010-08-11 | 南京大学 | 一种采用草图创建三维模型的方法 |
CN102651145A (zh) * | 2012-04-06 | 2012-08-29 | 哈尔滨工业大学 | 股骨三维模型可视化方法 |
CN112991508A (zh) * | 2021-03-30 | 2021-06-18 | 赛瓦软件(上海)有限公司 | 一种基于WebGL的3D渲染系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115984458A (zh) * | 2022-12-12 | 2023-04-18 | 广东横琴全域空间人工智能有限公司 | 基于辐射场的目标物体模型提取方法、系统及控制器 |
CN115984458B (zh) * | 2022-12-12 | 2023-10-03 | 广东横琴全域空间人工智能有限公司 | 基于辐射场的目标物体模型提取方法、系统及控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN113902887B (zh) | 2024-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110009743B (zh) | 一种场景理解的网格曲面重建方法 | |
CN108776993B (zh) | 带有孔洞的三维点云的建模方法及地下电缆工井建模方法 | |
US5774124A (en) | Finite element modeling method and computer system for converting a triangular mesh surface to a quadrilateral mesh surface | |
CN107767453B (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN101763649B (zh) | 一种增强模型轮廓的表面点绘制方法 | |
CN107680168B (zh) | 三维重建中基于平面拟合的网格简化方法 | |
US20160247067A1 (en) | Method and system for intelligent crane lifting | |
CN103530907B (zh) | 基于图像的复杂三维模型绘制方法 | |
CN107680154B (zh) | 基于视图的体素几何参数提取方法 | |
CN107545602B (zh) | 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法 | |
CN112365572B (zh) | 一种基于曲面细分的渲染方法及其相关产品 | |
CN105205861A (zh) | 基于Sphere-Board的树木三维可视化模型实现方法 | |
CN110009671A (zh) | 一种场景理解的网格曲面重建系统 | |
CN104392489B (zh) | 顾及拓扑的三维地理空间实体群的线消隐方法 | |
CN115984476A (zh) | 一种基于纹理的三维模型裁切方法 | |
CN118015197B (zh) | 一种实景三维逻辑单体化方法、装置及电子设备 | |
CN114359226A (zh) | 基于分层叠加和区域增长的三维模型组可视面积提取方法 | |
CN105243137B (zh) | 一种基于草图的三维模型检索视点选择方法 | |
CN113902887A (zh) | 三维可视边生成方法、系统、计算机及可读存储介质 | |
CN111210520A (zh) | 一种用于实物模型的逆向成形方法及系统 | |
KR101032397B1 (ko) | 구면 좌표계를 사용하는 3차원 형상 표현장치 및 방법 | |
CN108898679A (zh) | 一种零部件序号自动标注的方法 | |
JP7026029B2 (ja) | 画像処理装置、方法及びプログラム | |
CN106960469A (zh) | 一种快速分割三角形的光滑自由变形算法 | |
Spillmann et al. | Robust tetrahedral meshing of triangle soups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |