APP下载

蒙皮约束下的动画角色模型分割方法

2017-09-04吴昊霖艾香君

文艺生活·中旬刊 2017年7期

吴昊霖+艾香君

摘 要:动画角色内数据在反复应用之后,动画制作质量及效率可以显著提升,为人们提供多样化角色类型。按照模型数据应用流程,动画角色存在网格分割问题,笔者提出了蒙皮约束下分割方式,通过蒙皮信息运动有关性,按照动画角色数据进行分割,预分割之后对分割进行调整,从而对切口完善,构建与动画角色相适应的网格部件。

关键词:动画角色;网格分割;蒙皮约束

中图分类号:TP391.41 文献标识码:A 文章编号:1005-5312(2017)20-0119-01

计算机图形学在进行几何处理内,最为重要内容为模型分割技术。模型分割技术是大部分研究工作开展基础条件,例如网格变形、网格压缩、纹理映射。模型分割技术属于共性问题,研究人员在上世纪90年代之后进行了大量分析研究。部件分割应用主要作用构建实体模型,借助现有三维模型,将所需要的部件进行分割,替代正在制作所应用到的模型。三维角色模型在动画角色内应用,可以对角色模型进行分割,建模效率显著提升,可以有效解决角色多元化问题。

一、骨骼与蒙皮预分割策略

(一)子树选择法

动画角色内重要组成部分为骨骼,和三维网格模型相比较,具有十分显著语义特点,在骨骼内属于从属关联,一般应用树木方式表现出来,如图1所示。犀牛骨骼借助立方体线框表现,图一左侧为犀牛骨骼子树,树节点通过bone表示①。

(二)蒙皮权重对选择顶点的影响

蒙皮作为动画技术,是以模型定点骨骼变化之后所受到的影响,模型定点受到骨骼变化约为显著,骨骼蒙皮所受到的约束信息也就越多,关节运动会受到骨骼之间所造成的影响。上腿骨影响内,顶点颜色要是越浅,所受到的蒙皮约束信息越少。

根据骨骼选择顶点结果可以发现,顶点在选择完毕之后,正常情况下,顶点集合内并不包含角色部件,所受到的拓扑条件十分有限,大部分情况下存在孤立线、孤立点及孤立面。不同定点之间或者采取低连通方式,或者是采取桥梁连接。模型网格切割要是具有较多缺口,为后期部件重新在角色内应用就造成严重影响。在这种情况下,就需要对模型网格预分割之后,对不同顶点优化求解,保证骨骼顶点具有充足拓扑约束,同时降低缺口环数量,保证网格划分规则更加圆滑②。

二、拓扑规则及优化目標

(一)拓扑约束

模型网格预分割处理之后,顶点可以有效集合,按照顶点三维网格集合可知,网格必须具有角色部件所应该遵守的拓扑规则。模型网格全部顶点在连接之后,任何一个顶点都属于三面顶点,模型虽然不是完全封闭,但是只有一个缺口环。

三维网格要是为全封闭,任何顶点都应该具有两个平面,进而在预分割处理之后,三维网格内会出现只具有一个平面或者是没有平面顶点,造成网格分离。所以,这就需要对模型网格内所存在的缺口进行了解,要是缺口属于连接幻环状,切口就与拓扑要求相吻合。

蒙皮信息具有连续性特征,正常情况下,环状切口在向外延伸之后,会出现少量点集,或者是产生多余缺口换。在这种情况下,缺口顶点及边在转变之后,可以通过计算方式对该问题解决,主要作用是减少多余点集数目,同时对缺口环进行修补。在进行计算内,主要采取连通集算法及检测桥算法。在进行切割内,所产生的缺口相对较小,进而不会出现孤岛情况,计算也十分简单③。

(二)优化目标

犀牛节点在经过规则处理之后,犀牛右后腿网格结构有效完善。在犀牛关联网格内,可以发现犀牛平面内存在十分显著凸起或者是凹陷问题,对犀牛平面边缘平滑造成严重影响。随机选择三个顶点对平面凹度分析,主要具有三种情况进行调整:

首先,凹度要是小于180度,顶点构建三角形,平面凸起,通过去除其中一个顶点,就可以有效对该问题解决;其次,凹度要是小于180度,顶点并未构成三角形,属于平面凹陷,通过连接两个顶点,就可以有效对该问题解决;最后,凹度要是大于180度,顶点并未构成三角形,可以通过对顶点分析之后连接全新三角形,判断平面是否为凸起④。

三、结论

按照蒙皮信息预分割处理之后,然后在借助拓扑进行判断,对切口进行优化,保证三维网格模型与角色部件相吻合。该种方法现阶段在游戏公司动画角色部件内广泛应用,但是由于蒙皮制作还存在一定问题,需要进一步完善。

注释:

①储晓丽,李琳,谭剑波.面向3D打印机的活动关节快速生成方法[J].合肥工业大学学报(自然科学版),2014,06:679-682+768.

②李琳,陶涛,刘晓平.层次结构导向下的动画角色模型分割与标记[J].中国图象图形学报,2014,06:955-963.

③赵智,戴祯杰.基于虚拟现实技术VT的角色模型与动画的导出和导入方法[J].大学教育,2014,18:108-109.

④潘翔,童伟淮,张三元,郑河荣.结合语义本体与泊松方程的动画角色模型分割[J].浙江大学学报(工学版),2015,09:1634-1641.endprint