CN113902887A - 三维可视边生成方法、系统、计算机及可读存储介质 - Google Patents

三维可视边生成方法、系统、计算机及可读存储介质 Download PDF

Info

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.)
Pending
Application number
CN202111280006.5A
Other languages
English (en)
Inventor
于雪
曾江佑
杨佳东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangxi Booway New Technology Co ltd
Original Assignee
Jiangxi Booway New Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangxi Booway New Technology Co ltd filed Critical Jiangxi Booway New Technology Co ltd
Priority to CN202111280006.5A priority Critical patent/CN113902887A/zh
Publication of CN113902887A publication Critical patent/CN113902887A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing 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为:
Figure RE-991808DEST_PATH_IMAGE001
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
Figure RE-434422DEST_PATH_IMAGE002
其中,(ex,ey,ez)为视点坐标;
所述视口变换矩阵V为:
Figure RE-326155DEST_PATH_IMAGE003
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
Figure RE-978853DEST_PATH_IMAGE004
其中,w为视口像素图宽,h为视口像素图高,从而能够计算得到上述MVP变换矩阵。
在本实施例中,经过上述初始化处理过后,上述图元被定义为包含8项数据信息,分别为:拓扑面集合、三角片集合、二维视口投影区域、线框边集合、自消隐结果边集合、互相消隐结果边集合、断边修复结果边集合以及二维可视边集合。其中,拓扑面集合和三角片集合为图元拓扑已知信息;二维视口投影区域在视锥裁剪中进行计算;线框边集合在线框提取中计算;自消隐结果边集合在自消隐中计算;互相消隐结果边集合在互相消隐中计算;断边修复结果边集合在断边修复中计算;二维可视边集合在可视边生成中计算。
在本实施例中,假设三维场景由N个图元组成,图元数据集为
Figure RE-348655DEST_PATH_IMAGE005
,记Si为图元数据集S中第i个图元,且i=1,2,…,N,则
Figure RE-895042DEST_PATH_IMAGE006
其中,Fi为第i个图元的拓扑面集合,Ti为第i个图元的三角片集合,Ri为第i个图元的二维视口投影区域,WEi为第i个图元的线框边集合,SEi为第i个图元的自消隐结果边集合,HEi为第i个图元的互相消隐结果边集合,REi为第i个图元的断边修复结果边集合,VEi为第i个图元的可视边集合,i=1,2,...,N,N为自然数,从而能够完成对上述图元三维模型的图元数据集进行初始化处理。
步骤S21,获取各个所述图元的裁剪标记;当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元;
所述裁剪标记为:
Figure RE-957676DEST_PATH_IMAGE007
其中,R为视口像素图区域,
Figure RE-832091DEST_PATH_IMAGE008
,(u,v)为视口像素图区域内任意像素,w为视口像素图宽,h为视口像素图高;Ri为第i个图元在视口平面上的二维投影区域,
Figure RE-271163DEST_PATH_IMAGE009
,(u,v)为视口像素图区域内任意像素,Xmin为第i个图元包围盒8个顶点在视口平面上投影点的最小横坐标取整,Xmax为第i个图元包围盒8个顶点在视口平面上投影点的最大横坐标取整,Ymin为第i个图元包围盒8个顶点在视口平面上投影点的最小纵坐标取整,Ymax为第i个图元包围盒8个顶点在视口平面上投影点的最大纵坐标取整。
步骤S31,提取所述图元线框,以得到所述图元线框对应的图元线框边集合;根据所述图元线框边集合进行轮廓边计算;
所述图元线框边集合WEi为:
Figure RE-422790DEST_PATH_IMAGE010
其中,
Figure RE-656325DEST_PATH_IMAGE011
为第i个图元的锐边集合,由第i个图元的拓扑面集合Fi中平面类型的面直接提取边界边生成;
Figure RE-18036DEST_PATH_IMAGE012
为第i个图元的轮廓边集合,由第i个图元的拓扑面集合Fi中曲面类型的面和视口法向量N计算而来,视口法向量N为已知视锥参数。
具体的,在本步骤中,具体包括球曲面轮廓边计算、圆柱曲面轮廓边计算以及不规则曲面轮廓边计算。
其中,球曲面轮廓边计算为:
球面的轮廓边
Figure RE-729640DEST_PATH_IMAGE013
为:
Figure RE-250620DEST_PATH_IMAGE014
其中,
Figure RE-655057DEST_PATH_IMAGE015
为圆方程,由圆心、半径和轴向量确定;O为球曲面的球心,也是圆形轮廓边的圆心;r为球曲面半径,也是圆形轮廓边的半径;N为视口法向量,也即圆形轮廓边的轴向量。
圆柱曲面轮廓边计算为:
圆柱面的轮廓边
Figure RE-504064DEST_PATH_IMAGE016
为:
Figure RE-19359DEST_PATH_IMAGE017
其中,
Figure RE-411157DEST_PATH_IMAGE018
为直线段方程,由起点和终点确定;圆柱面的两条直线段轮廓边的四个顶点P0-P3分别为:
Figure RE-986495DEST_PATH_IMAGE019
其中,O为圆柱曲面底部圆心,h为圆柱曲面高,N为视口平面法向量,y为圆柱的轴方向,是圆柱曲面已知拓扑参数,x为圆柱底面圆起始扫角方向,x由N和y叉乘而来。
不规则曲面轮廓边计算:
不是以上两种规则的曲面,记为不规则曲面。不规则曲面采用开源几何内核OCC中的ContapContour算法进行轮廓边计算。
步骤S41,根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边;
在本步骤中,需要说明的是,上述预设算法包括自消隐计算以及互相消隐计算,具体的,自消隐也即去除图元线框边中被模型自身遮挡的部分;互相消隐是指去除某一图元的线框边被其他图元遮挡的部分。其中,上述自消隐计算包括球图元自消隐、圆柱图元自消隐、凸多面体图元自消隐以及非规则图元自消隐。
其中,球图元自消隐为:
假设第i图元为球图元,则其自消隐结果边SEi为:
Figure RE-322799DEST_PATH_IMAGE020
其中type为第i图元的拓扑类型,为图元已知属性,WEi为球图元的线框边集合。
圆柱图元自消隐为:
假设第i图元为圆柱图元,根据视口法向量N和圆柱轴方向的位置关系的不同,圆柱图元的自消隐计算分为两种情况:
情况1:视口方向N垂直于圆柱轴方向y;
情况1对应的圆柱图元自消隐结果边SEi为:
Figure RE-766418DEST_PATH_IMAGE021
其中,type为第i图元的拓扑类型,为图元已知属性;Arc为圆弧方程,由圆心、半径、轴向量、起点和终点5项参数确定;Line为直线方程,由起点和终点确定;O为圆柱底面圆圆心,r为圆柱半径,y为圆柱轴方向向量,为已知圆柱拓扑参数,
Figure RE-871777DEST_PATH_IMAGE023
为圆柱顶面圆圆心,P0-P3为圆柱侧面轮廓线的四个端点,由上述步骤S31计算而来。
情况2:视口方向N不垂直于圆柱轴方向y;
情况2对应的圆柱图元自消隐结果边SEi为:
Figure RE-618017DEST_PATH_IMAGE024
其中,type为第i图元的拓扑类型,为图元已知属性;Circle为圆方程,由圆心、半径和轴向量三个参数确定;Arc为圆弧方程,由圆心、半径、轴向量、起点和终点5项参数确定;Line为直线方程,由起点和终点确定;O为圆柱底面圆圆心,r为圆柱半径,y为圆柱轴方向向量,为已知圆柱拓扑参数,
Figure RE-176037DEST_PATH_IMAGE023
为圆柱顶面圆圆心,P0-P3为圆柱侧面轮廓线的四个端点,由上述步骤S31计算而来。
凸多面体图元自消隐为:
假设第i图元为凸多面体图元,则其自消隐结果边SEi为:
凸多面体的可视边由所有正面所对应的边组成,因此有:
Figure RE-174080DEST_PATH_IMAGE025
其中,type为第i图元的拓扑类型,为图元已知属性;Ej为第j条自消隐结果边,0<j<k,k为自然数,
Figure RE-133946DEST_PATH_IMAGE026
,表示线框边中所有正面所对应的边,WEi为第i图元的线框边集合,E.F.Nor表示当前线框边所在面的法向量,为已知图元拓扑参数,N为视口法向量。
非规则图元自消隐为:
不是以上三种规则类型的图元,记为非规则图元。非规则图元的自消隐计算在后续网格消隐中与互相消隐同时执行。
在本实施例中,需要说明的是,上述根据预设算法消隐所述图元线框中被遮挡的线条的步骤包括上述自消隐和互相消隐,其中,该互相消隐包括如下步骤:
将二维视口像素图划分为多个网格单元,并收集各个所述网格单元内的图元数据,以得到网格数据集;
对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条。
具体的,上述互相消隐的具体操作步骤为:
本实施例提出了一种新的基于Z-Buffer和分治策略的互相消隐方法,该方法通过将二维视口像素图划分为m*n个网格单元,通过网格区域限定来降低图元互相消隐配对数,进而减少算法计算开销。另外,每个网格的消隐计算互相独立,采用并行计算技术进行加速,在网格内图元可视边结果输出时可能存在线程冲突,此时通过互斥锁进行线程同步。除此之外,本实施例提出的互相消隐方法在移除不可见边时,会在自消隐的基础上,继续考虑图元自身遮挡的情况,从而可以解决非规则图元的自消隐问题。
该互相消隐计算分为两步执行:
1、网格划分
将二维视口像素图划分为m*n个网格单元,收集每个网格内图元数据,得到网格数据集G为:
Figure RE-51086DEST_PATH_IMAGE027
其中,Gj为第j个网格的数据,j=1,2,...,m*n,m为像素图横向拆分数目,n为像素图纵向拆分数目,m和n均为大于1的自然数,m的默认值为80,n的默认值为60,二者均可根据实际场景进行调整;
定义
Figure RE-361982DEST_PATH_IMAGE028
,其中r为第j个网格在整个网格分布中的行号和c第j个网格在整个网格分布中的列号,GRj为第j个网格的二维像素区域,GSj为在第j个网格内的图元数据集。
第j个网格的二维像素区域GRj为:
Figure RE-147404DEST_PATH_IMAGE029
其中,u、v为GRj内的像素坐标,r为第j个网格在整个网格分布中的行号,c第j个网格在整个网格分布中的列号,m为像素图横向拆分数目,n为像素图纵向拆分数目,w为视口像素图宽,h为视口像素图高。
第j个网格的二维像素区域GSj为:
Figure RE-227355DEST_PATH_IMAGE030
其中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,有:
Figure RE-580976DEST_PATH_IMAGE031
其中,
Figure RE-988955DEST_PATH_IMAGE032
为网格区域GRj的左下角点,
Figure RE-187855DEST_PATH_IMAGE033
网格区域GRj的右上角点,K为放大系数,为大于1的自然数,默认值为20,可根据应用场景进行调整。
2)计算网格像素图
设第j个网格的网格像素图为GMj,则
Figure RE-122313DEST_PATH_IMAGE034
其中,Prc为第j个网格的网格像素图GMj中第r行、第c列的像素数据,其中1≤r≤u,1≤c≤v,u、v为第j个网格的网格像素图GMj的最大行数和最大列数。
定义
Figure RE-646835DEST_PATH_IMAGE035
,dDepth为当前像素的最小深度值,nShapeId为当前像素最小深度值对应的图元编号,TriIds为当前像素内存在投影的所有图元的三角片编号集合。
第j个网格的网格像素图GMj的计算方法如下:
提取第j个网格的图元数据集GSj中每个图元的三角片列表,记Si为GSj中第i个图元,其三角片列表为Ti,由图元拓扑数据获得;
三角片MVP变换
记Trik为Ti的第k个三角片,k为大于0的自然数。定义
Figure RE-531658DEST_PATH_IMAGE036
,其中nTriId为三角片编号,P0、P1、P2为三角片的三个顶点,则经MVP变换后的三角片Trik为:
Figure RE-RE-799828DEST_PATH_IMAGE037
其中,
Figure RE-588793DEST_PATH_IMAGE038
Figure RE-18637DEST_PATH_IMAGE039
Figure RE-RE-401208DEST_PATH_IMAGE040
,MVP为3D-2D变换矩阵。
计算Trik的包围盒
Figure RE-RE-207490DEST_PATH_IMAGE041
Figure RE-850961DEST_PATH_IMAGE042
其中,umin、vmin取P0、P1、P2三个投影点的最小横、纵像素坐标,umax、vmax取P0、P1、P2三个投影点的最大横、纵像素坐标。
更新像素图GMj
遍历
Figure RE-717286DEST_PATH_IMAGE043
内每一个像素,记位置(r,c)处的像素点为Vrc,根据三角形重心算法可得:
Figure RE-570841DEST_PATH_IMAGE044
其中,P0、P1、P2为三角片Ti的三个顶点经MVP变换后的投影点,w1、w2为重心权重系数,该系数由克莱姆法则求解得到,w1=D1/D,w2 = D2/D,其中D、D1、D2计算公式如下:
Figure RE-180814DEST_PATH_IMAGE045
其中,Vrc
Figure RE-944371DEST_PATH_IMAGE043
内位置(r,c)处的像素点,P0、P1、P2为三角片Ti的三个顶点经MVP变换后的投影点。
如果w1≥0,w2≥0,w1+w2≤1,则像素点Vrc在投影三角形Trik内,则三角片Trik在像素Prc处的投影深度Drc为:
Figure RE-716018DEST_PATH_IMAGE046
其中,
Figure RE-73181DEST_PATH_IMAGE047
为三角形Trik的第1个顶点P0在像素图上的投影深度,
Figure RE-221265DEST_PATH_IMAGE048
为三角形Trik的第2个顶点P1在像素图上的投影深度,
Figure RE-839328DEST_PATH_IMAGE049
为三角形Trik的第3个顶点P2在像素图上的投影深度。
如果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中某一像素为
Figure RE-RE-172090DEST_PATH_IMAGE050
,其中Prc.nShapeId为其像素上投影深度值最小的图元编号。根据深度测试原理可知,在像素图GMj中未出现图元编号的图元为不可见图元。基于该项判据,移除第j个网格的图元数据集GSj中部分完全不可见图元,以减少后续计算开销。
4)边拆分
通常情况下单个网格内的线框图中边的分布往往比较复杂,直接按照边对边配对求交的方式进行边拆分,算法计算开销较大,无法满足实际应用性能需求。针对该问题,本发明提出了一种新的基于像素图的快速边拆分方法,它通过简单像素链相交性和一系列线段相交性检测(包围盒相交、是否平行、交点是否在线段上),优化了线框边相交计算,快速的获取三维线框边的拆分点。
如下所述,上述边拆分方法分为如下6步执行:
S1: 曲线边采样
网格线框视图中的边有两种类型:直线边、曲线边(圆、椭圆、B样条等),为了简化曲线边的求交,将其采样为直线串进行后续求交计算。经边采样后,网格线框视图中的边全部转化为直线段,从而将边求交转化为直线段求交。
S2: 计算边像素链
将网格线框视图中所有直线段经过MVP变换后,可得直线段像素链,进而可以利用边像素链求交进一步简化直线段求交。
设直线段
Figure RE-RE-875603DEST_PATH_IMAGE051
,则经过MVP变换后,可得像素图中的投影边为:
Figure RE-827379DEST_PATH_IMAGE052
其中,
Figure RE-299949DEST_PATH_IMAGE053
Figure RE-RE-554344DEST_PATH_IMAGE054
,P0和P1为直线段起点和终点,MVP为3D-2D变换矩阵。
记直线段L对应的像素链为LP,则:
Figure RE-745153DEST_PATH_IMAGE055
其中,PLX k 为LP的第k个像素,定义
Figure RE-235041DEST_PATH_IMAGE056
,其中u和v为像素位置,nEdgeId为当前像素链对应的直线段唯一编号。
在计算直线段L对应的像素链为LP时,如果存在像素不在当前网格范围内,则移除其对应像素分段,避免因为某个图元跨越多个网格,造成按网格进行互相消隐时消隐结果冲突问题。
S3: 计算边像素图
记第j个网格Gj的边像素图为GEMj,则有:
Figure RE-827696DEST_PATH_IMAGE057
其中,Prc为第j个网格的边像素图GEMj中第r行、第c列的像素数据,其中1≤r≤u,1≤c≤v,u、v为第j个网格的边像素图GEMj的最大行数和最大列数。
定义
Figure RE-502260DEST_PATH_IMAGE058
,其中TriIds为当前像素内存在投影的直线段的唯一编号集合。
边像素图填充方法为:遍历所有边像素链中的每一像素,根据像素坐标将其直线段唯一编号加入边像素图GEMj对应的像素的TriIds中即可。
S4: 边求交与边拆分
遍历第j网格的边像素图GEMj,对任意像素Prc,如果其直线段的唯一编号集合TriIds中边数目大于1,则存在边相交;进而根据直线段唯一编号进行两两配对求交,根据直线段交点将对应线框边一分为二。
设某两直线段分别为:
Figure RE-914787DEST_PATH_IMAGE059
Figure RE-208365DEST_PATH_IMAGE060
,两直线段求交并拆分线框边的方法如下:
执行两直线段MVP变换,得到对应投影边
Figure RE-655527DEST_PATH_IMAGE061
Figure RE-251724DEST_PATH_IMAGE062
计算
Figure RE-682705DEST_PATH_IMAGE063
Figure RE-514395DEST_PATH_IMAGE064
的二维视口包围盒
Figure RE-940697DEST_PATH_IMAGE065
Figure RE-832430DEST_PATH_IMAGE066
Figure RE-219549DEST_PATH_IMAGE067
其中,
Figure RE-854930DEST_PATH_IMAGE068
表示投影端点
Figure RE-417629DEST_PATH_IMAGE069
的横向像素坐标,
Figure RE-RE-480263DEST_PATH_IMAGE070
表示投影端点
Figure RE-RE-354678DEST_PATH_IMAGE071
的纵向像素坐标,其他
Figure RE-652804DEST_PATH_IMAGE072
同理。
根据包围盒相交性,判定线段是否相交,如果相交则继续计算,反之退出;
判定直线段
Figure RE-929065DEST_PATH_IMAGE063
Figure RE-162600DEST_PATH_IMAGE064
是否平行,记平行标记为m,则:
Figure RE-524311DEST_PATH_IMAGE073
如果m不等于0,则两直线段不平行,继续计算,反之退出;
联立直线
Figure RE-642440DEST_PATH_IMAGE063
Figure RE-38786DEST_PATH_IMAGE064
的参数方程,可得两投影直线的交点坐标为:
Figure RE-443223DEST_PATH_IMAGE074
其中,
Figure RE-151285DEST_PATH_IMAGE068
表示投影端点
Figure RE-932159DEST_PATH_IMAGE069
的横向像素坐标,
Figure RE-183012DEST_PATH_IMAGE070
表示投影端点
Figure RE-758350DEST_PATH_IMAGE071
的纵向像素坐标,其他
Figure RE-704440DEST_PATH_IMAGE072
同理,m为平行系数。
判定交点是否在线段范围内,记判定标记分别为
Figure RE-289005DEST_PATH_IMAGE075
Figure RE-394364DEST_PATH_IMAGE076
,则:
Figure RE-265237DEST_PATH_IMAGE077
如果
Figure RE-88837DEST_PATH_IMAGE078
,则交点在两线段的范围内,继续计算;反之退出。
记两投影线段
Figure RE-945934DEST_PATH_IMAGE063
Figure RE-312325DEST_PATH_IMAGE064
的交点对应不同线段的深度值分别为z1和z2,则
Figure RE-229465DEST_PATH_IMAGE079
其中,
Figure RE-274782DEST_PATH_IMAGE080
为投影线段
Figure RE-935570DEST_PATH_IMAGE063
的起点
Figure RE-134296DEST_PATH_IMAGE069
的投影深度值,
Figure RE-222338DEST_PATH_IMAGE081
为投影线段
Figure RE-754950DEST_PATH_IMAGE063
的终点
Figure RE-219429DEST_PATH_IMAGE082
的投影深度值,
Figure RE-294833DEST_PATH_IMAGE083
,为交点相对投影线段
Figure RE-553776DEST_PATH_IMAGE063
的起点和终点的插值系数,
Figure RE-573685DEST_PATH_IMAGE084
同理,可得z2。进而,可得线段
Figure RE-966489DEST_PATH_IMAGE063
Figure RE-755453DEST_PATH_IMAGE064
的交点坐标分别为
Figure RE-185297DEST_PATH_IMAGE085
Figure RE-692502DEST_PATH_IMAGE086
对交点
Figure RE-374150DEST_PATH_IMAGE087
Figure RE-17621DEST_PATH_IMAGE088
执行MVP逆变换,可得三维直线段L1和L2对应的线框边拆分点为:
Figure RE-883946DEST_PATH_IMAGE089
其中A为线段L1对应的三维线框边的拆分点,B为L2对应的三维线框边的拆分点,MVP-1表示MVP矩阵的逆。
5)可见性判定
记第j网格内经拆分后的图元的线框边集合为GSEj,根据拆分边可见性事实可知:GSEj中的边,要么完全可见,要么完全不可见。因此GSEj中任意一边ei的中间点Pc的可见性V(Pc)也即ei的可见性V(ei),也即:
Figure RE-612868DEST_PATH_IMAGE090
其中,V为可见性判据,V(Pc)的可见性判定计算方法如下:
对Pc执行MVP变换,得到投影点
Figure RE-347474DEST_PATH_IMAGE091
,则Pc在网格像素图GMj中对应的像素为
Figure RE-111031DEST_PATH_IMAGE092
,
Figure RE-148257DEST_PATH_IMAGE093
表示投影点
Figure RE-239841DEST_PATH_IMAGE094
的横向像素坐标,
Figure RE-387926DEST_PATH_IMAGE095
表示投影点
Figure RE-5989DEST_PATH_IMAGE096
的纵向像素坐标;
已知
Figure RE-214116DEST_PATH_IMAGE097
中存有所有图元三角片的唯一编号列表TriIds,则可以Pc的可见性也即TriIds中是否存在三角片遮挡Pc
设三角片
Figure RE-42264DEST_PATH_IMAGE098
,则Pc相对于Trik的可见性计算方法如下:
对三角片Trik执行MVP变换,可得:
Figure RE-259619DEST_PATH_IMAGE099
其中,
Figure RE-732188DEST_PATH_IMAGE100
Figure RE-986583DEST_PATH_IMAGE101
Figure RE-177393DEST_PATH_IMAGE102
,MPV为3D-2D变换矩阵,P0、P1、P2为三角片的三个顶点;
根据三角形重心算法公式可得:
Figure RE-667280DEST_PATH_IMAGE103
其中,w1、w2为重心权重系数,由克莱姆法则求解得到,w1=D1/D,w2 = D2/D,其中D、D1、D2由上述公式可得;
如果
Figure RE-259936DEST_PATH_IMAGE104
不满足,则Pc可见;
如果
Figure RE-668920DEST_PATH_IMAGE105
满足,则计算Pc对应于三角片Trik上点的投影深度,记为Dc
Figure RE-347026DEST_PATH_IMAGE106
其中,
Figure RE-640604DEST_PATH_IMAGE080
为三角形Trik的第1个顶点P0在像素图上的投影深度,
Figure RE-87766DEST_PATH_IMAGE081
为三角形Trik的第2个顶点P1在像素图上的投影深度,
Figure RE-683964DEST_PATH_IMAGE107
为三角形Trik的第3个顶点P2在像素图上的投影深度;
如果
Figure RE-849366DEST_PATH_IMAGE108
,则Pc不可见;反之Pc可见。
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为:
Figure RE-681056DEST_PATH_IMAGE109
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
Figure RE-372937DEST_PATH_IMAGE110
所述视口变换矩阵V为:
Figure RE-264670DEST_PATH_IMAGE111
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
Figure RE-651789DEST_PATH_IMAGE112
其中,w为视口像素图宽,h为视口像素图高。
其中,在上述三维可视边生成系统中,所述处理模块22具体用于:
获取各个所述图元的裁剪标记;
当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元,所述裁剪标记为:
Figure RE-287169DEST_PATH_IMAGE113
其中,R为视口像素图区域,
Figure RE-584289DEST_PATH_IMAGE114
,(u,v)为视口像素图区域内任意像素,w为视口像素图宽,h为视口像素图高;Ri为第i个图元在视口平面上的二维投影区域,
Figure RE-646923DEST_PATH_IMAGE115
,(u,v)为视口像素图区域内任意像素,Xmin为第i个图元包围盒8个顶点在视口平面上投影点的最小横坐标取整,Xmax为第i个图元包围盒8个顶点在视口平面上投影点的最大横坐标取整,Ymin为第i个图元包围盒8个顶点在视口平面上投影点的最小纵坐标取整,Ymax为第i个图元包围盒8个顶点在视口平面上投影点的最大纵坐标取整。
其中,在上述三维可视边生成系统中,所述处理模块22还具体用于:
提取所述图元线框,以得到所述图元线框对应的图元线框边集合;
根据所述图元线框边集合进行轮廓边计算,所述图元线框边集合WEi为:
Figure RE-521339DEST_PATH_IMAGE116
其中,
Figure RE-85044DEST_PATH_IMAGE117
为第i个图元的锐边集合,由第i个图元的拓扑面集合Fi中平面类型的面直接提取边界边生成;
Figure RE-361304DEST_PATH_IMAGE118
为第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为:
Figure RE-537921DEST_PATH_IMAGE001
其中,(nx,ny,nz)为视口法向量坐标,(ux,uy,uz)为视口向上方向向量坐标,(vx,vy,vz)为视口向右方向向量坐标,T=[tx,ty,tz]为所述模型变换矩阵M的平移分量,所述平移分量T由下式计算得到:
Figure RE-869677DEST_PATH_IMAGE002
其中,(ex,ey,ez)为视点坐标;
所述视口变换矩阵V为:
Figure RE-359564DEST_PATH_IMAGE003
其中,W为视口平面宽,H为视口平面高,D为视锥深度;
所述投影变换矩阵P为:
Figure RE-952219DEST_PATH_IMAGE004
其中,w为视口像素图宽,h为视口像素图高。
3.根据权利要求1所述的三维可视边生成方法,其特征在于:所述通过视锥裁剪移除不在所述视锥内的图元的步骤包括:
获取各个所述图元的裁剪标记;
当所述裁剪标记为true时,则剔除所述图元,反之则保留所述图元,所述裁剪标记为:
Figure RE-892362DEST_PATH_IMAGE005
其中,R为视口像素图区域,
Figure RE-570468DEST_PATH_IMAGE006
,(u,v)为视口像素图区域内任意像素,w为视口像素图宽,h为视口像素图高;Ri为第i个图元在视口平面上的二维投影区域,
Figure RE-598467DEST_PATH_IMAGE007
,其中(u,v)为视口像素图区域内任意像素,Xmin为第i个图元包围盒8个顶点在视口平面上投影点的最小横坐标取整,Xmax为第i个图元包围盒8个顶点在视口平面上投影点的最大横坐标取整,Ymin为第i个图元包围盒8个顶点在视口平面上投影点的最小纵坐标取整,Ymax为第i个图元包围盒8个顶点在视口平面上投影点的最大纵坐标取整。
4.根据权利要求1所述的三维可视边生成方法,其特征在于:所述提取出存在于所述视锥内的图元对应的图元线框的步骤包括:
提取所述图元线框,以得到所述图元线框对应的图元线框边集合;
根据所述图元线框边集合进行轮廓边计算,所述图元线框边集合WEi为:
Figure RE-920995DEST_PATH_IMAGE008
其中,
Figure RE-641827DEST_PATH_IMAGE009
为第i个图元的锐边集合,由第i个图元的拓扑面集合Fi中平面类型的面直接提取边界边生成;
Figure RE-807229DEST_PATH_IMAGE010
为第i个图元的轮廓边集合,由第i个图元的拓扑面集合Fi中曲面类型的面和视口法向量N计算而来,视口法向量N为已知视锥参数。
5.根据权利要求1所述的三维可视边生成方法,其特征在于:所述根据预设算法消隐所述图元线框中被遮挡的线条的步骤包括:
将二维视口像素图划分为多个网格单元,并收集各个所述网格单元内的图元数据,以得到网格数据集;
对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条。
6.根据权利要求5所述的三维可视边生成方法,其特征在于:所述对各个所述网格单元的可视边进行计算,以消隐所述图元线框中被遮挡的线条的步骤包括:
对各个所述网格单元对应的网格区域进行方法处理,并计算出各个所述网格单元对应的网格像素图;
根据所述网格像素图的深度值消除所述网格单元内完全不可见的图元,并对各个所述网格单元进行边拆分处理;
根据所述边拆分过后的可见性事实进行可见性判定,并根据所述可见性判定的结果将可见边按照所属图元的编号加入到对应的图元消音边集合中。
7.根据权利要求1所述的三维可视边生成方法,其特征在于:所述根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边的步骤之后,所述方法包括:
通过所述MVP变换矩阵将所述三维可视边转换成对应的二维可视边;
将所述二维可视边导出至工程图纸上。
8.一种三维可视边生成系统,其特征在于,所述系统包括:
初始化模块,用于计算MVP变换矩阵并获取图元三维模型,以对所述图元三维模型的图元数据集进行初始化处理;
处理模块,用于通过视锥裁剪移除不在视锥内的图元,并提取出存在于所述视锥内的图元对应的图元线框,所述图元线框包括锐边和轮廓边,所述锐边为所述图元三维模型的边界边,所述轮廓边为所述图元三维模型延一视口方向观察到的曲面最外侧呈现的边;
生成模块,用于根据预设算法消隐所述图元线框中被遮挡的线条,并对所述图元线框的断边进行修复,以生成三维可视边。
9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的三维可视边生成方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的三维可视边生成方法。
CN202111280006.5A 2021-11-01 2021-11-01 三维可视边生成方法、系统、计算机及可读存储介质 Pending CN113902887A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111280006.5A CN113902887A (zh) 2021-11-01 2021-11-01 三维可视边生成方法、系统、计算机及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111280006.5A CN113902887A (zh) 2021-11-01 2021-11-01 三维可视边生成方法、系统、计算机及可读存储介质

Publications (1)

Publication Number Publication Date
CN113902887A true CN113902887A (zh) 2022-01-07

Family

ID=79027745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111280006.5A Pending CN113902887A (zh) 2021-11-01 2021-11-01 三维可视边生成方法、系统、计算机及可读存储介质

Country Status (1)

Country Link
CN (1) CN113902887A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115984458A (zh) * 2022-12-12 2023-04-18 广东横琴全域空间人工智能有限公司 基于辐射场的目标物体模型提取方法、系统及控制器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115984458A (zh) * 2022-12-12 2023-04-18 广东横琴全域空间人工智能有限公司 基于辐射场的目标物体模型提取方法、系统及控制器
CN115984458B (zh) * 2022-12-12 2023-10-03 广东横琴全域空间人工智能有限公司 基于辐射场的目标物体模型提取方法、系统及控制器

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
CN111382777B (zh) 从网格中提取特征树
CN101763649B (zh) 一种增强模型轮廓的表面点绘制方法
CN107680168B (zh) 三维重建中基于平面拟合的网格简化方法
CN110223387A (zh) 一种基于深度学习的三维模型重建技术
US20160247067A1 (en) Method and system for intelligent crane lifting
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
CN107680154B (zh) 基于视图的体素几何参数提取方法
CN104504760B (zh) 实时更新三维图像的方法和系统
CN113724401B (zh) 一种三维模型切割方法、装置、计算机设备和存储介质
CN105205861A (zh) 基于Sphere-Board的树木三维可视化模型实现方法
KR20120104071A (ko) 입체영상 시각효과 처리 방법
CN114359226A (zh) 基于分层叠加和区域增长的三维模型组可视面积提取方法
CN107545602B (zh) 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法
CN109461197B (zh) 一种基于球面uv和重投影的云实时绘制优化方法
CN104392489B (zh) 顾及拓扑的三维地理空间实体群的线消隐方法
CN109598782A (zh) 基于三维建模技术的建筑文物修复方法、存储介质
CN115984476A (zh) 一种基于纹理的三维模型裁切方法
CN113902887A (zh) 三维可视边生成方法、系统、计算机及可读存储介质
KR101032397B1 (ko) 구면 좌표계를 사용하는 3차원 형상 표현장치 및 방법
CN112365572B (zh) 一种基于曲面细分的渲染方法及其相关产品
CN113345089A (zh) 一种基于电力塔点云的规则化建模方法
CN108898679A (zh) 一种零部件序号自动标注的方法

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