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

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

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

Синяя область указывает, откуда я хочу сделать 3D-модель. Я хочу сделать из него UV-карту и применить к ней текстуру.

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

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

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

Ответы (2)

Для этого вы можете использовать фильтр « Исправление перспективы » в Photoshop .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Скажите фильтру «Исправление перспективы», что вы хотите, чтобы он вернул 3D-слой в Photoshop:

    Настройка точки схода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Один из быстрых способов исправить это, если вам нужно, — использовать фильтры «Пластика» и «Деформация», чтобы немного согнуть текстуру, чтобы она повторяла контуры.

Если вам действительно нужна точная модель или файл 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 — это открытый стандарт, поэтому теоретически это должен быть лучший вариант, но я считаю, что импортеры часто искажают геометрию. Тем не менее, вы можете попробовать его, если варианты *.3dsи *.objне работают для вас.

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

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

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

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

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

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

Экспорт AE из точки схода


Сноски:

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

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

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

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

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

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

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

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

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

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

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

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

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

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