Подтвердить что ты не робот

Хотите отобразить 3D-модель на iPhone: как начать?

Я хочу отобразить и повернуть одну 3D-модель, предпочтительно текстурированную, на iPhone. Не нужно увеличивать и уменьшать масштаб, или иметь фон или что-то еще.

У меня есть следующее:

  • iPhone
  • MacBook
  • iPhone SDK
  • Blender

Моя база знаний:

  • Я могу создавать 3D-модели в различных 3D-программах (мне больше всего нравится 3D Studio Max, который я когда-то проходил, но я использовал другие)
  • Общие знания процедурного программирования лет назад (QuickBasic - я стар!)
  • Начинать знание объектно-ориентированного программирования от простого обучения Java и С# (Head Start С# book и вступление моей жены в курс ООП, в котором используется Java)
  • Мне удалось отобразить 3D-текстурированную модель и открутить ее, используя учебник на С#, который я получил из сети (я не просто копировал и вставлял, я понимаю, в основном, как это работает) и библиотеку разработки игр XNA, используя Visual Studio в Windows.

Что я не знаю:

  • Многое о Objective C
  • Что-нибудь о OpenGL или OpenGL ES, которое iPhone, по-видимому, использует
  • Что-нибудь о XCode

Моя главная проблема в том, что я не знаю, с чего начать! Все мои iPhone-книги, которые я нашел, похоже, касаются создания графических приложений, а не приложений OpenGL. Я нашел книгу OpenGL, но не знаю, насколько она применима к iPhone. И я считаю, что синтаксис Objective C несколько сбивает с толку, с наивным вложенным именем метода, такие вещи, как "id", которые не имеют смысла, и страшно подумал, что я должен заниматься ручным управлением памятью.

Где лучше всего начать? Я не мог найти никаких учебников для такого рода вещей, но, возможно, мой Google-Fu слаб. Или, может быть, я должен начать с изучения Objective C? Я знаю такие книги, как Aaron Hillgrass ', но я также читал, что они устарели, и большая часть кода примера не работает на iPhone SDK, плюс он кажется ориентированным на парадигму Model-View-Controller, которая не кажется, что подходит для 3D-приложений.

В основном я смущен тем, что должны были сделать мои первые шаги.

4b9b3361

Ответ 1

Вероятно, вам стоит начать с более простых приложений/учебников для iphone, просто чтобы получить поддержку на объектах и ​​xcode и т.д.

Для этого я рекомендую прагматичную книгу программистов iphone, в которой есть достаточно информации для начала работы (я начал без знания xcode, obj-c, iphone или mac и быстро добрался до рабочего приложения, используя в основном это), Однако я должен добавить, что я исхожу из довольно хорошего фона в C/С++ и Java.

Для вашего конкретного проекта, возможно, взгляните на этот ответ, который ссылается на 3D-приложение с открытым исходным кодом, на которое вы можете посмотреть и получить подсказки.

Ответ 2

Еще раз, если я могу подключить свою собственную работу, я написал сообщение о том, что я узнал из разработки OpenGL ES приложение на iPhone. Это приложение, Molecules (упоминается frankodwyer), является открытым исходным кодом, и у меня есть writeup по некоторым другим сложным вопросам, с которыми я столкнулся при разработке. Приложение генерирует 3-D модели и позволяет вам поворачивать и масштабировать их пальцами, что звучит близко к вашим потребностям. Вы можете загрузить код, скомпилировать его и запустить на своем рабочем столе в течение нескольких минут. Если вы присоединитесь к Программе разработчиков iPhone, вы можете установить ее на свое устройство.

Когда дело доходит до загрузки объекта, Bill Dudney работает над Wavefront OBJ-загрузчик для iPhone, который может быть использован в ваших файлах Blender, если они будут экспортироваться в этом формате. Я еще не делал много работы с текстурой на iPhone, но похоже, что его пример теперь работает.

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

Несмотря на то, что книга Hillegass (третье издание только что вышла и обновлено) фокусируется на Mac, основные принципы Cocoa, которые он преподает, по-прежнему актуальны для iPhone. Шаблон дизайна MVC служит вам также на iPhone как Mac. Я фактически отклонился от этой схемы в нескольких местах в Molecules, и я сожалею об этом решении, потому что эти разделы приложения стали беспорядочным. Книга легко читается и стоит вашего времени.

Ответ 3

Это древняя нить, и я ужасно опоздал. Но все же я собираюсь опубликовать свои 2 пенса здесь.

Предварительный просмотр

Прежде чем я войду в зверя, это моя установка.

я использую

  1. Блендер для создания 3D моделей. (Вы можете использовать Maya или 3D Max, я расскажу вам, как экспортировать модель для Blender, то же самое работает для 3D Max и Maya).
  2. Cocos3D игровой движок.
  3. Расширение блендера PVRGeoPOD от Imagination Technology для преобразования модели блендера в формат, понятный Cocos3D. Вы можете видеть, что по ссылке загружается установочный файл, который, в свою очередь, загружает весь SDK. Я не вижу простого способа скачать расширение Blender в одиночку.

Так что, если вы не собираетесь использовать Cocos3D, вы можете пропустить этот ответ и бежать за ваши деньги.

Начальная настройка

  1. Установите блендер.

    Я не собираюсь смущать вас, вдаваясь в детали.

  2. Загрузите Cocos3D. ,

    Когда я набираю это, текущая версия 0.7.2.

  3. Загрузите Cocos2D.

    Cocos3D написан поверх популярного Cocos2D, популярного 2D игрового фреймворка. Важно отметить, что версия Cocos2D 2.x уже существует и стабильна. Но Cocos3D работает только с версией Cocos2d 1.x.

    Когда вы распакуете исходный код, который вы скачали, вы обнаружите внутри файл README, в котором будет указано:

    ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, что cocos3d 0.7.2 НЕ СОВМЕСТИМО С cocos2d 2.x. ОБЯЗАТЕЛЬНО СКАЧАТЬ cocos2d 1.x ДЛЯ ИСПОЛЬЗОВАНИЯ С cocos3d. (Выделено мной)

    Файл README четко описывает процедуру установки. После установки вы получите красивый шаблон проекта Cocos3D в XCode.

  4. Добавьте расширение PVRGeoPOD в Blender.

    Это требует некоторого объяснения. При запуске установщика PVRGeoPOD на экране отображается, какие и какие функции необходимо установить. Я только выбрал

    • PVRGeoPOD - Чтобы преобразовать мои модели в моем файле .blend в формат .POD, который понимает Cocos3D

    • PVRShaman - вы можете просмотреть модель внутри .POD с помощью этого инструмента.

    enter image description here

    Вы можете установить другие инструменты в списке, но я использовал только эти два.

    Теперь, после процесса установки (который может занять некоторое время), вам нужно добавить PVRGeoPOD AddOn в блендер. Вы можете найти файл PVRGeoPOD.UserManual.PDF в только что установленной папке, которая также содержит следующую информацию.

    • Найдите папку дополнений Blender, вы можете открыть консоль Python blender и запустить команду bpy.utils.script_paths("addons") чтобы увидеть путь к этой папке.
    • Найдите файлы надстроек blender в папке PVRGeoPOD, в вашем пути установки. Когда вы увидите такие файлы, как libPVRGeoPOD.dylib и PVRGeoPODScript.py и 2 файла QT, остановитесь, так как это местоположение. Скопируйте эти 4 файла и вставьте их в папку Blender.
    • Теперь откройте blender, выберите " Настройки", найдите вкладку " Надстройка ", найдите и найдите расширение PVRGeoPOD и включите его, установив флажок справа.
    • Теперь выйдите и перезапустите blender, если необходимо, и выберите file-> export и посмотрите, есть ли опция с именем PVRGeoPOD (.pod/.h/.cpp), если да, то вы успешны.

    Теперь вы можете создавать модели в blender и экспортировать эти модели в виде файлов .POD, которые понимает Cocos3D.

    Если вы используете другие инструменты 3D-проектирования, такие как Maya, 3D Max, это расширение PVRGeoPOD также может быть добавлено к ним. Просто посмотрите PDF файл, о котором я упоминал выше.

Использование в проекте

  1. Пошаговая процедура приведена ниже.

    Создайте свою модель в Blender (.blend) и экспортируйте ее как файл .POD. При экспорте я обычно выбираю следующие параметры

    • Тип примитива - Индексированный список треугольников
    • Вкладка "Материал" - выберите пункт "Экспорт материала"

    а остальные я оставил по умолчанию.

  2. Создайте новый проект в XCode, выберите шаблон Cocos3D.
  3. Добавьте файлы .POD в ваш проект. Если у вас текстурированная модель, добавьте эту текстуру в свой проект.
  4. Сам шаблонный проект содержит файл HelloWorld.POD, вы можете заменить эту строку вашим файлом .POD, чтобы ваша модель была видна.

    [self addContentFromPODFile: @"YourPODFileName.pod"];
    

Теперь у вас есть первая 3D-модель, видимая на устройстве iOS.

Ответ 4

Бесстыдный штекер

Я сделал небольшой рендерер Ссылка" >

Не стесняйтесь попробовать, доступна демо-версия для симулятора iPhone. Обратите внимание, что производительность OpenGLES на iPhone не такая же, как в симуляторе.

Он использует этап оптимизации и создает трипостолы и строит конечные вершины, чтобы иметь возможность запускать на iPhone.

Посмотрите quickstart как его использовать

Ответ 5

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

http://38leinad.wordpress.com/2011/10/19/practical-blender-with-glkit-part-1-introducing-glkit/

Это объясняет glkit, который должен упростить обработку OpenGL, а также хороший учебник по взаимодействию с Blender.

Ответ 6

У меня есть игра с разработкой iPhone для немного удовольствия и купил "Начало разработки iPhone" Дэйвом Марком и Джеффом Ламарчем (ISBN13: 978-1-4302-1626-1), и мне нравится работать через главы. У меня есть фон с Win32 Delphi с небольшим количеством .NET и поэтому Objective C для меня очень новичок.

Одна из глав посвящена OpenGL и Quartz, которые могут вас заинтересовать. У меня пока еще не так много, поэтому я не могу прокомментировать, насколько он полезен для вас, но стиль письма очень доступный, и он очень хорошо работал (для меня все равно).

В начальных главах подробно объясняется, как запустить работу с хорошим введением в Xcode и InterfaceBuilder.

Ответ 7

Что-нибудь на iOS 8 или новее, ответ - SceneKit. SceneKit будет отображать файлы Collada (DAE). Любой достойный пакет моделирования (например, Cheetah, Blender) должен экспортировать DAE файл - это документированный переносимый формат в XML (хотя xCode компилирует их в двоичный формат для экономии места).

Ответ 8

2 хороших 3d sdks для iphone:

sio2interactive и oolong.

sio2interactive имеет отличные обучающие видео и src на своем сайте. Это поможет с блендером и моделью экспорта и рендеринга - позволит вам получить право на разработку игр. Src все в c для sio2, и код очень хорошо комментируется. Это прекрасное место, чтобы начать изучать 3d и opengles. Экспорт блендера в sio2 - WYSIWYG.

Выполняя все это с нуля, вы должны будете знать, как самостоятельно экспортировать и импортировать модели. Так что оба отличные библиотеки для кого-то начинают.

Ответ 9

Используйте Emcore3D - (https://github.com/Things3D/Emcore3D)

Просто определите пути к объектам, MT и текстурам.

T3DModelPathInfo * newModelPath = [T3DModelPathInfo createModelPathInfoWithModelName: @"model.obj" material: @"model.mtl" path: @"/3DModels/"];

После этого вы создаете T3DObject с помощью T3DModelPathInfo и добавляете его в T3DRenderController.

T3DObject * newObject = [T3DObject initWithModelPathObject: newModelPath]; [renderVC addT3DObject: newObject];

PS: Раскрытие, что я являюсь частью команды Emcore3D