当前位置: 首页 > 专利查询>武汉大学专利>正文

三维网格模型的剖切方法技术

技术编号:2951966 阅读:325 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及三维虚拟场景中的三维网格模型的数据结构和实时剖切操作,特别涉及对保证这种操作剖切成的子三维网格模型的完整性,以及和原三维网格模型数据结构一致性的三维网格模型的剖切方法。本发明专利技术直接在三角网格模型的顶点数组和三角面片数组上实现三角网格模型的平面剖切,避免计算并建立半边数据结构所需的系统开销。若三维网格模型的面片不是三角面片,需要将每个面片剖分为多个三角面片,从而将三维网格模型转化为三角网格模型。

【技术实现步骤摘要】

本专利技术涉及三维虚拟场景中的三维网格模型的数据结构和实时剖切操 作,特别涉及对保证这种操作剖切成的子三维网格模型的完整性,以及和 原三维网格模型数据结构一致性的。
技术介绍
网格模型是一种重要的三维形体表示方法,其中三角网格使用最为广泛。网格模型可以以任意精度表示任意复杂的曲面和空间形体。在CAD/CAM 领域,由曲线和曲面造型构造出的空间形体模型一般都转化为网格模型来 进行存储和共享,CAM设备可直接利用网格模型数据进行加工和生产。在地 理空间信息科学等领域,从大量的点云数据中重建的三维形体也大多转化 为三角网格模型进行存储和管理,便于采用不同的方法进行后续处理和分 析,提取不同实际应用所需要的重要信息。随着几何造型领域的不断发展, 网格模型成为三维形体的主流描述方式之一。面对机械设计和生产加工中无处不在的网格模型,实现任意实体网格 模型的剖切,进而计算实体模型不同部分的特征信息,具有较大实用价值 和现实意义。为此,本文提出一种可以对任意三角网格模型进行平面剖切 的方法,该方法根据所指定任意平面,直接在三角网格模型的三角面片集 合上实现剖切计算,将任意拓扑结构的三角网格模型剖切为子三角网格。 由于避免了将三角网格模型转换为特定的数据结构进行存储、管理和维护 所带来的空间和时间复杂性,从而能实现三角网格模型的快速、高效剖切。对于任意一个给定的三维网格模型,只有所有面片围成有限封闭空间 的网格模型才构成计算机图形学意义上的正则三维形体。常用网格模型的 每个面片是平面凸多边形,且网格上的每条边由且仅由两个面片共有。在 网格模型中,每个面片的边数可能是变化的,网格模型的每个面片都是三 角形时称之为三角网格。非三角网格可以通过网格模型中每个凸多边形面 片的三角剖分来将其转换为三角网格。为了能统一地描述各类网格模型,需要设计一种通用的网格数据结构。 目前,最常用的网格数据表示方法是半边数据结构。半边数据结构以边为 中心来组织网格模型的所有顶点、边和面数据。对于网格模型中的任意一条边e,将其分为两条半边e,和&,每条半边记录中包括a,…,a共五个 表示邻接关系的指针a指向该半边顶点;p,指向同一面片的下一条半边; a指向本条半边所属面片;a指向属于同一条边的另一半边;a指向属于同 面片的前一条半边。此外,每个顶点记录包含一个以该顶点为起点的任一 条半边的指针a;每个面片记录包含一个指向属于该面片的任一条半边的 指针a。在建立起整个网格模型的半边结构后,可以通过上述指针访问整 个网格的数据。半边数据结构可以表示任意网格。因此,如果采取半边数据结构可以表示任意网格表示三角网格,则需 要根据所读取的三角网格存储信息计算并建立其半边数据结构,如根据读 取的三角网格顶点列表和三角面片列表构造半边,计算点、边和三角面片 的邻接关系并添加到网格的半边数据结构中等。
技术实现思路
目前常用的三维网格模型剖切方法主要是采用平面剖切、开窗或用户 交互选择面片带的方式来实现剖切。本专利技术可通过指定剖切方向和剖切线8切,剖切方向和剖切线均可根据用户要求来指 定,当剖切线只包含一条线段时即可实现平面剖切;当剖切线为封闭多边 形时即可实现各种形状的开窗;剖切线可任意设置,对剖切线中每条线段 的长度没有限制,比选择面片带进行剖切的方式要更为精确。因此,目前 常用剖切方法是本专利技术的特例。此外,本专利技术直接在三维网格模型的顶点 数组和面片数组信息上实现剖分计算,确保剖分形成的两个子三维网格模 型的完整性,并提出了一种快速多边形三角剖分方法,是更灵活、更精确、 更快速的三维网格模型剖切方法,可以满足地理信息、医学、工程施工等 领域对地形三维网格模型、人体三维网格模型和施工工程三维网格模型等 进行精确剖切、体积和面积等信息计算的需要。本专利技术的上述技术问题主要是通过下述技术方案得以解决的 一种,其特征在于,包括以下步骤 步骤一,模型转换装置将三维网格模型转换为三角网格模型; 步骤二,模型剖切预备装置对步骤1中转换后的三角网格模型指定剖 切方向和剖切线;步骤三,模型剖切装置对步骤2中己经指定剖切方向和剖切线的三角网格模型进行剖切。在上述的中,所述的步骤1中具体的转换方法如下步骤2. 1,三角面片剖分单元将三维网格模型的各个多边形面片剖分为 三角形面片;步骤2. 2,数组组合分配单元将上述步骤1中剖分的三角形面片的顶点 数组和三角面片数组存储到数组存储单元,完成所有三角面片的信息添加 分配后得到的三角面片数组和顶点数组即构成了三角网格模型,其中顶点9数组的每个元素存储有包括一个顶点的三维坐标、法线向量和纹理坐标, 三角面片数组中每三个元素表示一个三角面片;在上述的中,所述的步骤2中,指定剖切方向 的具体方法如下由剖切方向指定单元指定三维空间中与剖切方向平行的 矢量,即剖切方向。在上述的中,所述的步骤2中,指定剖切线的 具体方法如下由剖切线指定单元指定垂直剖切方向的二维平面内的顶点 序列即构成的剖切线,所述的剖切线是位于垂直剖切方向平面内的直线或 者曲线。在上述的中,所述的步骤3中,对已经指定剖 切方向和剖切线的三角网格模型进行剖切的具体方法,由剖切面片判断单 元对上述若干三角面片是否与剖切面相交选择执行下面步骤步骤5. 1,若剖切面片判断单元判断剖切面与上述剖切后的三角面片不 相交首先由三角面片位置判断单元判断三角面片位于剖切面的正侧或反 侧,数组组合分配单元将三角形面片的信息分配到正侧或反侧子三角网格 模型的三角面片数组和顶点数组中,并将三角面片数组和顶点数组存储到 数组存储单元中,完成所有三角网格模型的所有三角面片的信息添加分配后得到的正侧和反侧三角面片数组和顶点数组即构成了正侧和反侧的子三 角网格模型一;步骤5. 2,若剖切面片判断单元判断剖切面与上述剖切后的三角面片相 交,则按照以下步骤进行步骤5.21.首先由多边形面片剖分单元将三角面片剖分为位于正侧和 反侧的两个多边形面片,然后由三角面片剖分单元将正侧和反侧的两个多 边形面片剖分为三角形面片,数组组合分配单元将剖分为三角形面片的信10息添加分配到正侧或反侧子三角网格模型的三角面片数组和顶点数组中, 并将三角面片数组和顶点数组存储到数组存储单元中,完成所有三角网格 模型的所有三角面片的信息添加分配后得到的正侧和反侧三角面片数组和 顶点数组即构成了正侧和反侧的子三角网格模型二;步骤5.22.交点计算单元根据三角面片与剖切面的所有交点计算该剖 切截面的剖面多边形;步骤5. 23.三角面片剖分单元将将步骤5. 22中剖面多边形剖分为三角 面片,数组组合分配单元并将剖分后的三角面片信息添加到正侧和反侧子 三角网格模型的三角面片数组和顶点数组中,并将三角面片数组和顶点数 组存储到数组存储单元中,完成所有三角面片的信息添加分配后得到的该 剖切截面的子三角网格模型三。在上述的中,所述的步骤5.22中,根据三角 面片与剖切面的所有交点计算该剖切截面的剖面多边形的具体方法为步骤6. 1,由区域分配模块计算折线段中的每条线段沿剖切方向扫描形 成的平面条形区域;步骤6.2,由多边形获取模块计算每个条形区域和三角网格模型的每个 三角面片的两个交点,即包括条形区域两条端线与所有面片的交点构成的 交线,根据条形本文档来自技高网
...

【技术保护点】
一种三维网格模型的剖切方法,其特征在于,包括以下步骤: 步骤一,模型转换装置将三维网格模型转换为三角网格模型; 步骤二,模型剖切预备装置对步骤1中转换后的三角网格模型指定剖切方向和剖切线; 步骤三,模型剖切装置对步骤2中已 经指定剖切方向和剖切线的三角网格模型进行剖切。

【技术特征摘要】

【专利技术属性】
技术研发人员:王泉德
申请(专利权)人:武汉大学
类型:发明
国别省市:83[中国|武汉]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1