Как сделать 3d модель из объекта на фотографии?

10

Это мой диван: введите описание изображения здесь

Я хочу сделать 3D-модель для того, чтобы применять различные шаблоны в пост-обработке; см. Как я могу обернуть новый шаблон вокруг 3D-объекта на фотографии?

Синяя область указывает, где я хочу сделать 3d модель. Я хочу сделать из него УФ-карту и наложить на нее текстуру.

Для этого, я думаю, сначала нужно сделать 3d модель из этой области. Я прав ? Если да, то как из него сделать 3d модель?

Если я ошибаюсь, предложите альтернативные подходы в моем предыдущем вопросе.

user3528346
источник
Так как это от бренда Fama в Испании, почему бы вам не использовать их инструмент Fabric Simulator? Как ни странно, их студийная версия гостиной выглядит точно так же, как ваша гостиная с диваном. fama.es/virtual-simulator.html Или, возможно, вы не хотели сказать, что это был ваш диван. На отдельном примечании я видел работу на свободном копье, который попросил кого-то сделать такую ​​работу. Это связано с вашим запросом?
Б Шоу
Точно так же, как поделиться великолепными списками из 40 бесплатных инструментов 3D-рендеринга, идеально подходящих для начинающих и для тех, кто имеет ограниченный бюджет для своих хобби. realspace3d.com/free-3d-tools
Стефан
3
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он касается графического дизайна и относится к графическому дизайну .
scottbb

Ответы:

24

Для этого вы можете использовать фильтр Photoshop's Vanishing Point .

Проще всего использовать версию Photoshop с поддержкой 3D, которая, как я полагаю, у вас есть, поскольку вы не упоминали никаких других программ для 3D. Существует альтернативный путь для тех, кто использует версию Photoshop без 3D-функций, о которой я расскажу ниже.

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

Лучший способ получить прямолинейную фотографию - использовать объектив с низким уровнем искажений. База данных объективов DxO может помочь вам выбрать один. Кроме того, вам следует использовать объектив, поддерживаемый функцией коррекции объектива в Lightroom или ACR , а затем использовать эту автоматическую коррекцию на фотографии, прежде чем пытаться создать из нее 3D-модель.

Вот как вы это делаете:

  1. Откройте свою фотографию в Photoshop, затем скажите «Фильтр» → «Точка исчезновения». Используя инструмент «Создать плоскость», нарисуйте рамку вокруг посадочной поверхности двух полностью видимых подушек.

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

  2. Удерживая нажатой клавишу «Command» (Mac) или «Control» (Windows), перетащите вниз из поля изменения размера на переднем крае этой плоскости, чтобы опустить новую вертикальную плоскость над передним краем этих дальних подушек.

    Теперь повторите, что Cmd / Ctrl-drag перемещаются еще 4 раза, чтобы создать плоскости, которые покрывают подушку, ближайшую к камере: сначала вертикальную, чтобы покрыть скрытый фронт подушки, затем горизонтальную, покрывающую зону сидения, затем еще две вертикальные. те, чтобы покрыть стороны, стоящие перед камерой.

    Наконец, вытяните первую плоскость, чтобы покрыть посадочную поверхность внутренней угловой подушки.

    Размер этих плоскостей, чтобы покрыть всю видимую поверхность, хотя это требует покрытия некоторых областей фотографии, которые не являются частью подушки: ²

    пронумерованные самолеты

    Мы отрегулируем покрытие самолета позже.

    Если вы обнаружите, что по мере удаления от первой плоскости новые будут все более и более плохо совмещаться с поверхностями дивана, наиболее вероятная причина заключается в том, что вы не точно выровняли первую плоскость с поверхностью сидения подушки. По мере того, как вы выходите из этой смещенной плоскости, вы увеличиваете эту ошибку. Лучшее решение для этого - удалить все, кроме первой плоскости, а затем немного настроить ее углы, чтобы она лучше соответствовала сцене. Когда вы продлите эти 5 других плоскостей, теперь они должны более точно соответствовать сцене.

    Другой вероятной причиной является то, что вы проигнорировали приведенный выше совет, чтобы начать с прямолинейной фотографии.

  3. Скажите фильтру Vanishing Point, что вы хотите, чтобы он возвращал 3D-слой в Photoshop:

    Настройка точки схождения

    Если в вашей версии Photoshop отсутствует эта функция, оставайтесь на данный момент в фильтре Vanishing Point. Мы сделаем следующий шаг немного иначе, чтобы обойти это отсутствие прямой поддержки 3D.

    В противном случае скажите «ОК», и вы получите новый 3D-слой с примитивной моделью обведенных вами поверхностей дивана.

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

    Что мы собираемся сделать дальше, так это родство с камерой , метод, который часто используется в VFX для получения быстрых 3D-эффектов в 2D-сцене, не переходя полностью в 3D. Вместо того, чтобы проецировать фотографию на грубую трехмерную геометрию, мы собираемся использовать нашу грубую трехмерную геометрию, чтобы помочь проецированию текстур обратно на фотографию.

  4. Когда вы возвращаете 3D-слой в Photoshop из диалогового окна фильтра «Точка исчезновения», он может спросить вас, хотите ли вы перейти в 3D-рабочее пространство; ³ принять предложение.

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

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

    Здесь я использовал узорную кисть с безвкусным рисунком, поэтому эффект легко увидеть. Просто заполните все поверхности своей текстурой, чтобы начать с:

    шаг 1, поверхности заполнены

    Обратите внимание, что рисунок находится в правильной перспективе, сужается вдаль. Это происходит потому, что мы рисуем на трехмерной поверхности, которая соответствует грубой геометрии нашей 2D-сцены.

    Если вы используете версию, в которой отсутствует эта возможность для создания 3D-объекта из плоскостей Vanishing Point, вы можете использовать инструмент «Штамп» в диалоговом окне «Vanishing Point» для копирования плоских текстур на плоскости. Это имеет тот же эффект, что и рисование на 3D-модели, которая заключается в применении вашей текстуры к сцене в правильной перспективе.

  5. Добавьте черную маску слоя в 3D-слой, щелкнув Option / Alt, щелкнув значок маски слоя, затем закрасьте белыми области, в которых вы хотите отобразить рисунок:

    шаг 2, поверхности замаскированы

    Как видите, я проделал очень грубую работу. Я намеренно сделал маску немного больше, чем нужно, используя большую кисть с острыми краями и большие неаккуратные мазки. Если это займет у вас более 30 секунд, вы теряете время. Мы закроем маску обратно с некоторыми деталями работы на следующем шаге.

  6. Уменьшите непрозрачность слоя примерно до 50%, чтобы вы могли видеть нижележащую фотографию достаточно хорошо, чтобы увидеть края подушки, а затем осторожно уточнить края вашей маски, чтобы покрыть только те части 3D-модели, для которых вы хотите показать рисунок.

    Совет для профессионала: один клик с помощью кисти Photoshop с последующим щелчком Shift в другом месте дает вам хороший прямой штрих, который вы не можете легко скопировать вручную. Здесь вы можете щелкнуть маску слоя возле одного угла подушки жесткой кистью, чтобы кисть едва касалась края подушки, а затем нажать Shift и щелкнуть на том же расстоянии от другого угла вдоль этого края подушки. , Это позволяет быстро и точно обрезать отклонения маски за прямыми краями.

  7. Увеличьте непрозрачность 3D-слоя до 90-100% и переключите режим смешивания на что-нибудь подходящее. Для этой комбинации текстур и фоновых фотографий хорошо работает Linear Burn: ⁵

    шаг 3, смесь завершена

    Вуаля, электронная обивка!

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

Один из быстрых способов исправить это, если вам нужно, это использовать фильтры Liquify и Warp, чтобы немного согнуть текстуру, чтобы она повторяла контуры.

Если вам действительно нужна точная модель или файл 2D-карты UV, чтобы вы могли выполнять автоматическую замену текстур, у вас есть несколько вариантов:

  • Пройдите шаги 1 и 2 выше. Затем, вместо выбора «Вернуть 3D-слой в Photoshop» из всплывающего меню, скажите Photoshop «Экспортировать в 3DS» ...

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

  • В Photoshop CS4 Extended или более поздней версии вы можете перейти к шагу 3 выше, чтобы вернуть 3D-слой в Photoshop из диалогового окна фильтра «Точка исчезновения», а затем сказать 3D → Экспорт 3D-слоя ...

    Как ни странно, формат 3ds Max здесь не один из ваших вариантов. Из тех, что дает вам Photoshop, я рекомендую Wavefront OBJ. Это примерно так же широко, как *.3ds. Многие 3D-программы откроют обе, а другие откроют только одну или другую.

    COLLADA - это открытый стандарт, поэтому теоретически это должен быть лучший вариант, но я считаю, что импортеры часто манипулируют геометрией. Тем не менее, вы можете попробовать его, если опции *.3dsand и *.objу вас не работают.

    Photoshop также может экспортировать в STL и DXF, которые широко поддерживаются, но не подходят для такого рода работы. Это реальные форматы САПР, а не форматы творческих изображений. Вы могли бы использовать их при изготовлении настоящих диванов.

    Все остальные параметры являются «стандартами» в смысле XKCD . Избежать их.

Теперь вам «просто» нужно открыть этот файл модели в настоящем 3D-моделе и уточнить его. Полнофункциональный 3D-пакет также позволит вам работать с УФ-картой напрямую, если это необходимо.

Это выводит нас за рамки этого сайта. Даже если бы здесь было 3D-моделирование, чтобы пойти дальше, мне бы пришлось ответить на вопрос: «Как вы занимаетесь 3D-моделированием?». Эта тема требует целых книг, чтобы объяснить. Вам нужны месяцы практики, чтобы приобрести компетенцию, и около 10000 часов целенаправленной практики по наращиванию навыков для достижения определенного уровня знаний. Это умение достаточно редкое, достаточно сложное и достаточно ценное, чтобы вы могли зарабатывать на жизнь этим.

Если у вас есть подробная 3D-модель, вы можете вернуть ее в Photoshop, если хотите. Photoshop - довольно хороший инструмент для рисования текстур в 3D. Есть также специальные инструменты, такие как MARI , 3D-Coat и BodyPaint 3D . Высококачественные 3D-пакеты часто включают функции рисования текстур, которые конкурируют или превосходят Photoshop в своей более специализированной области: CINEMA 4D , modo , Blender и т. Д.

Если вы подписаны на полную версию Creative Cloud , у вас уже есть CINEMA 4D Lite , урезанная, но довольно функциональная версия C4D, которая теперь включает BodyPaint, функцию, которая раньше была доступна только в не-Lite версиях. Вы можете думать о BodyPaint как о трехмерной альтернативе Photoshop, созданной для рисования непосредственно на моделях, как мы делали выше. Основное практическое ограничение заключается в том, что вы должны использовать его через After Effects, что неудобно, если вы еще не использовали AE для своего проекта. С положительной стороны, вы можете добраться до AE прямо из фильтра Vanishing Point:

AE Экспорт из пункта исчезновения


Примечания:

  1. Это означает CS3 Extended до CS6 Extended или любую из версий Creative Cloud. Я тестировал эту технику в CS3 Extended и в CC 2014.2.

  2. Вы увидите синие сетки, а не сплошные пронумерованные самолеты. Я раскрасил и пронумеровал самолеты, чтобы сделать пример более понятным.

    Если вы ищете желтую третью плоскость, она направлена ​​в сторону от камеры. Нам только нужно было сконструировать его, чтобы обойти угол буквы L дивана.

  3. Все версии Photoshop с поддержкой 3D имеют функцию Workspaces, но более ранние версии не делали этого автоматического переключения режима рабочего пространства. Трехмерное рабочее пространство не было добавлено в Photoshop до CS4. Кроме того, версиям, которые предлагают переключить вас в трехмерное рабочее пространство, может быть предложено запомнить выбор, поэтому он может просто переключать рабочее пространство без запроса.

  4. Строго говоря, это не дает вам запрашиваемую УФ-карту , но в большинстве случаев вам действительно нужна прямая окраска модели. Если вам действительно нужен отдельный файл UV-карты, вам нужно экспортировать 3D-модель Photoshop в другое приложение, как описано выше.

    Рисование текстур работает по-другому в Photoshop CS3 Extended. В CS4 добавлена ​​возможность рисовать непосредственно на модели, тогда как в CS3 вы должны открывать и редактировать каждую текстуру отдельно. Для этой техники разница действительно не имеет значения.

  5. Режим смешивания Multiply также может хорошо работать для такой комбинации. Для других текстур и базовых фотографий может потребоваться другой режим наложения.

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

Уоррен Янг
источник
2
Это потрясающий ответ - очень хорошо задокументировано. Это было бы отличным стандартным справочником для таких вопросов.
Б Шоу,
3

Если вы выполняете большую часть такого рода работы, я бы серьезно предложил потратить время на изучение Blender 3D - это не будет стоить вам больше времени и пота на бровях, поскольку оно совершенно бесплатно (как без затрат, так и с открытым исходным кодом) , чтобы получить и использовать для любых целей . Он кроссплатформенный, но, очевидно, требует разумного количества ресурсов для хранения и обработки ( не так много, как вы могли бы ожидать ).

С помощью Blender вы можете создавать 3D-модели, добавлять текстуры, а затем производить рендеринг с полным разрешением под любым углом и с любым освещением - вы даже можете сделать видео о прогулке / полете по сцене - фактически с ним были сняты полнометражные фильмы. ,

Есть много онлайн учебники, это один хорошо стоит посмотреть , бета - Stack биржа сайтов, платные и бесплатные книги и т.д.

Вот пара примеров (все сделано полностью в Blender), которые я спешу добавить, не были произведены мной: Диван Гостиная

Стив Барнс
источник
+1 за принцип действия, но моя техника заняла у меня около получаса, чтобы в первый раз перейти от File> Open к готовому продукту. Теперь, когда я разобрался в деталях, я мог повторить работу за 5-10 минут. С моими скромными трехмерными играми мне потребовался бы день или два, чтобы смоделировать диван, похожий на тот, что на оригинальной фотографии. Добавьте больше дней, чтобы повторить всю сцену. Nice GI рендерится так же, как те, что вы разместили, еще больше дней. Затем вам нужно поработать с композитором, чтобы взять проходы, которые вы рендерили для замены в альтернативных текстурах без повторного рендеринга.
Уоррен Янг
@SteveBarnes спасибо за ответ. Если я просто хочу научиться 3D-моделированию с диванов и мебели, не могли бы вы рассказать мне некоторые ресурсы. Blender - очень большая программа с большим количеством инструментов. Чему я должен научиться делать 3d модели?
user3528346
1
@ user3528346 - Одна из причин рекомендовать Blender, несмотря на его размер и крутую кривую обучения, заключается в том, что он бесплатный и в Интернете есть много помощи. Другие инструменты см. На hongkiat.com/blog/…en и en.wikipedia.org/wiki/List_of_3D_modeling_software
Стив Барнс,
@SteveBarnes Спасибо за ответ. Если я хочу научиться трехмерному моделированию мебели и диванов, не могли бы вы дать мне несколько ресурсов, книги или видеоуроки? Я могу купить их, нет проблем. Я просто хочу научиться делать 3d модели из диванов
user3528346
3D-моделирование большинства вещей похоже на хорошую отправную точку с помощью блендера: cgcookie.com/blender/cgc-courses/…
Стив Барнс,