推荐的方式来加载(非交互式)动画(使用Maya制作)到iOS和Android上的OpenGL ES

到目前为止,我们已经能够将静态OBJ文件(转换为.h)成功加载到我们的OpenGL应用程序中.

然后,我们可以将变换应用于这些对象,以便对它们进行动画处理.

我们的项目的下一步是让一个专业的3D动画师在Maya中做动画,并创建一个“Loader”,使用OpenGL以3D显示它们.

我们已经在网上发现了许多处理视频游戏和加载静态模型的例子,但我们的动画将完全由动画师预先定义,我们只需要加载它们.

重要的是要提到我们不能渲染它的视频,因为我们正在建立一个AR库顶部,这将让用户逐步走动动画,该部分被解决,我们只需要获得动画渲染使用OpenGL.

我已经研究了this question关于动画师应该从玛雅出口的适当格式.

.dae(COLLADA)文件格式似乎是封装模型和动画信息的好方法,并使用Assimp加载,但是我们还没有找到为iOS或Android编译的加载器(这是我们正在开发的平台).

我们已经看到的另一种在线推荐方法是导出一系列OBJ文件,并为每个帧加载相应的OBJ.

我们看到的另一种方法是使用“引擎”,但是有很多很难知道我们应该关注哪一个.

我们不介意为发动机付费,但是我们如何知道哪一个最有效?

我们发现these examples,但我们看不到一个明确的“优胜者”.

有没有人在iOS或Android设备上获得类似的东西?

你的建议是什么?

我已经为Android做了一个3D框架,这就是我以为动画:

骨骼动画可以简单地用你的代码完成:为每个肢体加载一个OBJ,让CPU执行骨骼计算,然后将每个OBJ转换为由CPU给出的坐标和角度.

关键帧动画可以通过使用具有相同数目顶点的OBJ来完成.然后,您可以使用带有变量t(时间)的线性函数,并为您提供组合的网格.您还可以使用Bezier曲线获得更平滑的动画.

我想指出的另一个方面是你可以导入MD5文件. MD5文件可以包含动画数据,它们是二进制文件,因此加载它们是快速的,不需要解析器.

更多关于MD5s here.

附:如果你愿意,我可以推荐你一本伟大的书,涵盖了在移动设备上开发的许多3D问题;只是发表评论.而如果你不介意花钱,只要买Unity.这是非常好的,它是非常多才多艺.

翻译自:https://stackoverflow.com/questions/12154847/recommended-way-to-load-non-interactive-animations-made-using-maya-into-open

转载注明原文:推荐的方式来加载(非交互式)动画(使用Maya制作)到iOS和Android上的OpenGL ES