Новогодняя открытка в Blender
Всем привет! Поздравляю всех с праздниками!
В этой статье я расскажу подробнее о процессе создания этой праздничной открытки.
Большую часть работы я сделал в Blender. Описание всего процесса сборки сцены и обрисовки заняло бы слишком много времени, поэтому в статье мы разберём наиболее интересные и полезные, на мой взгляд, моменты и технические приёмы.
Итак, начнём. Перед тем, как приступить к сборке 3D-сцены, я занялся подготовкой ассетов.
Я не собирался тратить много времени на создание открытки, поэтому по максимуму использовал готовые 3D-модели и свои старые наработки. Для архитектуры я в основном использовал купленные мною 3D-модели kitbash 3d. По факту для всей работы я использовал 3D-модель одного и того же здания, скопированную много раз через инстанс и повернутую разными сторонами.
Далее мне были нужны традиционные рождественские украшения, подарки, ёлка, яркие праздничные витрины магазинов. В идеале мне нужны 3D-модели этих элементов, чтобы сразу расставить их в сцене с нужным освещением.
Поиск готовых 3D-моделей для такого специфического запроса мог бы затянуться, поэтому я решил не тратить на это время и сделать свои. О том, как именно это было сделано, — читайте далее.
Первое, с чего я начал, — это витрины. Для витрин я решил использовать максимально простой способ: поставить плоскую картинку с изображением витрины за трехмерную модель оконной решётки.
Соответственно, теперь нужно было найти соответствующую фотографию, которую можно было бы так поставить. Вместо поиска референсов я просто сгенерировал подходящие изображение при помощи нейросети Nano Banana Pro.
Бесплатных сайтов, где ею воспользоваться, сейчас довольно много: https://lmarena.ai/, https://geminigen.ai/ и т.д.
Получил вот такие витрины:
Получилось неплохо, но хотелось бы всё-таки сделать небольшую имитацию объёма. Поэтому далее я перешёл в Blender.
Нам нужно импортировать эти фотографии в Blender таким образом, чтобы сама картинка сразу подключилась к объекту Plane в виде текстуры. Для этого мы просто нажмём Add или горячие клавиши Shift + A и добавим Image -> Mesh plane.
И теперь если перейдём в Material preview — увидим наш плейн с уже нанесённой на него текстурой витрины.
Уже в таком виде мы можем это смело использовать. Просто выставляем изображение за окно, включаем лампочку — и готово. Можно ещё добавить эмиссию материалов, об этом чуть позже.
Мы же хотим добавить имитацию объёма. Для этого я выделяю этот Plane и перехожу в режим Edit mode.
Нам понадобится инструмент ножа: горячая клавиша «K».
Ножом я отделяю основную массу от той, которая должна находиться как бы в «углублении». На картинке это соответственно стена и какие-то дальние шкафы и картины.
Нажимаем «K» и начинаем делать клики мышкой от левого края изображения к правому, обводя таким образом нужный нам силуэт. Я не старался обвести его точно, потому что эти витрины практически не будут видны на моём изображении.
Получив такое разделение, я нажимаю горячую клавишу «3» и выделяю нижнюю часть изображения.
Далее в правом верхнем углу экрана находим раздел Options, нажимаем стрелочку вниз и ставим галочку Correct Face Attributes.
Теперь мы можем выдавливать. Нажимаем клавишу «E» для экструдирования и выдавливаем плоскость вперёд.
Изображение стало немного объёмнее. Можем повторить это несколько раз, отделив и нижние ряды подарков.
Закончив с объёмом я решил добавить нашим витринам немного свечения. Сделать это можно через настройку эмиссии материала. В качестве текстуры у нас используется исходная фотография. Чтобы наш плейн светился этой же текстурой, я подсоединил её же во вход Emission шейдера Principled BSDF.
Теперь в самом шейдере мы можем управлять силой свечения текстуры. Я поставил умеренное значение 0.2
Но оттенок свечения получился холодным. Для того, чтобы сделать свечение более теплым, я добавил нод Mix Color между выходом текстуры и входом Emission.
Настроенный материал выглядит вот таким образом:
Далее мне нужны были модели подарков и саней. Тут я пошёл по похожему пути.
Сначала я сгенерировал изображения в Nano Banana. Сами 3D-модели я решил сгенерировать при помощи 3D-нейросети Hunyan: https://3d.hunyuan.tencent.com
По сгенерированным в Nano Banana картинкам я получил вот такие 3D-модели:
Получилось не идеально, но под обрисовку сгодится. И на создание этих моделей мы практически не потратили время.
Также в Hunyan я сгенерировал идущих куда-то людей в куртках. Качество тоже получилось не очень высоким, но для расположения моделей вдалеке вполне сгодится.
Теперь из праздничных элементов остался самый главный — ёлка!
Этот элемент оказался самым сложным и одновременно в итоге самым простым в создании. Все 3D-варианты мне не подошли: готовой украшенной ёлки быстро на глаза не попалось, Hunyan сделал полное безобразие, а вручную украшать трёхмерную ёлку шарами и гирляндами мне тоже не очень хотелось.
В итоге саму елку я сгенерировал в Nano Banana, вырезал её на прозрачный фон, сохранил как PNG и импортировал в Blender через Add -> Image - > Mesh plane, как мы делали с витринами. Альфа-канал добавится автоматически, и мы получим нашу ель сразу на прозрачном фоне.
После этого я обставил её подарками, и получилось более-менее удачно для моего ракурса.
Далее, собрав сцену, я добавил в её центр все праздничные элементы.
Осталось дело за малым — добавить снег. Для этого у меня были приготовлены мои 3D-сканы снежных дорог.
Сканировать 3D-объекты сейчас стало довольно просто: достаточно взять с собой телефон и долго ходить вокруг одного и того же объекта, подозрительно выглядя со стороны. Я использовал приложение Scaniverse.
Видео про то, как им пользоваться, опубликовано на Youtube канале CG LAB.
Сами ассеты я не оптимизировал, просто добавлял на них модификатор decimate.
Собирая сцену, я имел в голове образ симметричной композиции с ёлкой по центру. Это простой в реализации вариант, но может выглядеть немного скучновато. Поэтому я стал экспериментировать с настройками камеры. Сначала я пробовал поставить просто широкоугольные объективы, но это не привело к желаемому мной результату.
Требуемого результата мне помогла добиться камера нестандартного типа. В настройках камеры я выбрал тип камеры Panoramic. Panorama type - Fisheye Equisolid.
Именно этот тип камеры и дал такой эффект рыбьего глаза на рендере.
Финальный рендер получился вот таким:
Я настроил в сцене volumetric и разместил несколько источников света для подсветки центральной праздничной композиции.
Далее уже стандартный процесс обрисовки в графическом редакторе: убирал недочёты от быстрой сборки 3D-сцены (например, чёрные пятна от неровно положенного снега), сглаживал 3D-края, подкрашивал однообразные повторяющиеся материалы текстурной кистью, добавлял красивые облачка, падающий снег, корректировал цвет и свет и вносил всякие мелкие правки.
Финальный штрих — добавляем праздничную надпись, и получается та самая открытка, которую я хотел вам всем подарить!
Ещё раз поздравляю всех с Новым годом и Рождеством! Пусть в Новом году зажигаются и сбываются ваши самые яркие идеи и мечты!
Андрей Хруцкий специально для школы CG LAB.