Open GL ES 中的动画网格
Posted
技术标签:
【中文标题】Open GL ES 中的动画网格【英文标题】:Animating Meshes in Open GL ES 【发布时间】:2014-03-06 11:47:03 【问题描述】:如何在 Open GL ES 中为对象设置动画。我知道你可以从 Blender 导入网格,而且我知道如何在 Blender 中为它们设置动画。我在 Blender 中制作的动画会显示在屏幕上,还是我需要使用 CAAnimation 或其他东西?那会是什么?
【问题讨论】:
【参考方案1】:您不能使用 CAAnimation,它用于动画视图。 什么都没有会在 OpenGL ES 中“出现在屏幕上”——你需要从头开始做所有事情。
您首先需要找到一种方法将您的动画从 Blender 中取出并放入 OpenGL ES。据我所知,最简单的方法是以 COLLADA 文件格式导出。然后,您需要找到一个预先存在的导出器或编写自己的导出器,以将网格、法线、动画转换和时序数据转换为您可以提供给 OpenGL 的形式,并编写一个着色器(或多个着色器,具体取决于这些着色器的复杂程度)动画是)可以将该输入转换为类似于您在 Blender 中的动画。
代替 CAAnimation,您将在 GLKView 上使用 CADisplaylink 回调或 DrawFrame
方法,每次屏幕刷新以绘制视图时都会调用该方法。根据您的应用程序逻辑的工作方式,您可以增加一个浮点数,指示您在动画中的时间,您将其作为统一传递给着色器以确定在何处绘制对象。
一旦 Collada 导出工作正常,您应该创建一个对您的程序有意义的中间格式 -- 根据我的经验, Collada 可能需要 很长 时间来解析。
【讨论】:
以上是关于Open GL ES 中的动画网格的主要内容,如果未能解决你的问题,请参考以下文章