Создание карты глубины в фотошопе для 3д
DTF публикует статью с разрешения автора.
Этому приёму меня научил бывший коллега, 3D-моделлер Павел Кондратенко. В тандеме с ним мы очень долго трудились над убердетальными промо-артами для игры World of Speed. Процесс их создания — тема для отдельной статьи, которую я впоследствии обязательно напишу. На примере работы с девушкой рассмотрим процесс создания качественного блюра.
Когда вы рендерите что-либо в 3D-пакете, обычно он предлагает помимо основной картинки отрендерить пассы для постобработки изображения, например, Сlown Pass (удобные цветные маски по частям модели), Material Pass (маски по материалам), пасс по бликам и тому подобные.
Нас интересует Depth Pass. Он выглядит примерно так и представляет из себя карту высот или глубины.
Как его использовать? Доводим рендер в Photoshop до нужного вам предфинального состояния.
Закидываем карту глубины в альфа-канал: выделить все на незалоченном слое\файле с альфа-каналом Ctrl+A, скопировать в буфер обмена Ctrl+C, создать новый канал в вкладке Channels, вставить туда нашу карту Ctrl+V.
Основное меню, выбираем Filter — Blur — Lens Blur. В Depth Map указываем, что Source (источник) — наша альфа, и играем с настройками и ползунками.
Выбираем тот блюр, который больше нравится, например, Shape — Hexagon даёт форму гексов на ярких бликах, как через некоторые камеры.
Все эти виды блюра качественнее стандартного фильтра Gaussian Blur или инструмента Blur Tool (капля в панели инструментов), хотя последний ещё можно прокачать, изменив отпечаток кисти и её настройки. Однако это подойдёт скорее для смешивания красок и motion blur-эффектов.
Дальше — просто праздник какой-то. Не выходя из фильтра, кликаем на любое место картинки. В этой точке автоматически будет фокус нашей виртуальной камеры. Хочешь — передний план фокусируй, хочешь — средний или задний.
Если результат не радует, стоит подкрутить нашу карту глубины с помощью Levels/Curves/Brightness/Contrast/кистями/масками/градиентами (любым удобным лично вам инструментом коррекции тона) и заново запустить фильтр.
Как всё это использовать, если у нас нет Depth Pass, или мы вообще не использовали 3D в процессе создания работы? Нарисовать карту вручную. Используем пространственное воображение, мы же художники!
Вот пример с готическим городом — Depth Pass у меня нет, хотя 3D-основа была, сильно изменённая оверпеинтами и корректировками в Photoshop. Слои по планам у меня есть, ничего не мешает использовать их для создания собственной карты глубины.
В этой статье рассмотрим, как выполнить преобразование 2D фотографии в 3D с помощью Triaxes 3DMasterKit v.10. Для примера используем фотографию города, из которой планируем сделать лентикулярное 3D фото большого размера.
В следующем видео подробно рассмотрен процесс 2D 3D конвертации
Ниже в статье приводятся некоторые расширенные комментарии по основным этапам работы.
1.Добавление слоя в проект
Запускаем программу Triaxes 3DMasterKit, создаем новый проект и загружаем фотографию в проект как слой (команда Layers-Add…). Выделим слой (клик левой кнопки на миниатюре слоя) и установим для него позицию Depth=0.
2.Добавляем карты глубины слоя
Карта глубины — вспомогательное полутоновое изображение. В карте глубины яркостью пиксела (обычно меняется от 0 до 255) обозначена удалённость объектов от наблюдателя (чем светлее — тем ближе).
Способы получения карты глубины для фотографий бывают разные, например, можно нарисовать в графическом редакторе (более подробно о методах создания карт глубины смотрите по ссылкам в конце статьи).
Для добавления карты глубины кликнем правой кнопкой мыши на миниатюре слоя и используем команду контекстного меню Load depth map… и далее укажем и загрузим карту глубины. Карта глубины должна совпадать по размеру с размером изображения.
3.Предварительная оценка эффекта
После подключения к слою карты глубины уже можно оценить создаваемый 3D эффект. Для этого выполним генерацию серии кадров (команда меню Layers-Generate multiview… или соответствующая кнопка на панели Layers).
Для предварительной оценки достаточно сгенерировать несколько кадров (обычно 6-12 кадров). Просмотр кадров в режиме анимации (команда меню View-Animations… кнопка на панели инструментов или клавиша пробел) позволяет оценить создаваемый 3D эффект. Рассмотрим внимательнее созданные кадры. Ползунок (slider) в панели инструментов позволяет менять прозрачность наложенных друг на друга кадров. В левом положении ползунка будет показан левый кадр, в правом положении — правый. Также можно увеличить масштаб просмотра изображения. Проблемные зоны — это, как правило, части изображения, на которых произошел резкий переход в карте глубины. Обычно, такое случается когда на изображении большая дистанция между объектами переднего и заднего планов. В проблемных местах у программы нет информации о том, как выглядят объекты заднего плана, скрытые объектами переднего плана. При смещении передних объектов, программа достраивает изображение, используя имеющуюся информацию. Если достраивать приходится большой участок, то возникают дефекты, похожие на растяжение изображения, как показано на следующем рисунке.
Решить данную проблему можно, выделив объекты переднего плана в отдельные слои и выполнив реконструкцию объектов заднего плана. Эту операцию можно выполнить в графическом редакторе Photoshop или GIMP. Разделенное по слоям изображение сохраняем в файл формата .psd.
4.Работа со слоями
Разрезка фотографии на слои — эта операция из разряда общих приёмов и навыков работы с цифровыми изображениями, поэтому данный этап не будем рассматривать подробно. Отметим лишь следующие рекомендации.
- Размер всех слоёв должен совпадать с размером всего изображения.
- Порядок слоёв должен соответствовать удалению объектов. Объекты переднего плана на верхнем слое, дальнего плана — на нижнем слое.
- Образовавшиеся пустоты на слоях нижних уровней надо заполнить — восстановить изображение заднего плана насколько возможно.
- При выделении объектов (вынесении в отдельные слои) край объектов делать немного размытым.
- Для всех слоёв использовать одну цветовую модель: RGB с альфа-каналом.
Пусть у нас уже есть разрезанный на три слоя проект, сохраненный в файл Cathedral.psd. Выполним следующие действия.
- Создадим новый проект в 3DMasterKit.
- Добавим слои (файл Cathedral.psd) в проект Команда Layers-Add….
- Установим все слои проекта на уровень 0 в панели “Слои” (Layers).
В результате получим следующий вид главного окна программы:
5.Карты глубины для слоёв
Для создания 3D эффекта к слоям надо добавить карту глубины. Выполним следующие действия.
- Добавим (одну и ту же) имеющуюся карту глубины для всех слоёв (команда контекстного меню слоя Load depth map).
- Адаптируем карту глубины для каждого слоя. Для этого в настройках 3DMasterKit (команда Project-Settings) надо установить путь к внешнему графическому редактору, который будет использован для коррекции изображений как показано на следующем рисунке.
- С помощью команды Edit in external editor… из контекстного меню слоя откроем изображения для редактирования.
- В редакторе откроется два слоя: оригинальное изображение слоя и в отдельном слое — карта глубины. Задача на этом этапе — привести карту глубины слоя всоответствие изображению слоя. Для редактирования карты глубины используйте инструменты редактора. Для передачи изменений в 3DMasterKit выполните сохранение файла (перезаписать файл). Изменения также можно вносить и в само изображение слоя. Они тоже будут передани в 3DMasterKit.
Для связи с внешним редактором 3DMasterKit использует временные файлы. Чтобы передать изменения обратно в 3DMasterKit надо сохранить их в этот же файл. При этом не меняйте расположение или имя файла, не изменяйте размер изображения, названия и порядок слоёв. Если что-то пошло не так и по какой-то причине связь между программами оказалась нарушена, можно сохранить работу, выполненную в редакторе, в файл формата .psd в удобное вам место и с любым именем, а позже добавить отредактированный слой в проект в программе 3DMasterKit командой Layer-Add…
Например, на слое заднего плана мы убрали изображение собора. Значит, его надо убрать и из карты глубины. Должно получиться примерно так, как на картинке.
Слой заднего плана и карта глубины, адаптированная для него.
5. Шаги 3,4 надо выполнить для всех слоёв.
Результат работы на этом этапе — проект слоёв вместе с картами глубины сохраним в файл формата .psdd (команда Layers-Save template…). Этот файл затем можно копировать и повторно открыть в проекте 3DMasterKit (или Legend) командой Layers-Add…
Формат PSDD разработан Triaxes на основе формата PSD. PSDD позволяет сохранить слои и ассоциированные с ними карты глубины, а также настройки положения слоёв в проекте настройки параллаксов. При необходимости, открыв файл в Photoshop или GIMP, расширение файла можно изменить на .psd. Файл откроется и слои, в том числе и карты глубины, будут показаны, но будут потеряны настройки, связь между слоями и картами глубины.
6.Генерация серии кадров
Для генерации серии кадров установим требуемые значения параллаксов и выполним команду Layers-Generate multiview….
Программа предложит рекомендуемое количество кадров в зависимости от планируемого разрешения лентикулярного изображения и LPI линз.
Полученные кадры будут показаны в списке в верхней части окна программы.
Оценить эффект 3D, можно включив режим анимации команда View-Animation.
Как известно, для создания 3D изображения требуется информация о глубине сцены. Если вы работаете со стереоизображением (стереопарой), карту глубины можно создать в специальной программе, например, в Triaxes StereoTracer. Однако, если вы хотите создать 3D изображение из плоской 2D картинки, вам придется нарисовать карту глубины вручную (т.е. добавить информацию о глубине). Для того, чтобы нарисовать карту глубины, вам потребуется редактор растровой графики (Adobe Photoshop, GIMP и т.п) и следующие его функции:
- инструмент выделения контуров
- инструмент работы со слоями
- инструмент градиент
Конечно, вам надо будет немного набить руку в использовании вышеуказанных инструментов, но это совсем не сложно.
1) Загружаем файл в редактор. В данном примере показано использование Adobe Photoshop, но аналогичные действия можно выполнять и в другой программе, например, в бесплатной программе GIMP (пример создания карты глубины в этом редакторе см. ниже).
2) Сначала выделяем все изображение целиком (Ctrl+A). Затем нажимаем скопировать (Ctrl+C). Потом нажимаем вставить (Ctrl+V). Теперь у нас в окне слои два одинаковых слоя.
Кликаем правой кнопкой на нижнем слое и жмем удалить слой.
Теперь у нас остался 1 слой. Эти операции делаются для того что бы избавиться от блокировки нижнего слоя.
Для построения карты глубины нужно разбить изображение несколько сегментов. Разбиваем по принципу: если два объекта имеют разную удаленность то их нужно выделить в отдельный слой. Например, на данной картинке можно выделить 6-9 сегментов. Задний фон — 1 слой, ваза — 2-ой слой, каждый лепесток в отдельный слой. В результате получается следующее:
Для того выделения объектов потребуется инструмент. Обычно для этой цели есть три инструмента: лассо, многоугольное лассо, магнитное лассо. Для выделения объектов можно использовать любой инструмент из вышеперечисленных.
3) Разбитие на сегменты происходит следующим образом: Сначала выделим объект который хотим поместить в отдельный слой, например отделим вазу с цветами от заднего фона.
Затем нажимаем копировать (Ctrl+C), удалить (del), вставить (Ctrl+V). Тем самым мы отделили вазу с цветами от фона.
Далее, таким же образом, выделяем остальные элементы изображения отдельные слои. В результате имеем изображение, разбитое на сегменты.
4)Преобразуем изображение в черно-белое. Изображение -> Режим -> Черно-белый.
5)Теперь каждый слой нужно залить однородным цветом. Цвет заливки каждого слоя будет зависеть от того насколько ближе или дальше должен находиться объект. Например, передний лепесток находится ближе к наблюдателю, чем ваза. А ваза в свою очередь ближе чем фон. Следовательно у передний лепесток должен быть ярче, ближе к белому. У вазы потемнее, примерно светло серый, фон — близко к черному и т.д.
Заливку каждого слоя можно сделать разными способами. Например:
1.Выбираем слой, жмем Изображение -> Регулировки -> Яркость контрастность. Контрастность устанавливаем на минимум (-100), а значение яркости устанавливаем в зависимости от цвета который хотим получить. +100 светлый (белый), -100 темный(черный).
2.Выбираем слой, выбираем инструмент волшебная палочка, кликаем на область, которая не входит в данный слой, тем самым выделяем все кроме объекта, лежащего в этом слое. Жмем Инвертировать выделение (Shift+Ctrl+I). Затем нажимаем заливка (Shift+F5) и в диалоге выбираем цвет которым хотим залить данный регион.
В результате должна получиться примерно такая картинка:
Чем ближе объект находиться тем более светлым цветом была выполнена заливка.
6) Фон на данном снимке является поверхностью, которая в пространстве распределена неравномерно, области фона находятся на различных расстояниях от наблюдателя, нижняя область — ближе, верхняя — дальше. Поэтому для лучшего результата сделаем градиент фона. Выбираем объект фон. Щелкаем на инструмент градиент и делаем градиент сверху вниз:
1.Для сведения необходимо выполнить: Слой -> Выполнить сведение.
2.Для размытия — Фильтр Размытие -> Размытие гаусса.
8) Карта глубины готова.
Теперь можно исходное изображение и созданную карту глубины загрузить в программу StereoTracer и сгенерировать серию ракурсов.
Полученную после генерации серию можно использовать в 3DMAsterKit для создания растрового 3D изображения.
Полученная стереопара (первый и последний кадры серии)
Анаглифная картинка:
Анимированный GIF, экспорт из 3DMasterKit.
Использование редактора GIMP для создания карты глубины
GIMP можно эффективно использовать для создания карты глубины. В программе есть удобные инструменты рисования контуров и выделения объектов. Рассмотрим пример создания карты глубины:
Имеем исходную картинку 2-х годичной давности «Продавец шляп в Неваде»:
Используя GIMP разрезаем для удобства на слои, а затем с помощью инструментов градиентной заливки раскрашиваем слои так, как нам подсказывает наше представление об объемности сцены. Когда вы рисуете карту глубины, помните, что это не есть само изображение, поэтому не нужно повторять в карте глубины игру свето-тени, цветовые переходы и т.п. В карте глубины указываются только расстояния до объектов.
Описанный выше процесс показан на следующей картинке:
Затем выполняем команду «Flatten image» (склеить слои) и используем фильтр гаусса для размытия изображения, чтобы сделать карту «помягче». В результате получаем:
Теперь используем Triaxes StereoTracer для того, чтобы просчитать серию картинок.
Стерео-пара (первый и последний кадр полученной серии):
Анаглифная картинка:
Анимированный gif (экспорт из StereoTracer):
Еще один пример преобразования обычной фотографии в 3D
Для построения карты глубины в этом примере использована программа GIMP и методика, описанная выше.
Исходная фотография и карта глубины:
Рассчитанная стереопара
Анаглифное изображение
Анимированный gif (экспорт из StereoTracer)
- карта глубины слоя.
Иконка справа от изображения слоя показывает наличие для него карты глубины.
Карта глубины ( Z-изображение ) - это полутоновое (черно-белое) изображение. Яркость пиксела на карте глубины показывает удаленность от зрителя соответствующего пиксела на оригинальном изображении: более светлые области соответствуют областям, приближенным к наблюдателю, темные — более удаленным. Белый пиксел на карте глубины означает, что соответствующий пиксел оригинального изображения находиться ближе всех к наблюдателю (передний план); черный — дальше всех (задний план); градации серого цвета соответствуют объектам промежуточных (средних) планов.
В результате использования карты глубины объекты-слои получают дополнительный объем, и готовое 3D изображение выглядит более естественно и создает лучший эффект.
Создание карты глубины
Для того, чтобы создать карту глубины для слоя, выделите его в списке слоёв и вызовите правой кнопкой мыши контекстное меню слоя. Далее нажмите " Сгенерировать карту глубины. ", клавиши быстрого вызова: Alt+D . Появится диалог генерации карты глубины (рис. 2.5.).
Рис. 2.5. Диалог генерации карты глубины
Для создания карты глубины доступно два вида генерации и их смешение: градиентный и контурный. Ползунок Выбора метода устанавливает значения в процентах обоих типов для предварительного показа карты глубины. Есть возможность инвертировать цвет серых пикселов отдельно для каждого типа. Также доступно установка значения размытия карты глубины (от 0 до 100).
Нажмите " Сохранить ", чтобы установить текущую карту глубины для выбранного слоя.
Нарисовать карту глубины вручную можно, например, в Photoshop или GIMP. (Пример ручного создания карты глубины приведен здесь ). Затем сохранить карту в виде отдельного изображения с прозрачностью, или в виде слоя в psdd файле шаблона.
Существующую карту глубины можно прикрепить к слою двумя способами:
1) Загрузить карту глубины из отдельного файла (в формате .tiff, .jpg, .jpg, .bmp или .jpg). Для этого надо кликнуть правой кнопкой мыши на изображении слоя в списке и выбрать из контекстного меню " Загрузить карту глубины. ", клавиши быстрого вызова: Alt+L ;
2) Назначить соседний слой, как карту глубины (если карта находится в виде слоя в том же файле многослойного шаблона .psdd). Для этого надо кликнуть правой кнопкой мыши на изображение слоя в списке и выбрать из контекстного меню "Прикрепить верхний слой, как карту глубины" или "Прикрепить нижний слой, как карту глубины".
Примечание : Генерация карты глубины поддерживается только для слоёв в цветовой модели CMYK, а загружаемая из файла карта глубины должна быть в той же цветовой модели, что и многослойный шаблон.
Не прерывая работу в 3DMasterKit, можно отредактировать карту глубины слоя во внешнем редакторе, например, Paint, Photoshop или GIMP. Для этого нажмите в контекстом меню слоя " Редактировать во внешнем редакторе. ", клавиши быстрого вызова: Alt+E . Временный файл карты глубины откроется в редакторе. После сохранения изменений, в 3DMasterKit появится уведомление об обновлении карты глубины для выбранного слоя (рис. 2.6.). Вы можете отключить появление диалога с уведомлением об обновлении карты глубины и автоматическую применение карты глубины для слоя, отметив пункт " Автоматически загружать изображения из внешнего редактора " в последнем или в диалоге настроек. Выбрать внешний редактор или установить редактор по умолчанию - Paint можно в диалоге настроек программы.
Рис. 2.6. Уведомление об обновлении изображения
Также доступны следующие команды контекстного меню слоя:
- Переименовать - изменить имя слоя в шаблоне;
- Редактировать гистограмму слоя - открыть диалог гистограммы с изображением слоя;
- Редактировать гистограмму карты глубины - открыть диалог гистограммы с картой глубины слоя;
- Сохранить карту глубины как - сохранить карту глубины в файл с расширением .tiff, .jpg, .jpg, .bmp;
- Удалить карту глубины - удалить для выбранного слоя карту глубины.
Готовый проект (шаблон) можно сохранить в файл .psdd и при необходимости редактировать карту. При этом, если .psdd файл редактируется и сохраняется в Photoshop, то в нем останется информация о том, какой слой является картой глубины.
Показать или убрать с экрана панель Слои можно с помощью команды меню Вид >> Панель слоев или клавиши быстрого вызова: Ctrl+L .
Примечание : Работа со списками в программе 3DMasterKit аналогична работе со списками Windows - групповое выделение мышью, с использованием клавиши Shift, и выборочное выделение, с нажатой клавишей Ctrl.
Полезный прием : сделать группу слоев видимыми или невидимыми можно так: выбрать верхний слой в списке, затем нажать клавишу Shift и, удерживая Shift, щёлкнуть мышкой по галочке нижнего слоя. Кроме того, на панели инструментов окна «Слои» есть кнопка - включить/отключить показ всех слоев.
Из эквидистантной проекции можно сделать круговую панораму 360. Такие фотографии часто можно встретить в социальных сетях. Они полюбились интернет пользователям благодаря своей необычности и красочности.
Создание виртуальных 3D туров под ключ
Размещение 3D панорам в Яндекс, Google и другие платформы в Интернете.
Этот эффект называется «Маленькая планета». Сделать такую фотографию совсем не сложно. Рассмотрим три способа. Для работы нам понадобится эквидистантная проекция панорамы. Ее мы склеили из нескольких фотографий в PTGui.
Эквидистантная проекция сферической панорамы
Чтобы сделать такую проекцию не обязательно изучать азы профессиональной панорамной съемки. При помощи камеры 360 можно сделать панорамный снимок буквально в одно нажатие.
Круговая панорама в фотошопе
Начнем с самого популярного графического редактора – Photoshop. Было бы странно, если в этой программе нельзя было бы сделать круговую панораму. Сделать маленькую планету в фотошоп можно с помощью инструмента «полярные координаты» или в стороннем плагине.
Полярные координаты в Photoshop
Для начала нам нужно подготовить эквидистантную проекцию. Изначально наша панорама имеет соотношение сторон 2:1 (10000 px на 5000 px). Сделаем ее квадратной, так, чтобы все ее стороны были по 5000 пикселей. Для этого перейдем в «Изображение — Размер изображения» (Image — Image Size) и меняем значение ширины с 10000 на 5000, предварительно убрав галочку «Сохранять пропорции» (Constrain Proportions). Получаем такой результат:
Теперь перевернем изображение на 180 градусов. Это можно сделать вручную при помощи трансформации или в меню «Изображение – Вращение изображения — 180°» (Image > Rotate Canvas > 180°).
Мы уже на финишной прямой, осталось применить фильтр. Переходим в «Фильтр — Искажение — Полярные координаты» (Filter — Distort — Polar Coordinates). Здесь выбираем «Прямоугольные в полярные» (Rectangular to Polar) и жмем «Ок». В результате получится круговая панорама в виде маленькой планеты.
Круговая панорама маленькая планета
Интересно, если не поворачивать панораму на втором этапе в верх тормашками, получится изображение с кардинально другим эффектом. После применения фильтра «Полярные координаты» получим закрученную сферическую панораму.
Круговая панорама
Немного обрежем по краям это изображение, получится круговая панорама с интересным эффектом — словно фотография сделана с земли объективом вверх на широкоугольную линзу.
Круговая панорама
Плагин Flexify 2
Для Photoshop есть специальный плагин для работы со сферическими панорамами — Flexify 2. Он умеет менять проекции панорам самым причудливым образом. Этот плагин платный, но на сайте разработчика можно скачать пробную версию.
Плагин Flexify 2
Среди множества функций есть и эффект «Маленькая планета». Чтобы преобразовать круговую панораму, нужно нажать всего одну кнопку.
Круговая панорама в плагине Flexify 2
В плагине Flexify 2 есть дополнительные настройки для корректировки проекции:
- Latitude – при значении «-90» получается маленькая планета, если выставить «90» панорама выворачивается в обратную сторону, а промежуточное положение дает завораживающий эффект похожий на съемку на широкоугольный объектив.
- Longitude и Spin – эти настройки вращают и поворачивают панораму.
- FOV – изменение угла обзора.
Перебрав несколько вариантов, можно получить из круговой панорамы красочную фотографию.
Круговая панорама в плагине Flexify 2
Маленькая планета из сферической панорамы в PTGui
Программу PTGui мы уже использовали для сшивки панорам. Здесь же можно и менять проекцию круговой панорамы. Откроем эквидистантную проекцию, затем расширенные настройки (Advanced>>) и перейдем на вкладку «Panorama Settings».
Настройки круговой панорамы в PTGui
Настройки для создания эффекта мини планеты:
- Projection – Stereographic Down
- Field of view – 250° по горизонтали и вертикали. Эти значения можно менять в зависимости от требуемого результата.
Круговая панорама в PTGui
В «Panorama Editor» (Tools — Panorama Editor) сразу виден результат. Здесь же можно трансформировать проекцию. Для этого просто зажимаем левую кнопку мыши на изображении и тянем в сторону. Так можно покрутить или вывернуть панораму для получения нужного эффекта. Более точную трансформацию можно сделать при помощи инструмента «Numecal Transform» (123).
Итоги
Таким образом в фотошопе можно легко сделать круговую панораму 360 из эквидистантной проекции. Но если вам нужны более гибкие настройки для осуществления задумки, лучше воспользоваться плагином Flexify 2 или программой PTGui.
Читайте также: