iOS - 2D-изображение превращается в 3D

Я проверял это классное приложение под названием Morfo . Согласно описанию их продукта -

Используйте Морфо, чтобы быстро превратить фотографию лица вашего друга в говорящий, танцующий, сумасшедший 3D персонаж! После захвата вы можете сделать свой друг скажи все, что хочешь, глупым голосом, раскачивайся, накрашивайся, обладать парой огромных зеленых кошачьих глаз, внезапно набрать 300 фунтов и больше.

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

enter image description here

У меня следующие вопросы -

  1. Как они это делают?
  2. Как это возможно в iPad?
  3. Разве рендеринг и преобразование 2D-изображения в 3D не требует больших затрат вычислительных ресурсов?

Любые указатели, ссылки на веб-сайты или библиотеки в objectiveC, которые это делают, очень приветствуются.

ОБНОВЛЕНИЕ: эта демонстрация этого продукта здесь показывает, как morfo использует механизм шаблонов для преобразования. то есть после загрузки 2D-изображения необходимо установить границы лица, где расположены глаза, размер и длину губ. затем он уходит, чтобы преобразовать его в 3D-модель. Как это сделано? Какие фреймворки или библиотеки они могут использовать?

17
задан rptwsthi 7 March 2013 в 14:20
поделиться

2 ответа

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

  1. Как они это делают?
    Идея состоит в том, что в 3D-рендеринге 3D-модели могут быть текстурированы с помощью 2D-изображения, известного как карта текстуры. Вы используете 2D-изображение и оборачиваете его вокруг 3d-модели, будь то простой примитив, такой как сфера куба, или более продвинутый, такой как классический чайник или модель человеческой головы и т. Д. Текстуру можно взять откуда угодно, в прошлом я использовал подачу камеры для текстурной сетки с видеоизображением из потока камеры, я использовал фотографии с камеры, как это делается. Так вот как лицо отображается в 3D-модели.

  2. Это эффективно?
    На iOS и большинстве мобильных устройств 3D-рендеринг использует аппаратное ускорение с использованием OpenGLES. Что касается вашего вопроса, это действительно быстро, в зависимости от того, как вы реализуете свой код рендеринга.

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

Поэтому, если вы хотите узнать это, я рекомендую прочитать учебник Джеффа Ламарша «с нуля» в качестве учебника для начинающих:

http://iphonedevelopment.blogspot.com/2009 /05/opengl-es-from-ground-up-table-of.html

Во-вторых, я прочитал около 4 книг по OpenGLES, для общего дизайна и для специфики платформ. Я рекомендую эту книгу:

http://www.amazon.co.uk/iPhone-Programming-Developing-Graphical-Applications/dp/0596804822/ref=sr_1_1?ie=UTF8&qid= 1331114559 & амп; ср = 8-1

14
ответ дан 30 November 2019 в 12:49
поделиться

Разве это не требует больших вычислительных ресурсов для рендеринга и преобразования 2D-изображений в 3D?

Apple тратит миллиарды долларов на разработку пользовательских чипсетов, а последние модели обладают впечатляющей производительностью, учитывая срок службы батареи и низкая рабочая температура (без вентиляторов).

1
ответ дан 30 November 2019 в 12:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: