CN109887080B - 模型mesh数据生成三视图的方法及系统 - Google Patents

模型mesh数据生成三视图的方法及系统 Download PDF

Info

Publication number
CN109887080B
CN109887080B CN201910326353.3A CN201910326353A CN109887080B CN 109887080 B CN109887080 B CN 109887080B CN 201910326353 A CN201910326353 A CN 201910326353A CN 109887080 B CN109887080 B CN 109887080B
Authority
CN
China
Prior art keywords
triangular
visible
triangular surface
point sequence
array
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.)
Active
Application number
CN201910326353.3A
Other languages
English (en)
Other versions
CN109887080A (zh
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.)
Guangdong 3vjia Information Technology Co Ltd
Original Assignee
Guangdong 3vjia Information 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 Guangdong 3vjia Information Technology Co Ltd filed Critical Guangdong 3vjia Information Technology Co Ltd
Priority to CN201910326353.3A priority Critical patent/CN109887080B/zh
Publication of CN109887080A publication Critical patent/CN109887080A/zh
Application granted granted Critical
Publication of CN109887080B publication Critical patent/CN109887080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本发明提供了模型mesh数据生成三视图的方法及系统,涉及图形转换软件技术领域,包括将该mesh网格数据解析为多个带索引值的三角面,根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面,创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,将不被遮挡的可见三角面点序列进行深度遍历,得到投影轮廓,将投影轮廓投影得到三视图,数组对象为多个带索引值的三角面,在区分出的可见三角面基础上,继续通过八叉树数据结构将被遮挡的可见三角面点序列过滤,减轻了三视图投影中的数据总量,可提高数据处理效率,并可实现一键生成三视图,操作方便。

Description

模型mesh数据生成三视图的方法及系统
技术领域
本发明涉及图形转换软件技术领域,尤其是涉及模型mesh数据生成三视图的方法及系统。
背景技术
在房屋定制装修领域中,需要使用三维装修软件进场设计和展示,三维装修软件可根据用户需求进行直观的展现,为人们的装修带来极大的便利。在客户完成对三维视图的审定后,还需要将三维的空间模型视图转换为二维模型视图,以用于出图、生产、安装交付。现有的装修软件在将三维视图转为为二维视图的过程中,还存在着不支持曲线投影、计算过程有待优化、操作复杂等问题。
在计算机图形学中,通过mesh(网格)数据可定义一个三维物体的形状,三维模型包含了mesh数据与颜色信息,mesh由三角面组成,一个三角面包含三个顶点,mesh数据结构包括:顶点数组、索引数组;顶点数组存储顶点的坐标信息,索引数组存储顶点顺序。在三维坐标系中创建三角面时,只需遍历索引数组,根据索引去顶点数组中获取顶点坐标信息,三个索引对应三个顶点,三个顶点构成一个三角面。
发明内容
有鉴于此,本发明的目的在于提供一种模型mesh数据生成三视图的方法及系统,以实现数据处理效率高、使用简单方便、支持曲线投影及可一键生成三视图的三视图生成方法。
第一方面,本发明实施例提供了一种模型mesh数据生成三视图的方法,包括:读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该数组对象包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点。
计算该三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引。
根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面。
创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列。
将不被遮挡的可见三角面点序列进行深度遍历,将同时存在于可见三角面点序列及不可见三角面点序列中的点,标记为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓。
将投影轮廓投影得到三视图。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,该将mesh网格数据解析为数组对象的步骤之后,还包括:将数组对象进行坐标转换得到俯视图数组对象、主视图数组对象及正视图数组对象。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,该将数组对象进行坐标转换得到俯视图数组对象、主视图数组对象及正视图数组对象的步骤包括:数组对象不做转换得到俯视图数组对象,俯视图数组对象绕几何轴心的x轴旋转90°得到主视图数组对象,主视图数组对象绕几何轴心的y轴旋转90°得到侧视图数组对象。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,该将mesh网格数据解析为数组对象的步骤之后,还包括:过滤该数组对象。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,过滤该数组对象的步骤具体为:通过合并相近点算法过滤数组对象。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,该合并相近点算法,包括:在三维坐标系中,若两个点之间的距离小于0.1mm,则随机保留其中一个点的数据。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,过滤该数组对象的步骤之后,还包括:将过滤后的数组对象分割为数个分割数组。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,该根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面的方法包括:在三维坐标系中计算三角面的单位法线得到该三角面单位法线的三维向量(x,y,z);如果z>0,则与该三角面单位法线关联索引的三角面为可见面;如果z<0,则该三角面单位法线关联索引的三角面为不可见面。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,该通过深度遍历过滤掉被遮挡的可见三角面点序列,包括:将可见三角面点序列与八叉树数据结构进行一一比对,落入八叉树底部四个正方体内的点序列标记为被遮挡的可见三角面点序列,过滤该三角面点序列。
第二方面,本发明实施例还提供一种模型mesh数据生成三视图的系统,包括:数据解析模块,其用于读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该数组对象包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点;
数据计算模块,其用于计算该三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引,根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面;
八叉树处理模块,其用于创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历的方法过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列;
投影轮廓标记模块,其用于将不被遮挡的可见三角面点序列进行深度遍,若点同时存在于可见三角面点序列及不可见三角面点序列中,则标记该点位对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓;
投影模块,其用于将投影轮廓投影得到三视图。
本发明实施例带来了以下有益效果:在本算法中,数组对象为多个带索引值的三角面,在区分出的可见三角面基础上,继续通过八叉树数据结构将被遮挡的可见三角面点序列过滤,减轻了三视图投影中的数据总量,可提高数据处理效率,并可实现一键生成三视图,操作方便;特别的,在投影算法中采用了多个三角面的投影方式,曲线可以用多个分段直线表示,支持曲线投影。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的模型mesh数据生成三视图的方法中涉及的mesh网格数据组成示意图;
图2为本发明实施例提供的一种模型mesh数据生成三视图的方法的流程示意;
图3为本发明实施例提供的另一种模型mesh数据生成三视图的方法的流程示意;
图4为本发明实施例提供的另一种模型mesh数据生成三视图的方法的流程示意。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在房屋定制装修领域中,需要使用三维装修软件进场设计和展示,三维装修软件可根据用户需求进行直观的展现,为人们的装修带来极大的便利。
在客户完成对三维视图的审定后,还需要将三维的空间模型视图转换为二维模型视图,以用于出图、生产、安装交付。现有的装修软件在将三维视图转为二维视图的过程中,还存在着不支持曲线投影、计算过程有待优化、操作复杂等问题。
基于此,本发明实施例提供的一种模型mesh数据生成三视图的方法及系统,可以实现数据处理效率高、使用简单方便、支持曲线投影及可一键生成三视图的三视图生成方法。
现有技术中,在通过mesh数据生成三视图的算法中,取的是物体的boundingbox投影外框,该算法没有展示物体细节,不支持曲线投影。
Boundingbox也称bounds三维,是一种三维包围盒的获取方法。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种模型mesh数据生成三视图的方法进行详细介绍。
实施例一:
如图1-2所示,一种模型mesh数据生成三视图的方法,包括:
S210:读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该数组对象包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点。
常见的mesh网格数据类型包括二维数组、列表数组、堆栈数组及八叉树数组等,通常三维模型包含了mesh网格数据与颜色信息,mesh由三角面组成,一个三角面包含三个顶点,mesh网格数据结构包括:顶点数组、索引数组;顶点数组存储顶点的坐标信息,索引数组存储顶点顺序。在三维坐标系中创建三角面时,只需遍历索引数组,根据索引去顶点数组中获取顶点坐标信息,三个索引对应三个顶点,三个顶点构成一个三角面。
一个三角面由三个顶点构成,一个顶点是一个三维坐标(x,y,z)。
该mesh网格数据解析为数组对象的步骤包括:
将以二进制形式传递的mesh网格数据转换为十进制的mesh网格数据,并读取顶点数组与索引数组。
遍历索引数组,根据索引去顶点数组中获取数据,每三个索引对应的顶点构成一个三角面。
S220:计算该三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引。
S230:根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面。
举例说明:在三维空间中,空间中的点表示为(x,y,z),如A点为(10,10,0),则A的坐标为x=10,y=10,z=0。
索引指顶点在顶点数组中的排列顺序,如:
顶点数组为四个点,vArr=[(0,0,0),(10,0,0),(10,10,0),(0,10,0)]。
索引数组为6个iArr,iArr=[0,1,2,2,0 3]。
一个三角面由三个顶点构成,6个索引对应6个顶点构成两个三角面。
第一三角面为:vArr[0,1,2]=[(0,0,0),(10,0,0),(10,10,0)]。
第二三角面为:vArr[2,0,3]=[(10,10,0),(0,0,0),(0,10,0)]。
三角面法线:三角面有三个点,任意两个点之间可构成一个向量,两个向量叉乘得到面的法线向量,法线向量的z val>0,则该三角面可见,法线向量的z val<0,则该三角面不可见。
S240:创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列。
S250:将不被遮挡的可见三角面点序列进行深度遍历,将同时存在于可见三角面点序列及不可见三角面点序列中的点,标记为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓。
S260:将投影轮廓投影得到三视图。
在本算法中,数组对象为多个带索引值的三角面,在区分出的可见三角面基础上,继续通过八叉树数据结构将被遮挡的可见三角面点序列过滤,减轻了三视图投影中的数据总量,可提高数据处理效率,并可实现一键生成三视图,操作方便。
特别的,在投影算法中采用了多个三角面的投影方式,曲线可以用多个分段直线表示,支持曲线投影。
实施例二:
如图3所示,本实施例提供一种较佳的模型mesh数据生成三视图的方法,包括:
S310:读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象。
S320:将数组对象进行坐标转换得到俯视图数组对象、主视图数组对象及正视图数组对象,数组对象不做转换得到俯视图数组对象,俯视图数组对象绕几何轴心的x轴旋转90°得到主视图数组对象,主视图数组对象绕几何轴心的y轴旋转90°得到侧视图数组对象,该俯视图数组对象、主视图数组对象及正视图数组对象分别包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点。
S330:计算俯视图数组对象的三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引。
该步骤S330与实施例一中的步骤S220相同。
S340:根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面。
该步骤S340与实施例一中的步骤S230相同。
S350:创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列。
该步骤S350与实施例一中的步骤S240相同。
S360:将不被遮挡的可见三角面点序列进行深度遍历,将同时存在于可见三角面点序列及不可见三角面点序列中的点,标记为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓。
该步骤S360与实施例一中的步骤S250相同。
S370:将投影轮廓投影得到俯视图。
该步骤S370与实施例一中的步骤S260相同。
S380:重复步骤S2-S6,分别计算正视图数组对象的三角面的单位法线及侧视图数组对象的三角面的单位法线,得到正视图及侧视图,完成三视图的投影。
实施例三:
如图4所示,本实施例提供一种较佳的模型mesh数据生成三视图的方法,包括如下步骤:
S410:读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该mesh网格数据为自用户端通过网络读取的数据,该mesh网格数据通过终端的串口接口读取,该数组对象包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点。
该步骤S410与实施例一中的步骤S210相同。
S420:过滤该数组对象,具体通过合并相近点算法过滤数组对象,该合并相近点算法,包括在三维坐标系中,若两个点之间的距离小于0.1mm,则随机保留其中一个点的数据。
S430:将过滤后的数组对象分割为数个分割数组。
S440:计算该三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引。
该步骤S440与实施例二中的步骤S330相同。
S450:根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面,该根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面的方法包括:
在三维坐标系中计算三角面的单位法线得到该三角面单位法线的三维向量(x,y,z);
如果z>0,则与该三角面单位法线关联索引的三角面为可见面;
如果z<0,则该三角面单位法线关联索引的三角面为不可见面。
该步骤S450与实施例二中的步骤S340相同。
S460:创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列。
该通过深度遍历过滤掉被遮挡的可见三角面点序列,包括:将可见三角面点序列与八叉树数据结构进行一一比对,落入八叉树底部四个正方体内的点序列标记为被遮挡的可见三角面点序列,过滤该三角面点序列。
该步骤S460与实施例二中的步骤S350相同。
S470:将不被遮挡的可见三角面点序列进行深度遍历,将同时存在于可见三角面点序列及不可见三角面点序列中的点,标记为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓。
该步骤S470与实施例二中的步骤S360相同。
S480:将投影轮廓投影得到三视图。
该步骤S480与实施例二中的步骤S370相同。
本实施例进一步公开了模型mesh数据生成三视图的方法的具体内容,特别的,在投影算法中采用了多个三角面的投影方式,曲线可以用多个分段直线表示,支持曲线投影。
实施例四:
本发明实施例还提供一种模型mesh数据生成三视图的系统,包括:
数据解析模块,其用于读取三维模型的mesh网格数据,该mesh网格数据为自用户端通过网络读取的数据,该mesh网格数据通过终端的串口接口读取,将该mesh网格数据解析为数组对象,过滤该数组对象,具体为通过合并相近点算法过滤数组对象,合并相近点算法包括在三维坐标系中,若两个点之间的距离小于0.1mm,则随机保留其中一个点的数据,将过滤后的数组对象分割为数个分割数组,该数组对象包括多个带索引值的三角面,该三角面包括三个分布在三维坐标系中的点。
数据计算模块,其用于计算该三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引,根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面,该根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面的方法包括:在三维坐标系中计算三角面的单位法线得到该三角面单位法线的三维向量(x,y,z);如果z>0,则与该三角面单位法线关联索引的三角面为可见面;如果z<0,则该三角面单位法线关联索引的三角面为不可见面。
八叉树处理模块,其用于创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历的方法过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列,所述通过深度遍历过滤掉被遮挡的可见三角面点序列的方法包括:将可见三角面点序列与八叉树数据结构进行一一比对,落入八叉树底部四个正方体内的点序列标记为被遮挡的可见三角面点序列,过滤该三角面点序列。
投影轮廓标记模块,其用于将不被遮挡的可见三角面点序列进行深度遍,若点同时存在于可见三角面点序列及不可见三角面点序列中,则标记该点位对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓。
投影模块,其用于将投影轮廓投影得到三视图。
本发明实施例提供的模型mesh数据生成三视图的系统,数组对象为多个带索引值的三角面,在区分出的可见三角面基础上,继续通过八叉树数据结构将被遮挡的可见三角面点序列过滤,减轻了三视图投影中的数据总量,可提高数据处理效率,并可实现一键生成三视图,操作方便;特别的,在投影算法中采用了多个三角面的投影方式,曲线可以用多个分段直线表示,支持曲线投影。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (9)

1.模型mesh数据生成三视图的方法,其特征在于,包括:
读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该数组对象包括多个带索引值的三角面,所述三角面包括三个分布在三维坐标系中的点;
所述将该mesh网格数据解析为数组对象的步骤包括:
将以二进制形式传递的mesh网格数据转换为十进制的mesh网格数据,并读取顶点数组与索引数组,遍历索引数组,根据索引去顶点数组中获取数据,每三个索引对应的顶点构成一个三角面;
计算所述三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引;
根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面;
创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列;
所述通过深度遍历过滤掉被遮挡的可见三角面点序列,包括:将所述可见三角面点序列与所述八叉树数据结构进行一一比对,落入八叉树底部四个正方体内的点序列标记为被遮挡的可见三角面点序列,过滤该三角面点序列;
将不被遮挡的可见三角面点序列进行深度遍历,将同时存在于不被遮挡的可见三角面点序列及不可见三角面点序列中的点,标记为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓;
将投影轮廓投影得到三视图。
2.根据权利要求1所述的模型mesh数据生成三视图的方法,其特征在于,所述将该mesh网格数据解析为数组对象的步骤,还包括:
将数组对象进行坐标转换得到俯视图数组对象、主视图数组对象及正视图数组对象。
3.根据权利要求2所述的模型mesh数据生成三视图的方法,其特征在于,所述将数组对象进行坐标转换得到俯视图数组对象、主视图数组对象及正视图数组对象的步骤包括:数组对象不做转换得到俯视图数组对象,俯视图数组对象绕几何轴心的x轴旋转90°得到主视图数组对象,主视图数组对象绕几何轴心的y轴旋转90°得到侧视图数组对象。
4.根据权利要求1所述的模型mesh数据生成三视图的方法,其特征在于,所述将该mesh网格数据解析为数组对象的步骤之后,还包括:
过滤所述数组对象。
5.根据权利要求4所述的模型mesh数据生成三视图的方法,其特征在于,所述过滤所述数组对象的步骤具体为:
通过合并相近点算法过滤数组对象。
6.根据权利要求5所述的模型mesh数据生成三视图的方法,其特征在于,所述合并相近点算法,包括:
在三维坐标系中,若两个点之间的距离小于0.1mm,则随机保留其中一个点的数据。
7.根据权利要求4所述的模型mesh数据生成三视图的方法,其特征在于,过滤所述数组对象的步骤之后,还包括:
将过滤后的数组对象分割为数个分割数组。
8.根据权利要求1所述的模型mesh数据生成三视图的方法,其特征在于,所述根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面的方法包括:
在三维坐标系中计算三角面的单位法线得到该三角面单位法线的三维向量(x,y,z);
如果z>0,则与该三角面单位法线关联索引的三角面为可见面;
如果z<0,则该三角面单位法线关联索引的三角面为不可见面。
9.模型mesh数据生成三视图的系统,其特征在于,包括:
数据解析模块,其用于读取三维模型的mesh网格数据,将该mesh网格数据解析为数组对象,该数组对象包括多个带索引值的三角面,所述三角面包括三个分布在三维坐标系中的点;
所述数据解析模块还用于,将以二进制形式传递的mesh网格数据转换为十进制的mesh网格数据,并读取顶点数组与索引数组,遍历索引数组,根据索引去顶点数组中获取数据,每三个索引对应的顶点构成一个三角面;
数据计算模块,其用于计算所述三角面的单位法线,将每个三角面的单位法线与该三角面的索引值进行关联索引,根据三角面的单位法线的结果将三角面区分为可见三角面及不可见三角面;
八叉树处理模块,其用于创建八叉树数据结构,载入由可见三角面的点组成的可见三角面点序列,通过深度遍历的方法过滤掉被遮挡的可见三角面点序列,得到不被遮挡的可见三角面点序列;
所述八叉树处理模块还用于,将可见三角面点序列与八叉树数据结构进行一一比对,落入八叉树底部四个正方体内的点序列标记为被遮挡的可见三角面点序列,过滤该三角面点序列;
投影轮廓标记模块,其用于将不被遮挡的可见三角面点序列进行深度遍历,若点同时存在于不被遮挡的可见三角面点序列及不可见三角面点序列中,则标记该点为对象轮廓点,将同一个三角面上的对象轮廓点两两连接,得到投影轮廓;
投影模块,其用于将投影轮廓投影得到三视图。
CN201910326353.3A 2019-04-22 2019-04-22 模型mesh数据生成三视图的方法及系统 Active CN109887080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910326353.3A CN109887080B (zh) 2019-04-22 2019-04-22 模型mesh数据生成三视图的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910326353.3A CN109887080B (zh) 2019-04-22 2019-04-22 模型mesh数据生成三视图的方法及系统

Publications (2)

Publication Number Publication Date
CN109887080A CN109887080A (zh) 2019-06-14
CN109887080B true CN109887080B (zh) 2023-05-02

Family

ID=66938103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910326353.3A Active CN109887080B (zh) 2019-04-22 2019-04-22 模型mesh数据生成三视图的方法及系统

Country Status (1)

Country Link
CN (1) CN109887080B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114065928A (zh) * 2020-07-30 2022-02-18 北京达佳互联信息技术有限公司 一种虚拟数据生成方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413297A (zh) * 2013-07-16 2013-11-27 南京师范大学 基于一体化三维gis模型的切割方法
CN107067463B (zh) * 2017-03-16 2020-04-07 北京中科辅龙计算机技术股份有限公司 一种流程工厂模型裁剪、绘制方法及装置
CN107993279B (zh) * 2017-11-03 2021-06-29 中国人民解放军陆军工程大学 一种场景精确表达方法

Also Published As

Publication number Publication date
CN109887080A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN107767453B (zh) 一种基于规则约束的建筑物lidar点云重构优化方法
JP5451285B2 (ja) 画像処理装置、画像処理方法
CN107464286B (zh) 三维城市模型中的孔洞修复方法及装置、设备及可读介质
CN111260784B (zh) 一种城市三维空间网格压缩编码方法、装置及终端设备
EP2817783A1 (en) Method and apparatus for mesh simplification
Bénard et al. Computing smooth surface contours with accurate topology
CN114693851A (zh) 基于gpu的实时网格轮廓向量化与渲染系统
US8587586B2 (en) Electronic device and method for meshing curved surface
CN115179326B (zh) 一种面向关节型机器人的连续碰撞检测方法
CN105574808A (zh) 一种流水线纹理贴图单元体系结构
CN109887080B (zh) 模型mesh数据生成三视图的方法及系统
CN116664776A (zh) 一种基于数字孪生的三维可视化编辑系统
US8605991B2 (en) Method for generating visual hulls for 3D objects as sets of convex polyhedra from polygonal silhouettes
US20240096022A1 (en) Low-poly mesh generation for three-dimensional models
CN107481307B (zh) 一种快速渲染三维场景的方法
CN111295694A (zh) 点云的孔洞填充的方法和设备
US20230377265A1 (en) Systems for Efficiently Rendering Vector Objects
CN112348935B (zh) 线框渲染方法、终端设备及计算机可读存储介质
US20030063096A1 (en) System and method for efficiently creating a surface map
CN100476880C (zh) 一种产生体积阴影的方法及系统
CN114969893A (zh) 基于阴阳角识别的吊顶龙骨设计方法及存储介质
CN112288759A (zh) 一种边界提取方法、装置、设备及存储介质
Lin et al. Affine arithmetic-based B-Spline surface intersection with gpu acceleration
JP2009122998A (ja) ソリッド/サーフェースモデルから外形線を抽出する方法及びコンピュータソフトウエアプログラム
US11488347B2 (en) Method for instant rendering of voxels

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