[发明专利]一种基于vtk处理obj文件的方法有效
申请号: | 201710034246.4 | 申请日: | 2017-01-18 |
公开(公告)号: | CN106846489B | 公开(公告)日: | 2019-04-30 |
发明(设计)人: | 杨育彬;刘路飞 | 申请(专利权)人: | 南京大学 |
主分类号: | G06T17/30 | 分类号: | G06T17/30;G06T19/00 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 胡建华;于瀚文 |
地址: | 210023 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 vtk 处理 obj 文件 方法 | ||
本发明公开了一种基于vtk处理obj文件的方法,步骤1:读取obj文件里面的面片,构造倒排索引表。步骤2:寻找共享顶点。步骤3:产生新的顶点。如果寻找到了共享顶点,则更新构建面片顶点id,转步骤5。如果没有找到,则产生新的位置一样的顶点,后转步骤4。步骤4:增加面片。产生了新的顶点,为了新旧顶点之间的连续性,需要增加一个连接新旧顶点的面片,并将新顶点加入顶点集。步骤5:后续顶点与后续面片,面片仍有后续顶点未处理,转步骤2。模型还有后续面片,转步骤1。步骤6:三角面片化,该步骤将所有面片拆分为三角面片组成。步骤7:曲面平滑。运用loop曲面细分算法,平滑模型。
技术领域
本发明属于计算机图形学领域,尤其涉及一种基于vtk处理obj文件的方法。
背景技术
三维模型是物体的多边形表示,通常用计算机或者其它视频设备进行显示。显示的物体可以是现实世界的实体,也可以是虚构的物体。任何物理自然界存在的东西都可以用三维模型表示。
对于表情光滑的物体,所需要的多边形数量就越多,如果数量不足就会使得构建处理的三维模型不够平滑,此时就需要应用曲面细分算法来自动的增加面片数量,使得模型平滑,然而曲面细分算法所要求的输入面面是连续的,离散面片构造的曲面直接应用细分算法将会产生很多空洞。对于多边形的顶点,可能会对于多个纹理坐标,然而在vtk(视觉化工具函式库,Visualization Toolkit)中一个顶点id(身份证,identification)只能与一个纹理坐标id相对应,这就使得一个顶点不够用,需要增加新的位置一样的。
发明内容
发明目的:对于纹理坐标不一样的顶点,为了应用曲面细分算法,还要保证面片之间的连通性,本发明提出了一个在不改变模型的基础上,合理增加面片以保证所有面片是连通的方法。
针对vtk内置类vtkObjReader(vtk工具库自带的.obj格式文件处理类)存在不足的情况下,本发明提供了一种处理obj文件的方法。
本发明具体包括如下步骤:
步骤1:面片读取。读取obj文件三维模型里的面片,构造倒排索引表。
步骤2:寻找共享顶点:面片顶点的标识符为<顶点id,纹理坐标k>,id表示顶点的标识号,由于一个顶点对应着多个纹理坐标(三维模型顶点规定着模型的空间位置关系,顶点所对应的纹理坐标规定着模型表面的图案,即贴图)。所以这样的顶点需要产生多个复制。读取第n个面片顶点时,则该面片顶点的标识符为<顶点idn,纹理坐标kn>,idn表示第n个面片顶点的标识号,kn表示第n个面片顶点的纹理坐标,n取值为自然数,若该面片顶点的复制中存在映射到纹理坐标kn的映射关系,且面片仍存在其它未读取的顶点,转步骤2;其它情况转步骤3;
步骤3:产生新的顶点。如果寻找到了共享顶点,则更新构建面片顶点id,转步骤5。如果没有找到,则产生和顶点idn位置一样的顶点,转步骤4;
步骤4:增加面片:增加一个连接新旧顶点的面片,并将新顶点加入顶点集,所述顶点集为已读取的所有面片顶点的集合;
步骤5:如果面片仍有后续顶点未处理,转步骤2;如果三维模型还有后续面片,转步骤1;其它情况转步骤6;
步骤6:三角面片化,由于整个模型包含许多面片,面片的顶点数不一,为了简化计算纹理坐标时的插值运算,以及后续在模型上能够运行曲面细分算法,该步骤将所有面片拆分为三角面片组成。
步骤7:曲面平滑。运用loop曲面细分算法,平滑模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710034246.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:排水彻底的管翅式换热器
- 下一篇:一种自除尘热交换装置