如何在OpenGL中为3d模型(网格)设置动画?

时间:2013-08-22 19:27:40

标签: opengl animation model mesh

我想在OpenGL中为模型(例如人类,行走)设置动画。我知道有像骨骼动画这样的东西(有狡猾的数学),但是这个......

  1. 在Blender中创建模型
  2. 在Blender中为该模型创建骨架
  3. 现在在Blender中使用该模型和骨架进行步行动画
  4. 获取该动画的一些“keyFrames”并将每个“keyFrame”导出为单个模型 (例如作为obj文件)
  5. 为OpenGL创建一个OBJ文件加载器(以获取顶点,纹理,法线和面数据)
  6. 使用VBO在OpenGL中绘制动画模型(并获得一些棘手的想法如何更改VBO中的当前“keyFrame”/模型...也许是glMapBufferRange
  7. 的东西

    好的,我知道这个想法只是一个小脚本,但值得进一步研究吗? 改变VBO中的“keyFrame”/模型有什么好的概念?

    我知道记忆问题,但我认为可以用小型号(而不是太多的动画)来完成。

1 个答案:

答案 0 :(得分:9)

是的,您所指的方法在早期3D视频游戏(地震等)中非常受欢迎。

我建议实施它与你描述的略有不同。而不是为每个可能的动画帧导出关键帧。导出更多展开键并插入顶点位置。这样可以更轻松地播放,同时显着减少内存使用。

这只需要一个(流媒体或动态)VBO。您可以在每个帧中找到上一个和下一个关键帧,插入顶点,然后将结果上传到VBO中。

您实际上可以设置blender将场景的每一帧导出为OBJ。然后,自定义工具可以将这些文件编译成漂亮的动画格式。

请阅读: