2014-02-09 3 views
1

Как мне оживить объект в Open GL ES. Я знаю, что вы можете импортировать сетки из Blender, и я знаю, как их оживить в Blender. Будут ли появляться анимации, которые я создаю в Blender на экране, или мне нужно использовать CAAnimation или что-то еще? Что это было бы еще?Анимационные сетки в Open GL ES

ответ

0

Вы не можете использовать CAAnimation, это для анимации просмотров. Ничто не будет отображаться на экране с помощью OpenGL ES - вам нужно делать все с нуля.

Сначала вам нужно найти способ получить анимацию из Blender и в OpenGL ES. Насколько мне известно, самый простой способ сделать это - экспортировать в формате файла COLLADA. Затем вам нужно будет найти существующего экспортера или написать собственный экспортер, чтобы получить сетчатые, нормальные, анимационные преобразования и данные синхронизации в форму, которую вы можете дать OpenGL, и написать шейдер (или несколько шейдеров, в зависимости от того, насколько сложны эти анимации), которые могут превратить этот вход в анимацию, похожую на то, что у вас было в Blender.

Вместо CAAnimation вы получите либо обратный вызов CADisplaylink, либо метод DrawFrame в GLKView, который будет вызываться каждый раз, когда экран обновляется, чтобы нарисовать ваше представление. В зависимости от того, как работает ваша логика приложения, вы можете увеличить значение float, указывающее, в какое время вы находитесь, в анимации, которую вы передаете шейдеру в качестве униформы, чтобы определить, где рисовать объект.

Как только вы работаете с экспортом Collada, вы должны создать промежуточный формат, который имеет смысл для вашей программы. По моему опыту Collada может взять долгое время раз разобрать.

Смежные вопросы