在Open GL ES中动画网格

时间:2014-02-09 04:29:06

标签: ios opengl-es blender caanimation

如何在Open GL ES中为对象设置动画。我知道你可以从Blender导入网格,我知道如何在Blender中为它们设置动画。我在Blender中制作的动画会显示在屏幕上还是我需要使用CAAnimation或其他东西?那会是什么呢?

1 个答案:

答案 0 :(得分:0)

您不能使用CAAnimation,它用于动画视图。使用OpenGL ES, Nothing 将“显示在屏幕上” - 您需要从头开始做所有事情。

首先,您需要找到一种方法,将您的动画从Blender和OpenGL ES中移出。据我所知,最简单的方法是以COLLADA文件格式导出。然后,您需要找到一个预先存在的导出器或编写自己的导出器,将网格,法线,动画转换和计时数据转换为可以提供给OpenGL的表单,并编写一个着色器(或几个着色器,具体取决于它们的复杂程度)动画是可以将该输入转换为类似于Blender中的动画。

代替CAAnimation,您将在GLKView上拥有CADisplaylink回调或DrawFrame方法,每次屏幕刷新以绘制视图时都会调用该方法。根据应用程序逻辑的工作方式,您可以增加一个浮点数,指示您在动画中作为制服传递到着色器的时间,以确定在何处绘制对象。

一旦你的Collada导出工作,你应该创建一个对你的程序有意义的中间格式 - 根据我的经验,Collada可以花费很长的时间进行解析。