代码之家  ›  专栏  ›  技术社区  ›  Martin Konecny

OpenGL动画

  •  13
  • Martin Konecny  · 技术社区  · 14 年前

    如果我有一个人体三维模型,我想动画步行,什么是最好的方法来实现这一点?以下是我认为实现这一点的可能方法:

    • 创建多个腿位于不同位置的模型,然后在这些模型之间进行插值。
    • 将模型加载到OpenGL中,并以某种方式确定哪些顶点对应于支腿并执行适当的转换。
    • 执行骨架或电枢(类似于: blender animation wiki )
    2 回复  |  直到 10 年前
        1
  •  13
  •   Bojan    12 年前

    您在第一个选项中描述的技术称为变形目标动画,通常用于动画的某些细节,如面部动画或可能是手的打开和关闭。

    第二个选项是程序动画或物理动画,它的工作方式类似于机器人技术,在机器人技术中,可以给角色的身体一些前进的速度,并计算腿需要做什么来避免摔倒。但您不会直接在顶点上执行,而是在骨架上执行。见下一个。

    第三个选项是骨骼动画,它对骨骼进行动画制作,顶点按照规则集跟随骨骼。将顶点附加到骨架上称为蒙皮。

    我建议,在掌握了OpenGL的一些东西(在空间、相机等中查看和定位模型)之后,从骨骼动画开始。

    你将需要一个假造和动画模型为你的3D应用程序的选择。然后,您可以将导出程序写入您的自定义格式,或者选择要从应用程序中读取的格式。该文件格式应该包含模型、骨架、蒙皮和关键帧的描述。然后从代码中读取并使用这些数据在关键帧上构建网格、骨架和动画。

        2
  •  2
  •   Stuart Golodetz    14 年前

    如果我是你,我会从 http://www.blender.org 完成一些动画教程。例如,这一个:

    http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

    完成后,可以使用Ogre导出器导出模型和动画。我认为这是最新版本,但请检查以确保:

    http://www.ogre3d.org/tikiwiki/Blender+Exporter&structure=Tools

    从那里,您只需要编写C++代码来加载所有内容,在关键帧之间插入,等等。我有代码,如果您感兴趣的话,我可以向您展示。

    推荐文章