《曲面处理系统及方法.pdf》由会员分享,可在线阅读,更多相关《曲面处理系统及方法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103106690 A(43)申请公布日 2013.05.15CN103106690A*CN103106690A*(21)申请号 201110359061.3(22)申请日 2011.11.14G06T 17/30(2006.01)G06F 17/50(2006.01)(71)申请人鸿富锦精密工业(深圳)有限公司地址 518109 广东省深圳市宝安区龙华镇油松第十工业区东环二路2号申请人鸿海精密工业股份有限公司(72)发明人张旨光 吴新元 汤华辉(54) 发明名称曲面处理系统及方法(57) 摘要本发明提供一种曲面处理系统,该系统安装并运行于与点云数据捕获装置相连接的计。
2、算装置。该计算装置还包括存储设备、处理器及显示设备。点云数据捕获装置扫描得到产品的点云数据,并传送给计算装置。该曲面处理系统一系列功能模块,存储设备存储这些模块的计算机化程序代码。处理器执行所述计算机化程序代码,对根据产品的点云数据构建的曲面进行三角网格化,删除三角形重复的顶点及内部三角形,并创建多线程输出网格化得到的表面三角形象征的曲面。显示设备显示所述输出结果。本发明还提供一种曲面处理方法。(51)Int.Cl.权利要求书2页 说明书4页 附图5页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书4页 附图5页(10)申请公布号 CN 103106690 ACN。
3、 103106690 A1/2页21.一种曲面处理方法,应用于计算装置,其特征在于,该方法包括:曲面网格化步骤:根据计算装置存储的产品的点云数据构建曲面,对曲面进行三角网格化得到曲面的所有三角形,记录各三角形的顶点标志及坐标到一个数据结构;重复顶点处理步骤:以相同标志表示不同三角形中坐标相同的顶点,直到数据结构中坐标相同的顶点的顶点标志也相同;内部三角形删除步骤:识别曲面的表面三角形及内部三角形,删除曲面的内部三角形;多线程执行步骤:获取计算装置的执行单元的数目N,创建N个线程,将曲面的表面三角形分割成若干个小单位,随机分配给N个线程,N个线程同步执行读取数据结构中三角形的顶点标志及坐标,以输。
4、出曲面的所有表面三角形。2.如权利要求1所述的曲面处理方法,其特征在于,所述重复顶点处理步骤包括:确定曲面的最大包围盒,将该最大包围盒等分为多个小包围盒,每个三角形对应一个小包围盒,记录小包围盒与三角形的对应关系;及依次读取各个小包围盒,将读取的小包围盒对应的三角形的顶点坐标与相邻小包围盒对应的三角形的顶点坐标比较,若两个三角形存在坐标相同的顶点,则以相同的顶点标志标示该坐标相同的顶点。3.如权利要求2所述的曲面处理方法,其特征在于,与一个小包围盒对应的三角形落入或穿过该小包围盒。4.如权利要求1所述的曲面处理方法,其特征在于,所述内部三角形删除步骤中的识别曲面的表面三角形及内部三角形包括以下。
5、步骤:根据法向量相同的三角形产生一个平面,得到曲面的所有平面;从该曲面的所有平面中读取一个平面,生成一个沿该读取的平面的法向量方向无限延伸的射平面,计算该射平面与延伸方向上的所有平面的相交线的数目;及判断相交线的数目为奇数还是偶数,若相交线的数目为奇数,则标志该读取的平面包括的所有三角形为曲面的内部三角形,若相交线的数目为偶数,则标志该读取的平面包括的所有三角形为曲面的表面三角形。5.一种曲面处理系统,其特征在于,该系统包括:曲面网格化模块,用于根据计算装置存储的产品的点云数据构建曲面,对曲面进行三角网格化得到曲面的所有三角形,记录各三角形的顶点标志及坐标到一个数据结构;重复顶点处理模块,用于。
6、以相同标志表示不同三角形中坐标相同的顶点,直到数据结构中坐标相同的顶点的顶点标志也相同;内部三角形删除模块,用于识别曲面的表面三角形及内部三角形,删除曲面的内部三角形;多线程执行模块,用于获取计算装置的执行单元的数目N,创建N个线程,将曲面的表面三角形分割成若干个小单位,随机分配给N个线程,N个线程同步执行读取数据结构中三角形的顶点标志及坐标,以输出曲面的所有表面三角形。6.如权利要求5所述的曲面处理系统,其特征在于,重复顶点处理模块以相同标志表示不同三角形的坐标相同的顶点包括:确定曲面的最大包围盒,将该最大包围盒等分为多个小包围盒,每个三角形对应一个权 利 要 求 书CN 103106690。
7、 A2/2页3小包围盒,记录小包围盒与三角形的对应关系;及读取各个小包围盒,将读取的小包围盒对应的三角形的顶点坐标与相邻小包围盒对应的三角形的顶点坐标比较,若两个三角形存在坐标相同的顶点,则以相同的顶点标志标示该坐标相同的顶点。7.如权利要求6所述的曲面处理系统,其特征在于,与一个小包围盒对应的三角形落入或穿过该小包围盒。8.如权利要求5所述的曲面处理系统,其特征在于,所述内部三角形删除模块识别曲面的表面三角形及内部三角形包括:根据法向量相同的三角形产生一个平面,得到曲面的所有平面;从该曲面的所有平面中读取一个平面,生成一个沿该读取的平面的法向量方向无限延伸的射平面,计算该射平面与延伸方向上的。
8、所有平面的相交线的数目;及判断相交线的数目为奇数还是偶数,若相交线的数目为奇数,则标志该平面包括的所有三角形为曲面的内部三角形,若相交线的数目为偶数,则标志该平面包括的所有三角形为曲面的表面三角形。权 利 要 求 书CN 103106690 A1/4页4曲面处理系统及方法技术领域0001 本发明涉及一种计算机辅助设计系统及方法,尤其是一种应用于模型重建中的曲面处理系统及方法。背景技术0002 目前,模型重建技术通常是通过构建曲面来实现的,在构建曲面的过程中,根据实物模型的点云数据构建曲面、对曲面利用几何图形例如三角形进行网格化生成纹理,使得构建的曲面更加逼近实物模型,在计算机辅助设计(comp。
9、uter aided design,CAD)中被广泛应用。通常,在三角网格化的过程中,曲面的内部和外部都会产生大量三角形,且多个三角形会共用顶点(坐标相同的顶点)。生成的内部三角形在象征模型表面纹理中的作用不大,但在生成纹理时会产生大量运算量。其次,在生成纹理时,对相同的数据进行多次重复处理(例如多次处理坐标相同的顶点)会占用处理时间降低处理速度。另一方面,输出三角网格化结果一般是利用单线程处理,没有充分利用计算机的内存资源和CPU的占用率。发明内容0003 鉴于以上内容,有必要提供一种曲面处理系统及方法,可以在模型重建生成模型表面纹理的过程中,简化内部三角形纹理生成的运算量,避免重复处理相同。
10、数据,并充分利用CPU资源,在不影响模型重建的立体效果的前提下,提高模型重建的速度。0004 一种曲面处理系统,包括曲面网格化模块、重复顶点处理模块、内部三角形删除模块及多线程执行模块。曲面网格化模块根据计算装置存储的产品的点云数据构建曲面,对曲面进行三角网格化得到曲面的所有三角形,记录各三角形的顶点标志及坐标到一个数据结构。重复顶点处理模块以相同标志表示不同三角形中坐标相同的顶点,直到数据结构中坐标相同的顶点的顶点标志也相同。内部三角形删除模块识别曲面的表面三角形及内部三角形,删除曲面的内部三角形。多线程执行模块获取计算装置的执行单元的数目N,创建N个线程,将曲面的表面三角形分割成若干个小单。
11、位,随机分配给N个线程。N个线程同步执行读取数据结构中三角形的顶点标志及坐标,以输出曲面的所有表面三角形。0005 一种曲面处理方法,该方法包括(A)根据计算装置存储的产品的点云数据构建曲面,对曲面进行三角网格化得到曲面的所有三角形,记录各三角形的顶点标志及坐标到一个数据结构;(B)以相同标志表示不同三角形中坐标相同的顶点,直到数据结构中坐标相同的顶点的顶点标志也相同;(C)识别曲面的表面三角形及内部三角形,删除曲面的内部三角形;及(D)获取计算装置的执行单元的数目N,创建N个线程,将曲面的表面三角形分割成若干个小单位,随机分配给N个线程,N个线程同步执行读取数据结构中三角形的顶点标志及坐标,。
12、以输出曲面的所有表面三角形。0006 相较于现有技术,本发明提供的曲面处理系统及方法,可以在模型重建生成模型表面纹理的过程中,简化内部三角形纹理生成的运算量,避免重复处理相同数据,并充分利用CPU资源,在不影响模型重建的立体效果的前提下,提高模型重建的速度。说 明 书CN 103106690 A2/4页5附图说明0007 图1是本发明曲面处理系统较佳实施例的功能模块图。0008 图2是本发明曲面处理方法较佳实施例的流程图。0009 图3是图2中步骤S20的细化流程图。0010 图4是图2中步骤S30的细化流程图。0011 图5是求取曲面的一个平面的射平面与曲面所有平面的相交线的示意图。0012。
13、 图6利用二维图示辅助说明利用相交线数目的奇偶数判断曲面的三角形是内部三角形还是表面三角形。0013 主要元件符号说明0014 计算装置 1曲面处理系统 10存储设备 20处理器 30显示设备 40曲面网格化模块 11重复顶点处理模块 12内部三角形删除模块 13多线程执行模块 140015 如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式0016 参阅图1所示,是本发明曲面处理系统10较佳实施例的功能模块图。该曲面处理系统10安装并运行于计算装置1。该计算装置1还包括存储设备20、处理器30及显示设备40。该计算装置1可以为计算机或其它任何具有数据处理功能的装置。0017 计算装。
14、置1与点云数据捕获装置2相连接。点云数据捕获装置2扫描得到产品3的点云数据,并传送给计算装置1进行处理。该点云数据捕获装置2可以为镭射扫描仪。0018 该曲面处理系统10包括曲面网格化模块11、重复顶点处理模块12、内部三角形删除模块13及多线程执行模块14。存储设备20存储模块11至14的计算机化程序代码。处理器30执行所述计算机化程序代码,对根据产品的点云数据构建的曲面进行三角网格化,删除三角形重复的顶点及内部三角形,并创建多线程输出网格化得到的表面三角形象征的曲面(具体介绍请参见下文)。显示设备40显示所述输出结果。模块11至14的功能请参说 明 书CN 103106690 A3/4页6。
15、阅图25中的具体介绍。0019 参阅图2所示,是本发明曲面处理方法较佳实施例的流程图。0020 步骤S10,曲面网格化模块11根据产品的点云数据构建曲面,对曲面进行三角网格化得到曲面的所有三角形,记录各三角形的顶点标志及坐标到一个数据结构。例如三角形A的数据结构为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),三角形B的数据结构为P4(x1,y1,z1),P5(x5,y5,z5),P6(x6,y6,z6),其中P1P6表示三角形的顶点标志。0021 步骤S20,重复顶点处理模块12以相同标志表示不同三角形中坐标相同的顶点,直到数据结构中坐标相同的的顶点的顶点标志也。
16、相同(具体说明参见图3)。后续在输出曲面的三角形过程中,处理器30遇到相同顶点标志的顶点,则跳过处理重复的顶点坐标,从而提高处理速度。0022 步骤S30,内部三角形删除模块13识别曲面的表面三角形及内部三角形,删除曲面的内部三角形,只保留曲面的表面三角形(具体说明参见图4)。0023 步骤S40,多线程执行模块14获取处理器30的执行单元的数目N,创建N个线程。例如,若处理器30有12个执行单元,则创建12个线程。0024 步骤S50,多线程执行模块14将曲面的表面三角形分割成若干个小单位,随机分配给N个线程,N个线程同步执行读取数据结构中三角形的顶点标志及坐标,以输出曲面的所有表面三角形。。
17、例如,若曲面有1200个表面三角形,则多线程执行模块14可能将该1200个三角形分成400个小单位,再将该400个小单位随机分配给创建的12个线程,由该12个线程同步执行输出该1200个三角形。0025 参阅图3所示,是图2中步骤S20的细化流程图。0026 步骤S200,重复顶点处理模块12确定曲面的最大包围盒,将该最大包围盒等分为多个小包围盒。曲面的最大包围盒是将曲面包围在内的一个长方体。网格化得到的每个三角形对应一个小包围盒,一个小包围盒对应的三角形落入或穿过该小包围盒。重复顶点处理模块12记录小包围盒与三角形的对应关系。0027 步骤S210,重复顶点处理模块12读取一个小包围盒(例如。
18、包围盒b1),将该小包围盒b1对应的三角形A1的顶点坐标(如P1)与相邻小包围盒(例如包围盒b2)对应的三角形A2的每个顶点坐标(如P4)比较,若顶点P1、P4的坐标相同,则以标志P1替代标志P4,或者以标志P4替代标志P1。例如,三角形A的数据结构为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),三角形B的数据结构为P4(x1,y1,z1),P5(x5,y5,z5),P6(x6,y6,z6),则三角形A、B的顶点P1、P4坐标相同,但标志不同。重复顶点处理模块12以顶点标志P1取代三角形B的数据结构中的顶点标志P4。取代后,三角形B的数据结构为P1(x1,y1,。
19、z1),P5(x5,y5,z5),P6(x6,y6,z6)。0028 步骤S220,重复顶点处理模块12依次读取所有小包围盒,按照步骤S210的方法处理所有三角形的顶点。0029 参阅图4所示,是图2中步骤S30的细化流程图。0030 步骤S300,内部三角形删除模块13根据法向量相同的三角形产生一个平面,得到曲面的所有平面。例如三角形A1与其他三角形的法向量不同,三角形A2A5的法向量相同,三角形A8A11的法向量相同,则内部三角形删除模块13根据三角形A1产生一个平面a1,根据三角形A2A5产生一个平面a2,根据三角形A8A11产生一个平面a3(如图说 明 书CN 103106690 A4。
20、/4页75所示)。这样后续对位于同一个平面的三角形无需逐一判断是否为表面三角形还是内部三角形,只需要以法向量相同的三角形所在的平面作为处理对象,简化处理过程。0031 步骤S310,内部三角形删除模块13从该曲面的所有平面中读取一个平面,生成一个沿该读取的平面的法向量方向无限延伸的射平面,计算该射平面与延伸方向上的所有平面(包括读取的平面)的相交线的数目Q。如图5所示,以三角形A1所在的平面a1的法向量生成一个射平面M1,M1与平面a2a4相交。0032 步骤S320,内部三角形删除模块13判断该射平面与曲面的所有平面(包括读取的平面)的相交线的数目Q为奇数还是偶数。若Q为奇数,则执行步骤S3。
21、30,内部三角形删除模块13标志该读取的平面包括的所有三角形为曲面的内部三角形。若Q为偶数,则执行步骤S340,内部三角形删除模块13标志该读取的平面包括的所有三角形为曲面的表面三角形。之后,流程进入步骤S350。例如,若Q3,则内部三角形删除模块13给平面a1上的三角形A1设置标志“I”;若Q4,则内部三角形删除模块13给平面a1上的三角形A1设置标志“S”。0033 参阅图6所示,是利用二维图示辅助说明利用相交线数目的奇偶数判断曲面的三角形是内部三角形还是表面三角形。图6中的Loop 1是一条封闭的曲线,点d1是Loop 1内部的一个点,点d2是Loop 1外部的一个点(修改图6)。以点d。
22、1作一条射线与Loop 1相交,相交点的数目为1(奇数),以点d2作一条射线与Loop 1相交,相交点的数目为2(偶数)。类似地,曲面是一个封闭的三维空间区域,该封闭的三维空间区域内部的平面的射平面与该封闭的三维空间区域的所有平面的相交线为奇数,而该封闭的三维空间区域外部平面的射平面与该封闭的三维空间区域的所有平面的相交线为偶数。0034 步骤S350,内部三角形删除模块13判断该曲面是否还有其它平面未被读取,若还有其它平面未被读取,则流程自步骤S310开始重复,直到曲面的所有三角形都被识别是内部三角形还是表面三角形。0035 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。说 明 书CN 103106690 A1/5页8图1说 明 书 附 图CN 103106690 A2/5页9图2说 明 书 附 图CN 103106690 A3/5页10图3说 明 书 附 图CN 103106690 A10。