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

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

Имею следующее:

  • айфон
  • MacBook
  • SDK для iPhone
  • Блендер

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

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

Что я не знаю:

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

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

С чего лучше всего начать? Я не мог найти никаких руководств по этому поводу, но, возможно, мой Google-Fu слабый. Или, может быть, мне стоит начать с изучения Objective C? Я знаю такие книги, как Аарон Хиллграсс, но я также читал, что они устарели, и большая часть примеров кода не работает с iPhone SDK, плюс, похоже, они ориентированы на парадигму модель-представление-контроллер, которая не работает. кажется, что подходит для 3D-приложений.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
52
0
59 833
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по теме