[发明专利]一种基于网格优化的可变形对象的虚拟切割算法在审

专利信息
申请号: 201911147478.6 申请日: 2019-11-21
公开(公告)号: CN110880180A 公开(公告)日: 2020-03-13
发明(设计)人: 王沫楠;马玉政;刘峰杰 申请(专利权)人: 哈尔滨理工大学
主分类号: G06T7/10 分类号: G06T7/10;G06T5/00;G06T17/20
代理公司: 暂无信息 代理人: 暂无信息
地址: 150080 黑龙*** 国省代码: 黑龙江;23
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 网格 优化 变形 对象 虚拟 切割 算法
【权利要求书】:

1.一种基于网格优化的可变形对象的虚拟切割算法,其特征在于所述方法的步骤如下:

步骤一、对所有与切割轨迹相交的四面体单元执行网格划分,生成切割面;

步骤二、对网格模型执行网格优化操作,消除网格划分后的畸形单元;

步骤一所述的对四面体单元执行网格划分,具体操作依次包括构造并维护存储网格模型的数据结构,插入点,插入边,插入面,构造切割面使网格分裂,形成切口;

步骤二所述的网格优化,具体操作为对整体四面体单元执行尺寸控制,选定优化区域,并对选定的局部网格执行几何优化和拓扑优化;

根据步骤一中所述的构造并维护存储网格模型的数据结构操作,其特征在于:

对于读取的网格数据,将网格数据按照半边和半面结构存储,以便于查找网格元素的相邻关系,同时维护一个unionfind,以便于记录网格节点间的连通关系,每次改变网格结构都需要相应的更新这些数据结构;

根据步骤一中所述的四面体单元网格划分的插入点操作,其特征在于:

对于内部四面体网格,如果被切割的四面体有多于两条边与切割轨迹相交,则相交点可以构成一个多边形,在多边形的重心处插入节点v_inner,连接v_inner与四面体的四个点,通过节点v_inner对四面体执行1-4分裂;如果被切割的四面体与切割轨迹的相交边不多于两条,则延伸切割轨迹,使切割轨迹与四面体相交的边的数量多于两条,此时相交点可以构成一个多边形,在此多边形的重心处插入节点v_inner,连接v_inner与四面体的四个点,通过节点v_inner对四面体执行1-4分裂;

对于表面四面体网格,判断是否为完全切割,如果是完全切割,则在切割轨迹与表面三角形的相交点的中点处插入节点v_boundary,连接v_boundary与四面体中位于表面的三个点,通过节点v_boundary对表面体执行1-3分裂;如果为部分切割,则在切割轨迹与表面三角形相交的终点处插入节点v_boundary,连接v_boundary与四面体中位于表面的三个点,通过节点v_boundary对表面四面体执行1-3分裂;

根据步骤一中所述的四面体单元网格划分的插入边操作,其特征在于:

对于内部四面体网格,在执行1-4分裂之后,原四面体的每个面会成为新四面体的一个面f,对于以面f为公共面的相邻四面体,连接相邻四面体的插入点v_inner,如果相邻四面体中有一个是表面四面体,则连接插入点v_inner和v_boundary,插入一条边e_inner,以边e_inner作为公共边对这两个相邻的四面体执行2-3翻转,此时每条与切割轨迹相交的边e的周围都存在一个由n个点v_inner或v_boundary构成的一个封闭多边形ply,多边形ply中的每条边的两个顶点与e的两个顶点都构成一个四面体,即每条与切割轨迹相交的边e为n个四面体的公共边;

对于表面四面体网格,在执行1-3分裂之后,判断是否需要保留模型特征,如果不需要保留模型特征,原四面体除表面三角面之外的三个面都是新四面体的一个面f,对于以面f为公共面的相邻四面体,连接相邻四面体的插入点v_inner和v_boundary,插入一条边e_boundary,以边e_boundary作为公共边对这两个相邻的四面体执行2-3翻转;如果需要保留模型特征,则连接相邻四面体的插入点v_boundary,在与f的边的交点处插入点v_mid,分别连接相邻四面体的v_boundary与v_mid构造边e_bisection,通过边e_bisection将相邻的每个四面体分裂成两个新的四面体,实现2-4分裂,此时每条与切割轨迹相交的边e的周围都存在一个由n个点v_inner或v_boundary构成的一个封闭多边形ply,多边形ply中的每条边的两个顶点与e的两个顶点都构成一个四面体,即每条与切割轨迹相交的边e为n个四面体的公共边;

根据步骤一中所述的四面体单元网格划分的插入面和构造切割面操作,其特征在于:

对每条与切割轨迹相交的边e,对包围e的多边形ply执行最优三角剖分,构造出一个由(n-2)个三角形构成的切割面S,删除边e,e的两个顶点分别与这(n-2)个三角形构成2(n-2)个四面体,即用2(n-2)个四面体替换原来的n个四面体,将新生成的2(n-2)个四面体沿切割面S分裂开,形成切口。

2.根据权利要求1所述的步骤二中所述的四面体单元尺寸控制,其特征在于:

在读取网格数据之后,对于网格中的四面体单元的边长设置一个取值区间,如果四面体单元中的边的长度大于此区间,则通过在这条边的中点处插入新节点,并通过该节点将包含这条边的四面体分裂为多个四面体;如果四面体单元中的边的长度小于此区间,则对这条边执行边收缩操作,将其收缩为一点,并更新所有包含这条边的四面体单元;

根据步骤二中所述的选定优化区域,其特征在于:

对每个与切割轨迹相交的四面体,称为中心四面体,以每个中心四面体的顶点为中心,向外扩展,通过顶点可以搜索到对应的四面体区域,将中心四面体完全包裹,如果中心四面体的数量小于阈值则向外扩展一层,以新扩展的四面体区域作为新的中心四面体区域,如果中心四面体区域的数量小于阈值则在外扩一层的基础上继续向外搜索一层;

根据步骤二中所述的几何优化和拓扑优化,其特征在于:

所述的几何优化包括Laplacian Smoothing和基于目标函数的优化,即移动四面体网格中顶点的位置来改善网格的整体质量;所述的拓扑优化包括边翻转,边删除,多面删除,边收缩,面收缩,体收缩和多面收缩等操作,即通过改变网格顶点之间的连接关系或者将局部区域的四面体重构来实现网格质量的提高,在执行局部优化时,将待处理的局部网格复制,对副本执行优化操作而不改变原网格结构,只有当网格质量得到提升时才用局部网格的副本替代原局部网格;

所述的面收缩,其特征在于,根据网格质量标准搜索低质量网格单元e_illshape,对e_illshape的每个面f_illshape,获取f_illshape的三个顶点,并尝试将其收缩为一点,然后更新与f_illshape的顶点相连接的全部四面体,并对收缩点执行平滑操作,如果新网格的质量得到提升则保留此操作,用新局部网格替代原局部网格,更新unionfind,否则删除局部网格副本并对下一个面执行面收缩;

所述的体收缩,其特征在于,根据网格质量标准搜索低质量网格单元e_illshape,获取e_illshape的四个顶点,并尝试将其收缩为一点,然后更新与e_illshape的顶点相连接的全部四面体,并对收缩点执行平滑操作,如果新网格的质量得到提升则保留此操作,用新局部网格替代原局部网格,更新unionfind,否则删除局部网格副本并对下一个四面体执行体收缩;

所述的多面收缩,其特征在于,根据网格质量标准搜索低质量网格单元e_illshape,可以获取与e_illshape存在公共面的相邻单元,对于公共面两侧的两个点O1和O2,可以得到两点之间的中间区域,即一些三角面片,所有相互连通并且至少存在两个公共点的三角面片称为一个component,如果O1和O2的中间区域只存在一个component,而且满足多面删除的要求,则执行多面删除;然而,传统多面删除要求中间面为凸多边形并且内部不存在额外的节点,在网格优化的实际操作中,很多情况下得到的中间面并不会满足多面删除的要求,如果这个component内部存在一个节点,则分别尝试对内部点O执行平滑和删除节点O并连接O1O2的操作,从而得到新的局部四面体网格,分别比较执行两种操作后的局部网格和原网格的质量,如果新的局部网格的质量得到提升则保留该操作,用新的局部网格替代原局部网格并更新unionfind,否则保留原网格并删除其他局部网格副本;如果O1和O2的中间只存在一个component,并且内部存在多个节点,则尝试将这些节点收缩到一个节点,然后对该节点执行平滑操作,得到新的局部四面体网格,如果新的局部网格的质量得到提升则保留该操作,用新的局部网格替代原局部网格并更新unionfind,否则删除收缩节点,将O1和O2连接,与周围边构成四面体,从而得到新的局部四面体网格,如果新的局部网格的质量得到提升则保留该操作,用新的局部网格替代原局部网格并更新unionfind,否则保留原局部网格;如果O1和O2的中间存在多个component,则尝试对每个component单独执行边翻转,边删除,多面删除,边收缩,面收缩,体收缩和多面收缩等操作,为每个component执行最优的操作,如果得到的新局部网格质量相比原网格质量有所提升,那么保留新局部网格,否则保留原局部网格;如果O1和O2的中间只存在一个component,但是存在某个连接处只存在一个节点,那么对于这种只有一个点连接的情况按照多个component处理,并尝试对每个component单独执行边翻转,边删除,多面删除,边收缩,面收缩,体收缩和多面收缩等操作,为每个component执行最优的操作,如果得到的新局部网格质量相比原网格质量有所提升,那么保留新局部网格,否则保留原局部网格;

所述的网格优化遵循爬山法,即只有可以提升网格质量的操作才允许更改网格结构,整体流程为,首先对整体四面体单元执行尺寸控制,然后对于每一个内部节点执行几何优化,即首先执行Laplacian平滑,如果通过平滑可以改善网格质量则执行下一步操作,否则对该点执行基于目标函数的优化,之后根据网格质量标准搜索病态单元,对于每个病态单元,尝试对其执行边删除,如果网格质量提升则保留更改,否则执行多面收缩,如果网格质量提升,则保留更改,否则执行面收缩和体收缩,并对更改后的点执行平滑操作。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨理工大学,未经哈尔滨理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911147478.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top