Page 226 - 机械设计制造与自动化技术研究
P. 226
Research on Mechanical Design, Manufacturing and Automation Technology
机械设计制造与自动化技术研究
这部分内容首先对 Unity3d 中的网格模型进行基本信息的提取,并进行三角
网格拓扑重建,其次采用基于边与基于面结合的方法进行模型特征边的提取,并
利用文中提出的基于邻接点的特征边自动生成算法将离散的特征边连接得到完整
的边界曲线,最后将边界曲线进行三次样条曲线的拟合,得到需要的焊接轨迹。
1. 三角网格模型拓扑信息重建
Unity3d中,不管是外部输入的模型还是通过Unity生成的模型均为网格结构,
外部由三角面片组成,内部中空,这种结构能有效减少模型的体积,但缺乏实体
的信息。Unity 提供 Mesh 类,用于存储网格信息及网格再次编辑。Mesh 类主要
包含顶点(Vertex)与三角面片数组(Triangles)的信息。
Unity 中的网格模型包含了大量散乱、无序的三角面片,造成大量的顶点冗
余现象,不利于模型数据的处理。以 Unity 中的一个正六面体为例,其 Mesh 包
含了 12 个三角面片,36 个顶点,但实际顶点数仅为 8 个,重复的顶点数多达
300%,因此必须对网格模型进行拓扑重建,剔除其中大量的冗余点,并建立三
角面片间的拓扑关系。
在 Unity 中,为了保证网格模型的正确性,三角面片必须遵循以下规则:一
是共顶点原则。在两个相邻三角形间,仅有两个共用顶点;二是取向原则。网格
中的三角面片的法向量必须指向模型的外部,且顶点排序满足左手法则;相邻三
角形的顶点则需满足各自三角形内部的顶点排序原则;三是充满原则。网格模型
的所有表面均布满三角形面片,无裂缝和破孔现象。
根据 Unity 中网格模型的特点以及三角面片规则,这部分首先提出一种基于
排序的三角网格模型快速拓扑重建算法。算法主要分为三个步骤。
(1)冗余点剔除
在网格模型中,顶点是最基本的组成部分,由上文可知,顶点在模型中的重
复率非常高;Unity 中网格的顶点存储在 vertices 数组中,其中包含了大量重复坐
标值的点。
这部分内容建立 Vertex 类,用于模型中顶点信息的存储及处理。重写 Vertex
类中继承自 lEquatable < I >接口的 EqualsQ 比较函数,以顶点坐标作为判断两
顶点是否相同的标准。
重复点剔除的关键是保证数据的唯一性。这部分利用 HashSet 结构进行重复
点的剔除。对于HashSet中每个数据都对应一个唯一的键值,保证了数据的唯一性。
·212·

