Как импортировать 3D-анимацию Blender на iPhone OpenGL ES? - PullRequest
8 голосов
/ 23 января 2010

Я пытаюсь сделать анимацию на iPhone с помощью OpenGL ES. Я могу сделать анимацию в программном обеспечении Blender 3D. Я могу экспортировать как файл .obj из Blender в OpenGL, и он работает на iPhone.

Но я не могу экспортировать свою анимационную работу из Blender 3D в OpenGL. Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?

Ответы [ 5 ]

1 голос
/ 07 октября 2013

Это старый вопрос, и с тех пор было выпущено несколько новых платформ iOS, таких как GLKit. Я рекомендую полагаться на них в максимально возможной степени, поскольку они позаботятся о многих неотъемлемых преобразованиях, подобных этому, хотя я не исследовал их специфику. Кроме того, хотя в iOS нет новой технологии Scene Graph для OS X (которая, скорее всего, появится в iOS) в будущем, все это продвинется немного дальше, и хитрый человек может сделать некоторые преобразования с помощью этого инструмента, а затем получить вывод на iOS.

1 голос
/ 27 октября 2010

Если вы посмотрите на эту статью Джеффа Ламарша , вы найдете скрипт блендера, который выведет 3D-модель в файл заголовка C. Есть также статья-продолжение , которая улучшает вышеупомянутый сценарий.

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

Поскольку у вас уже есть метод импорта моделей (obj), вышеприведенное может не применяться. Однако преимущество использования сценария блендера заключается в том, что вы можете затем изменить сценарий в соответствии со своими потребностями, возможно, также экспортируя информацию о кости или ключевые кадры модели.

1 голос
/ 14 июня 2011

Во-первых, я бы не рекомендовал .obj для этой цели, поскольку формат файла obj не поддерживает анимацию, только статические 3D-модели. Поэтому вам нужно будет экспортировать данные анимации в виде отдельного файла, который вы загружаете одновременно с объектом.

Какой формат файла я бы порекомендовал, зависит от того, какие именно у вас анимации. Я не могу вспомнить, какие форматы файлов поддерживает Blender, но, насколько я помню, он не экспортирует файлы Collada с анимацией, что было бы наиболее общей рекомендацией. Другими вариантами могут быть md2 для анимации персонажей или 3ds для простых анимаций «жесткие объекты движутся вокруг». Я думаю, что экспортер FBX в Blender'е будет работать, хотя этот формат файла может быть слишком сложным для ваших нужд.


Тем не менее, и, предполагая, что вам нужны только простые движения жестких объектов, вы можете использовать .obj для фигур 3D-модели, а затем написать простой скрипт Python для экспорта файла из Blender, в котором есть ключевые кадры в списке с рамкой, положение и вращение для каждого ключевого кадра. Затем загрузите эти данные в свой код и воспроизведите эти ключевые кадры на 3D-модели.

0 голосов
/ 15 октября 2011

Я не использовал последние версии Blender, но, насколько я понимаю, он поддерживает экспорт анимации сетки в виде последовательности файлов .obj. Если вы уже можете отображать один .obj в своем приложении, то отображение нескольких из них один за другим приведет к тому, что вы хотите.

Теперь обратите внимание, что это не самая эффективная форма для экспорта анимации такого типа, поскольку каждый файл .obj будет содержать много дублирующейся информации. Если ваша сетка остается фиксированной с течением времени (то есть только вершины перемещаются со структурой многоугольника, UV-координаты и т. Д. Все фиксированы), то вы можете просто импортировать весь первый .obj, а из остальных просто прочитать массив вершин.

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

Редактировать : Я вижу, что Blender 2.59 имеет экспорт в COLLADA . Согласно руководству Blender , вы можете экспортировать преобразования объектов, а также экспортировать запеченную анимацию для сфальсифицированных объектов. Преимущество поддержки формата COLLADA в приложении для iPhone заключается в том, что вы можете свободно переключаться между инструментами анимации, поскольку большинство из них экспортируют этот формат.

0 голосов
/ 02 июня 2010

Также взгляните на SIO2 .

...