OpenGL动画

OpenGL动画,opengl,animation,skeletal-animation,Opengl,Animation,Skeletal Animation,如果我有一个人体3d模型,我想为行走设置动画,那么实现这一点的最佳方法是什么?以下是我认为实现这一目标的可能方式: 创建多个腿部处于不同位置的模型,然后在这些模型之间进行插值 将模型加载到openGL中,以某种方式找出哪些顶点对应于腿部,并执行适当的转换 实现骨架或电枢(类似于此:) 您在第一个选项中描述的技术称为变形目标动画,通常用于动画的某些细节,如面部动画或手的打开和关闭 第二种选择是程序或物理动画,它的工作原理类似于机器人技术,在机器人技术中,你给角色的身体一些向前移动的速度,并计算腿

如果我有一个人体3d模型,我想为行走设置动画,那么实现这一点的最佳方法是什么?以下是我认为实现这一目标的可能方式:

  • 创建多个腿部处于不同位置的模型,然后在这些模型之间进行插值
  • 将模型加载到openGL中,以某种方式找出哪些顶点对应于腿部,并执行适当的转换
  • 实现骨架或电枢(类似于此:)

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

第二种选择是程序或物理动画,它的工作原理类似于机器人技术,在机器人技术中,你给角色的身体一些向前移动的速度,并计算腿部需要做什么来避免摔倒。但你们不会直接在顶点上,而是在骨架上。看下一个

第三个选项是骨骼动画,它通过一组规则为骨骼和顶点设置动画。将顶点附着到骨架称为蒙皮

我建议,在掌握了opengl的相关知识(在空间中查看和定位模型、相机等)之后,您可以从骨骼动画开始


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

如果我是你,我会从中下载Blender并学习一些动画教程。例如,这个:

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


从那里,你只需要编写C++代码来加载所有的东西,在关键帧之间插入等等。我有代码,如果你感兴趣,我可以给你演示。

一般来说,导入的模型包含动画。为什么需要在OpenGL中设置动画?这不应该由艺术家来处理吗?@Seth,我是作为个人项目来做的。因此,如果模型包含动画,我只需要在它提供给我的不同关键帧之间进行插值?是的,没错。这方面有很多资源+一个好职位。就我个人而言,我建议将.3DS文件作为动画关键帧、骨骼数据和模型包含在一个文件中。我应该补充一点,当我这样做时,它需要一些小心和摆弄,才能让一切正常工作,但它是可以做到的:)谢谢,我已经阅读了你提到的教程,我会调查一下食人魔出口商。@tom_mai78101:看看吧,希望能有所帮助。@StuartGolodetz谢谢。