一种多面体模型减面方法与流程

文档序号:12127776阅读:1775来源:国知局

本发明涉及计算机图形学领域诸如游戏开发、3D渲染、3D造型等领域中的模型计算、特征计算等,尤其涉及一种多面体模型减面方法。



背景技术:

由于3D模型在外型上由非常多的点组成,如何提取出对模型外型影响大的点来构建模型对于各种商业领域有巨大需求,尤其在如模型相似度匹配、模型轮廓计算、模型减面等领域有大量的实际应用。多面体减面的核心是剔除不重要的顶点,而是否剔除顶点的依据是该点对多面体外型的影响程度,所以,计算一个顶点对多面体模型的影响程度是多面体模型构建的关键。现有技术下,主要是通过计算去掉一个顶点之后的模型体积与原模型体积的差值,差值最小的那个顶点即为最小影响顶点,直接去掉最小差值对应顶点,对模型的外形影响较小。但是这样的方式,计算开销特别大,程序计算复杂度高,准确度也不高,使用这样的方式进行减面之后模型的还原度也不高。



技术实现要素:

为了解决上述问题,本发明提供一种易于实现且准确度高的多面体模型减面方法。

本发明的一种多面体模型减面方法,包括如下步骤:

T1、初始化模型,得到模型所有顶点信息,并设置模型减面目标顶点数;

T2、找出被检测顶点P的所有相邻顶点,找出被检测顶点P与所有相邻顶点组成所在模型的表面三角形并计算所有表面三角形的面积;

T3、依次计算被检测顶点P与每一个相邻顶点的矢量,利用步骤T2中计算得到的表面三角形面积与本步骤中得到的被检测顶点P与每一个相邻顶点的矢量,计算得到被检测顶点P向每一个相邻顶点塌陷引起的体积变动值;

T4、将被检测顶点P向每一个相邻顶点塌陷引起的体积变动值进行排序,得到最小体积变动值,该最小体积变动值为被检测顶点P在指定方向上对模型的轮廓贡献值;

T5、转到步骤T2,依次计算模型所有顶点对模型的轮廓贡献值,直到所有顶点的轮廓贡献值计算完毕,转到步骤T6;

T6、对模型所有顶点的轮廓贡献值进行排序,剔除最小轮廓贡献值所对应的顶点,然后更新模型顶点信息;针对更新后的模型顶点重复步骤T2-T6,直到模型剩余顶点数达到预设的目标顶点数。

本发明的核心是用计算顶点向与它相邻顶点塌陷过程中,导致的体积变化值作为该顶点的塌陷程度值(该值指这一种塌陷形式引起的轮廓变化值即体积变化值),而在该顶点在依次向各相邻顶点塌陷并计算出的一系列塌陷程度值中,最小的那一个即为该顶点的轮廓贡献度。从多面体中剔除掉影响度低的那些顶点,直至达到减面目的。采用本发明的方法,计算简单,开销较小,且模型构建准确度高。

具体实施方式

为了更好的理解本发明,下面通过具体实施方式来更好的理解本发明。

本发明的一种多面体模型减面方法,包括如下步骤:

T1、初始化模型,得到模型所有顶点信息,并设置模型减面目标顶点数;

T2、找出被检测顶点P的所有相邻顶点,找出被检测顶点P与所有相邻顶点组成所在模型的表面三角形并计算所有表面三角形的面积;

T3、依次计算被检测顶点P与每一个相邻顶点的矢量,利用步骤T2中计算得到的表面三角形面积与本步骤中得到的被检测顶点P与每一个相邻顶点的矢量,计算得到被检测顶点P向每一个相邻顶点塌陷引起的体积变动值;

T4、将被检测顶点P向每一个相邻顶点塌陷引起的体积变动值进行排序,得到最小体积变动值,该最小体积变动值为被检测顶点P在指定方向上对模型的轮廓贡献值;

T5、转到步骤T2,依次计算模型所有顶点对模型的轮廓贡献值,直到所有顶点的轮廓贡献值计算完毕,转到步骤T6;

T6、对模型所有顶点的轮廓贡献值进行排序,剔除最小轮廓贡献值所对应的顶点,然后更新模型顶点信息;针对更新后的模型顶点重复步骤T2-T6,直到模型剩余顶点数达到预设的目标顶点数。

所述被检测顶点P具有n个相邻顶点P1、P2、……Pn,n≥3;所述被检测顶点P与相邻顶点组成所在模型的n个表面三角形,分别计算每一个表面三角形的面积S1、S2、……Sn;依次计算所述被检测顶点P向每一个相邻顶点的矢量,根据矢量和表面三角形面积计算得到被检测顶点P向每一个相邻顶点塌陷引起的体积变动值V1、V2、……Vn,具体地说,所述被检测顶点P向相邻顶点P1塌陷时,变动的V1为四面体(P1,P,P2,P3)、(P1,P,P3,P4)、……(P1,P,Pn-1,Pn)的体积之和;所述被检测顶点P向相邻顶点P2塌陷时,变动的V1为四面体(P2,P,P3,P4)、(P2,P,P4,P5)、……(P2,P,Pn,P1)的体积之和;所述被检测顶点P向相邻顶点Pn塌陷时,变动的V1为四面体(Pn,P,P1,P2)、(Pn,P,P2,P3)、……(Pn,P,Pn-2,Pn-1)的体积之和,对所有体积变动值进行排序,得到最小体积变动值Vmin,Vmin是被检测顶点P在指定方向上对模型的轮廓贡献值。按照此种方式,继续计算其他顶点的轮廓贡献值,然后对所有顶点的轮廓贡献值进行排序,得到最小轮廓贡献值,剔除最小轮廓贡献值对应的顶点,然后更新顶点信息,按照前述方式进行迭代计算更新后的顶点轮廓贡献值,剔除更新后的顶点中最小轮廓贡献值对应的顶点,直至剩余顶点达到预期的顶点数目。

本发明的核心是用计算顶点向与它相邻顶点塌陷过程中,导致的体积变化值作为该顶点的塌陷程度值(该值指这一种塌陷形式引起的轮廓变化值即体积变化值),而在该顶点在依次向各相邻顶点塌陷并计算出的一系列塌陷程度值中,最小的那一个即为该顶点的轮廓贡献度。从多面体中剔除掉影响度低的那些顶点,直至达到减面目的。采用本发明的方法,计算简单,开销较小,且模型构建准确度高。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1