我正在尝试使用OpenGL ES在iPhone上进行动画制作。我可以在Blender 3D软件中完成动画制作。我可以从Blender导出.obj文件到OpenGL,然后在iPhone上运行。
但是我无法将我的动画作品从Blender 3D导出到OpenGL。请问有人能帮助我解决这个问题吗?
首先,我不建议使用 .obj 格式进行此目的,因为 obj 文件格式不支持动画,只支持静态 3D 模型。因此,您需要将动画数据导出为单独的文件,并在加载 obj 文件时同时加载它。
我建议使用哪种文件格式取决于您的动画具体是什么。我记不清楚 Blender 支持哪些文件格式,但我记得它不会导出带有动画的 Collada 文件,这可能是最常见的建议。其他选项可能是用于角色动画的 md2,或用于简单的“刚性物体移动”的 3ds。我认为 Blender 的 FBX 导出器可以工作,尽管该文件格式可能过于复杂,超出了您的需求。
我没有使用最近版本的Blender,但是我了解到它支持将网格动画导出为一系列的.obj文件。如果您已经可以在应用中显示单个.obj,则依次显示几个.obj将实现您想要的效果。
现在,请注意,这不是导出此类动画的最有效形式,因为每个.obj文件都会有很多重复信息。如果您的网格随时间保持固定状态(即仅顶点与多边形结构、UV坐标等移动),那么您只需导入整个第一个.obj,并从其余的.obj中读取顶点数组即可。
如果您想进一步优化此过程,可以压缩顶点数组,以便仅存储与上一帧动画不同的差异。
编辑:我看到Blender 2.59有导出COLLADA的功能。根据Blender手册,您可以导出对象变换,还可以导出带骨骼的对象的烘焙动画。在您的iPhone应用程序中支持COLLADA格式的好处是,您可以自由切换动画工具,因为它们大多数都支持此格式。