2013-03-21 5 views
1

im ищите сейчас довольно долгое время, чтобы найти что-то работающее для импорта Blender 3D .obj файлы в xcode, чтобы использовать его в приложении iphone.Загрузите файл .obj из Blender

Я не могу найти описание, как реализовать что-то подобное в любом месте!

Я не хочу использовать какой-либо двигатель. я просто хочу знать шаги, которые я должен выполнить для fullfill и основных вещей, которые нужно сделать.

на самом деле ничего нет на www. вы можете найти статьи с 2005 по 2008 год , но это все не актуально и ничего не работает.

Итак, кто-нибудь знает, как это сделать?

ответ

0

Взгляните на источник в libgdx и взгляните на objloader. Он создал lib для загрузки файлов obj и должен работать на нескольких платформах (включая ios). Из чтения источника вы увидите, что создание объекта-загрузчика только для вершин очень просто, но становится более сложным, когда вы начинаете заботиться о нормалях и текстурных коордах. Вот простой алгоритм для соскабливания файла OBJ (я оставить разбор связанного TPL файл для собственных исследований читателя):

  1. Читайте в строках файла, выбрасывая все строки, которые начинаются с # (комментариями)
  2. Вершины выглядят так: v 1.000 1.000 1.000, поэтому, если линия начинается с 'v ', разделите линию на пробелы и сохраните (и конвертируйте в float) 3 поплавки как вершину.
  3. Нормали выглядят так: vn 1.000 1.000 1.000, поэтому, если линия начинается с 'vn ', сделайте то же самое, что и номер 2, но сохраните как обычно.
  4. Текстурные координаты выглядят как vt 1.000 1.000 с возможным третьим значением [w], разделяют и сохраняют линию таким же образом.
  5. Теперь это сложно, есть описания лиц, которые выглядят как f 1/1/1 2/2/2 3/3/3. Они описывают 3 вершины/текстовые координаты/нормали (в этом порядке) для каждой из вершин формы (обычно это треугольники) по индексу. Самое сложное в этом состоит в том, что тип файла obj использует три индекса вместо одного типа opengl или direct3d. Таким образом, вам придется перетасовывать порядок ваших вершин/коордов/нормалей, чтобы вы могли использовать индексированный рисунок для источников.

E.g. В основном вы должны получить f 1/300/30 40/22/400 20/30/10, чтобы больше походить на f 1/1/1 2/2/2 40/40/40, перетасовывая заказ.

This site дает вам представление об этом же алгоритме и показывает вам пример того, как это сделать в алгоритме высокого уровня (перейдите на полпути вниз на странице) и исходный код, который он ссылается для вас, чтобы проверить можно найти here.

В любом случае, дайте мне знать, если вам нужна дополнительная помощь. :)

Edit:

Кстати, если вы видите что-то вроде этого: f 1//4 2//5 3//7 не пугайтесь, это правильный файл, как предполагалось, и просто означает (в данном случае), что нет текстуры Coords

0

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

https://developer.apple.com/library/mac/#samplecode/GLEssentials/Introduction/Intro.html

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