[发明专利]一种基于vtk处理obj文件的方法有效
申请号: | 201710034246.4 | 申请日: | 2017-01-18 |
公开(公告)号: | CN106846489B | 公开(公告)日: | 2019-04-30 |
发明(设计)人: | 杨育彬;刘路飞 | 申请(专利权)人: | 南京大学 |
主分类号: | G06T17/30 | 分类号: | G06T17/30;G06T19/00 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 胡建华;于瀚文 |
地址: | 210023 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 vtk 处理 obj 文件 方法 | ||
1.一种基于视觉化工具函式库vtk处理obj文件的方法,其特征在于,包括如下步骤:
步骤1,读取obj文件三维模型里的面片,构造倒排索引表;构造的倒排索引表中,索引项为边,值为面片;
步骤2,寻找共享顶点:面片顶点的标识符为<顶点id,纹理坐标k>,id表示顶点的标识号,读取第n个面片顶点时,则该面片顶点的标识符为<顶点idn,纹理坐标kn>,idn表示第n个面片顶点的标识号,kn表示第n个面片顶点的纹理坐标,n取值为自然数,若该面片顶点的复制中存在映射到纹理坐标kn的映射关系,且面片仍存在其它未读取的顶点,转步骤2;其它情况转步骤3;
步骤2中,寻找的共享顶点处于面边缘,一个共享顶点是否处于面边缘等价于所述共享顶点周围是否都被面片所占据,以该共享顶点为中心,将其邻域360等分,一份表示一度,形成的空间称为360度空间,在寻找过程中,将当前面的边缘点都保存在一个队列中,当新加入面片后,实时更新所述队列,更新规则如下:
针对该面片上的每一个顶点,将寻找到的能够共享的顶点从队列中删除;
对于不能共享的顶点处理如下:将在当前面片中的角增加到该顶点所对应的360度空间中,如果360度空间被填满,则删除该顶点,否则仅更新该顶点所对应的360度空间;
寻找到共享顶点之后,如果能够共享,继续处理面片下一个顶点,否则,转步骤3;
步骤3,产生新的顶点:如果寻找到了共享顶点,则更新构建面片顶点id,转步骤5;如果没有找到,则产生和顶点idn位置一样的顶点,转步骤4;
步骤4,增加面片:增加一个连接新旧顶点的面片,并将新顶点加入顶点集,所述顶点集为已读取的所有面片顶点的集合;
步骤5,如果面片仍有后续顶点未处理,转步骤2;如果三维模型还有后续面片,转步骤1;其它情况转步骤6;
步骤6,三角面片化:将所有面片拆分为三角面片;
步骤7,曲面平滑:运用loop曲面细分算法,平滑模型。
2.根据权利要求1所述的方法,其特征在于,步骤3中,根据倒排索引表获悉步骤2中增加的面片属于360度空间中哪一块扇形空白区域,将该扇形空白区域的两边端点取出分别记作A和B,记共享顶点为X,采用以下规则产生新的跟X位置一样的顶点Y:
Y1=α*X1+β*A1+γ*B1,
其中,Y1表示顶点Y的坐标,X1表示共享顶点X的坐标,A1和B1分别表示点A的坐标和点B的坐标,α+β+γ=1且α,β,γ>0,α,β,γ分别表示顶点X的比重系数、顶点A的比重系数、顶点B的比重系数,顶点Y对应的纹理坐标Yt为:
Yt=α*Xt+β*At+γ*Bt,
其中,At和Bt分别为点A对应的纹理坐标和点B对应的纹理坐标,然后交换X与Y,即将顶点id所对应的内容互换。
3.根据权利要求2所述的方法,其特征在于,步骤4中,所增加的面片不与原有的面重叠,并且所增加面片的AXBY、BXAY两者法向量方向的选择遵循相邻面片法向量一致的原则,面片法向量由右手定则确定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710034246.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:排水彻底的管翅式换热器
- 下一篇:一种自除尘热交换装置