[发明专利]一种基于Unity3D模型的切割方法有效
申请号: | 201911413127.5 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111145356B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 李建森 | 申请(专利权)人: | 威创集团股份有限公司 |
主分类号: | G06T17/20 | 分类号: | G06T17/20;G06T7/10;G06F3/0487 |
代理公司: | 广州润禾知识产权代理事务所(普通合伙) 44446 | 代理人: | 林伟斌 |
地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 unity3d 模型 切割 方法 | ||
1.一种基于Unity3D模型的切割方法,其特征在于,包括以下步骤:
S1、检测鼠标在模型上的划线操作,根据检测到的鼠标在模型上的划线操作生成虚拟切割面Plane,所述模型包括顶点和由每三个所述顶点形成的三角面,且将所述虚拟切割面Plane信息、模型信息存储于存储组件中;
S2、从模型中提取模型的顶点数据,根据模型的顶点数据和虚拟切割面信息获取所述模型中与所述虚拟切割面Plane相交的三角面IntersectTri;
S3、以所述三角面IntersectTri中的与其两个顶点P1、P2不在所述虚拟切割面Plane的同一侧的顶点P0为端点,分别朝向P1、P2发出射线,检测射线与切割面Plane的相交点n1、n2,存储射线与切割面Plane相交的两点n1、n2信息,依据交点n1、n2与顶点P1、P2、P3模拟构建分配于两侧的第一类新三角面;提取并统计所有三角面IntersectTri对应n1、n2交点以及第一类新三角面,存储形成新顶点信息和两侧第一类新三角面信息;
S4、对新顶点信息重新排序,提取排序后顶点信息模拟创建剖面上封闭的多边形,并生成位于剖面上的第二类新三角面填充剖面;
S5、根据提取到的模型顶点数据构建所述模型的克隆模型;定位至模型和克隆模型信息在存储组件中的存储区,将位于切割面Plane两侧的顶点信息分别分配至模型和克隆模型存储区进行覆盖并解析,解析后渲染为在图像界面上位于虚拟切割面两侧的两个独立子模型可视化图像,并依据虚拟切割面信息、预输入距离,移动两个子模型图像实现切割分离效果;
步骤S2具体包括:
S21、从模型中提取模型顶点数据,并检测模型每个顶点相对于虚拟切割面的位置,依据检测结果将所有顶点分配为两组顶点;
S22、将两组顶点的信息传输至存储组件,存储组件内存储有PositiveMesh、NegativeMesh数组数据结构,两组顶点分别存入至PositiveMesh、NegativeMesh数组中;
S23、遍历模型三角形索引数组,判断PositiveMesh数组是否全包含或全不包含一个三角面的三个顶点,若全包含或全不包含则为非相交三角面,否则为相交三角面IntersectTri;
步骤S3具体包括:
S31、依据模型顶点数据以及顶点的分组信息定位一个三角面IntersectTri中的与其包含的另两个顶点P1、P2不在同一侧的顶点P0位置;
S32、以P0为发射原点设置分别朝向P1、P2的射线对象;
S33、检测射线与虚拟切割面Plane的相交点n1、n2并对n1、n2信息进行存储;
S34、以交点n1、n2和顶点P0、P1、P2模拟构建分配于两侧的第一类新三角面,依据第一类新三角面重新分配三角形索引,并依据P0、P1、P2顶点分组信息将新三角索引分别存入至PositiveMesh、NegativeMesh数组中;
S35、对所有三角面IntersectTri重复步骤S31~S34,提取并统计所有三角面IntersectTri对应n1、n2交点以及第一类新三角面信息,存储形成新顶点信息和两侧第一类新三角面信息;
步骤S4具体包括:
S41、存储步骤S3新顶点信息至存储组件的一个向量数组数据结构中;
S42、读取和写入存储组件信息对向量数组重新排序,然后从存储组件中提取排序后顶点信息,依据索引i、i+1定义剖面每个线段,同时依据i、i+2获取相邻两个线段,检测线段一端顶点索引与i+1索引是否相同,排除重复点,模拟创建形成一个封闭的多边形;
S43、通过线段夹角判断封闭多边形中相邻线段是否共线,并合成共线线段为一条线段,返回非共线线段相交顶点信息存入数组face中;
S44、依据face顶点信息数组排序组合形成第二类新三角面,进行补面填充,并将补面顶点信息存入PositiveMesh和NegativeMesh数组中;
在步骤S44补面填充过程中,按照逆时针顺序,记三角形索引startIndex=0,endIndex=face.count-1,第奇数个三角形顶点索引为:
{startIndex,startIndex+1,endIndex},startIndex++;第偶数个三角形顶点索引为:{startIndex,endIndex-1,endIndex},endIndex--;并将补面顶点信息分别存入PositiveMesh、NegativeMesh数组中;
根据提取到的模型顶点数据构建所述模型的克隆模型,模拟构建并统计PositiveMesh、NegativeMesh数组对应形成的网格面积大小,定位至模型和克隆模型信息在存储组件中的存储区,分别将面积大的对应数组内顶点信息、面积小的对应数组内顶点信息分配至模型数据存储区、克隆模型数据存储区进行覆盖,对两个存储区覆盖后信息进行解析,解析构建为位于虚拟切割面两侧的两个独立子模型,再渲染两个独立子模型为在图像界面上的可视化图像;并依据虚拟切割面信息移动两个子模型图像预输入距离实现切割分离效果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于威创集团股份有限公司,未经威创集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911413127.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种密码获取方法、电子设备及服务器
- 下一篇:云手机监控系统和方法