2010-11-01 6 views
0

Я очень новичок в OpenGL и программировании с графическим элементом в целом.Как мне сделать что-то вроде анимации движения в OpenGL на iPhone?

В настоящее время у меня есть текстура, которая отображается с использованием вершин, которые генерируются другой частью кода - эти четыре точки, которые представляют углы, меняются несколько раз в секунду. По мере его реализации этот образ будет «появляться» в разных местах и ​​формироваться по-разному, поскольку четыре угловые точки изменяются на таймере.

Что бы я хотел, чтобы объект быстро перемещался и менял форму, чтобы занять новые точки, заданные программой, - и я хотел бы, чтобы это произошло несколько гладко (так что это было бы немного поплавок между эти поставленные позиции/фигуры).

Есть ли способ сделать своего рода движение/форму, как в OpenGL? Если да, где я могу найти документацию или, еще лучше, примеры? У меня проблемы с поиском или пониманием такого рода вещей.

EDIT: ТАКЖЕ - У меня нет проблем с использованием другого метода, ему не нужно быть OpenGL. Это лучше сделать в Core Animation с помощью BasicAnimation? Если да, то где ресурсы для такого рода преобразований? Формы - четырехугольники, но не обязательно квадраты или прямоугольники, поэтому мне нужно было бы указать каждую угловую точку.

ответ

2

OpenGL не предоставляет такой объект.

Часть кода, которая генерирует вершины, не может быть изменена для плавного перехода позиций, а не их резкого изменения? Если нет, можете ли вы написать код поверх этого кода, и этот код, который вы пишете, обертывает создание позиции, плавно переходя?

+0

Благодарим вас за ответ! Я даже не думал просто писать код, чтобы получить промежуточные очки. Я не знаю, почему это не произошло со мной! Есть ли такая функциональность в других местах, таких как Core Animation? Возможно, мне вообще не нужно использовать OpenGL? Я просто беспокоюсь о накладных расходах и заставляю приложение отставать - он делает много работы, как сейчас. – Tom

+0

Я ничего не знаю о Core Animation, но если у вас есть код, который дает вам одну точку, а затем дает вам совершенно другую точку, вам просто нужно интерполировать между этими двумя точками. Это довольно простой материал (найдите разницу между ними, решите, сколько вы хотите от этой разницы, которую хотите добавить в свою первую точку на кадр, добавьте ее в первую точку и продолжайте добавлять до тех пор, пока не достигнете второй точки [некоторое число кадров позже]) .. –

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

  • Нет связанных вопросов^_^