2011-04-05 63 views
0

我在Java中使用opengl(jogl)我已经做了动画与变形目标,现在我试图做一个参数化的面部动画发展3D面部动画应用面部动画

我不能附加适当的参数的脸的顶点,例如我有眉毛长度参数,我怎么知道希望是眉毛的顶点(脸部特征),请请任何人可以帮助我我使用obj文件来读取人脸模型和脸谱来创建它。

我感谢您的帮助。

+1

拼写,大写,间距等 – genpfault 2011-04-06 00:51:25

回答

2

对于每个变形目标,您为每个顶点分配一个权重,它受相应变形目标影响的强度有多大。没有算法来做到这一点,这必须手动完成。

在这种情况下,光波OBJ文件格式可能不适合存储几何图形,因为它不支持存储这些辅助数据。您可以扩展文件格式,但是这可能会与期望“正常”OBJ的程序冲突。

我强烈建议使用已被设计为支持任意数量的附加属性的格式。你可能想看看OpenCTM。

+0

谢谢你的帮助,你的意思是我用另一种格式来存储面部并将其与每个顶点的重量相关联,我明白,但我的目标是变形中性面以获得所需的表达,而不是生成关键帧来制作动画,而且我仍然无法理解如何变形脸部的特定区域,例如嘴唇,任何想法? @datenwolf – ima 2011-04-07 20:20:24

+0

那么,你需要将该区域与某种控制器相关联。我认为这对于你理解这个关联是如何完成是一个很好的开始:这是一个由3D艺术家执行的手动过程。 Blender wiki有一些很好的教程,可能会给你一些主要想法:http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation/Upper_body_armature http://wiki.blender.org/ index.php/Doc:Tutorials/Animation/BSoD/Character_Animation/Upper_body_weight_painting http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation/Lower_body_armature – datenwolf 2011-04-07 23:13:04

+0

每个控制器都有效地定义了平移 - 旋转变换。对于每个顶点,存储控制器影响它的强度(重量)。对于每个顶点,将变换进行加权求和,然后使用顶点着色器转换结果的顶点。 – datenwolf 2011-04-07 23:16:22