将混合动画导入OpenGL

时间:2014-04-10 17:53:13

标签: c++ opengl animation blender

我正在从Blender读取obj文件并尝试加载动画。 (许多顶点,每帧1个文件)

对于性能......使用此方法存储帧,创建自己的动画类是不是很糟糕?

vector <vector <float>> frames;
vector <float> verticesForThisFrame;
verticesForThisFrame.push_back(readX());
verticesForThisFrame.push_back(readY());
verticesForThisFrame.push_back(readZ());
frames.push_back(verticesForThisFrame);

如果效率很低,你建议我做什么?

顺便说一句,我使用SDL打开一个窗口,使用OpenGL打开图形。

2 个答案:

答案 0 :(得分:0)

Wavefront Obj有no animation support。为每个帧渲染不同的网格,因为搅拌器导出建议你做的是相当强力的补丁,特别是对于重型模型。

如果你想让你的网格保持在obj中,你可以在混合器中创建帮助器(虚拟点,线,路径等)并命名它们。但是最终的动画应该使用那些助手保持相同的网格转换。

对于处理动画的导出格式,我会使用collada

答案 1 :(得分:0)

每帧1个文件?我认为延迟是io,你为什么不先阅读所有的帧?我想知道你的框架中有多少顶点,我看我的样本字符有大约6 * 10 ^ 4个顶点,如果只存储顶点有关使用的4 * 3 * n(顶点)字节,我的charcacter每帧大约720KB,我将使用72 MB内存,用于存储100帧缓冲区。

最后,和.obj?我认为你应该使用二进制文件来存储数据