Как взаимодействовать с 3D-моделями на базе OBJ на iPhone? - PullRequest
0 голосов
/ 06 октября 2009

У меня есть несколько разных файлов OBJ, которые я могу анализировать и отображать. Этот код основан на запуске класса загрузчика файлов WaveFront OBJ Джеффа Ламарша . Однако мне нужны некоторые средства для определения того, какие координаты я выбрал в отображаемой модели. Обычно за один раз отображается одна модель, но иногда на экране появляется две или более, и я хочу настроить объект NSNotificationCenter для уведомления других разделов кода о том, какой объект «выбран». Я также ознакомился с «OpenGL ES для iPhone: простое руководство» от javacom и хотел бы смоделировать поведение того, что я пытаюсь запрограммировать после его.

Это моя текущая логическая линия:

  • Настройка средства для определения того, где пользователь коснулся экрана
  • Сравните эти координаты с текущими координатами модели на основе OBJ
  • Если они совпадают, укажите, что указанное касание находится в пределах объекта
  • Сенсорный набор координат должен масштабироваться с моделью. В настоящее время модель может масштабироваться, поэтому мне, скорее всего, нужно будет следить за этим масштабированием.

Также обратите внимание, мне не нужно перемещать модель по экрану. Просто определите при касании, отображается ли одна модель или несколько.

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

1 Ответ

0 голосов
/ 16 декабря 2009

Используйте gluUnProject для координат касания, чтобы получить вектор, идущий с экрана в мир, а затем пересечь его с вашими моделями, чтобы увидеть, не коснулась ли одна из них. gluUnProject по умолчанию недоступен на iPhone, но вы можете посмотреть его реализации. http://www.mesa3d.org/ имеет реализацию с открытым исходным кодом.

Читайте о gluUnProject здесь: http://web.iiit.ac.in/~vkrishna/data/unproj.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...