Как красиво рендерить в блендере
Рендер и обработка в Blender
Это третья статья из цикла по работе в Blender. Вот ссылки на все три, выбирай ту, которая тебе нужна:
Эта статья поможет новичкам научиться рендерить и обрабатывать свои модели для портфолио или проекта. Ты узнаешь, как пользоваться инструментами Blender и Photoshop, чтобы сделать сочную картинку. Внимательное изучение статьи займет около 10 минут. Если возникнут вопросы — пиши в чат-бот (кнопка справа внизу). Там на связи живой менеджер 🙂 Он поможет разобраться.
Если ты ни разу в жизни не пользовался Blender, для тебя у нас есть бесплатный курс Intro Blender. Ты научишься моделить простые формы, выучишь хоткейсы и поймешь как устроен технический процесс моделинга в Blender.
Чтобы сохранить volume иллициев и убрать кривое отображение, нужно рендерить в Cycles. Заходим во вкладку Render Properties. В разделе Sampling изменяем числовое значение в строке Render, чтобы поменять качество финального рендера. Но это влияет на производительность и скорость рендера, так что в своей работе мы выставляем значение для Render — 1200. При этом настройки Max Bounces в разделе Light Paths остаются почти без изменений. Единственный параметр, который мы немного меняем — это Volume (ставим «2» вместо «0»). Это нагрузит систему, но улучшит отображение тумана и свечения.
Вторая вкладка, которая нас интересует — Output Properties. Выставляем разрешение «2000”. Этого достаточно для портфолио на Artstation, алгоритмы сайта все равно «сожмут» итоговую картинку.
Наконец, включаем во вкладке View Layer Properties необходимые renderpass`ы в разделах Data, Light, Cryptomatte. Вместо Denoising внизу этой вкладки, активируем Denoising Data из раздела Data.
blender-handbook
Итак, у нас есть объект с материалом и наложенной текстурой – пора, наконец-то, отрендерить его! Рендерингом (или визуализацией) в компьютерной графике называют процесс перевода математической модели объектов в графическое представление. В Blender это делается путем проецирования вершин, составляющих объекты, на экранную плоскость и вычисления пикселей между ними путем растеризации полигонов.
Существует также другой подход – расчет траекторий лучей (или, как говорят специалисты, трассировка лучей). Для каждой точки растрового изображения проводится луч в некоем известном направлении (это может быть, например, вектор от позиции наблюдателя). Затем происходит перебор всех объектов-примитивов трехмерной сцены. Трассировщик проверяет луч на пересечение с примитивом и получает координаты точки пересечения. Если на сцене присутствуют источники света, проводятся дополнительные лучи от полученной точки к источникам света. На основании полученной информации (а также заранее определенных констант), вычисляется цвет пикселя в данной точке.
Blender использует трассировку лучей при расчете зеркального отражения и преломления. Кроме того, на основе трассировки лучей построен новый рендер-движок Cycles, который теперь также является частью Blender (впрочем, Cycles, будучи большой и достаточно сложной в освоении системой, выходит за рамки охвата этой книги).
Камеру можно перемещать и поворачивать, как и любой другой объект. Чтобы понаблюдать, как сцена видна через камеру, можно сменить вид: выберите в меню View → Camera. Теперь нажмите клавишу N и в появившейся левой панели инструментов найдите вкладку View. Поставьте галочку напротив Lock Camera to View. Рамка паспарту теперь станет красной, а камера будет привязана к точке наблюдения навигации. То есть, если вы повернете точку наблюдения средней кнопкой мыши, камера тоже повернется соответствующим образом – это позволяет быстро настроить камеру наилучшим для вас образом. Не забудьте только отключить этот режим привязки, когда закончите позиционировать камеру.
Добавим, что любое отрендеренное изображение можно не только сохранить, но и использовать внутри Blender для дальнейшей работы – в качестве текстуры для объекта или где-нибудь еще.
Как правильно сделать рендеринг объекта на фото в Blender
Если вы не хотите тратить время на моделирование окружающей среды через приложение Blender, можно в качестве основы для представления смоделированного объекта использовать любое фото. Этот урок научит вас легко и просто провести рендеринг объекта на фоне картинки. Примеры:
Для начала найдем подходящую картинку. Можно воспользоваться порталом Pixabay, где хранится огромная база изображений на любой вкус.
Выберите картинку и добавьте её в качестве фона.
Выберите расширение рендера так, чтобы оно соответствовало по ширине и высоте подобранной картинки.
Подберите оптимальный угол расположения камеры, а также фокусное расстояние по картинке. Данные по последнему пункту можно отыскать в свойствах графического объекта.
Отдайте предпочтение светильникам типа Area, чтобы создать грамотную имитацию освещения для фото.
Включите в сцену плоскость, используемую в роли основы. Именно на неё попадет тень от сформированного объекта.
Сформируйте материал для плоскости и обеспечьте её подходящим цветом.
Поместите плоскость и светильники на следующий слой при зафиксированной кнопке Shift. Она позаботится о том, чтобы объекты отобразились сразу на двух слоях.
Сформируйте дополнительный слой рендера, назовите его ground и выберите параметры, как по графической инструкции ниже.
Остановите выбор на модели и примените к ней значение Pass Index=1.
Потом перейдите к плоскости и задайте Pass Index=2:
Перейдите к первому слою, а потом выберите функцию Object Index и включите её.
Проведите рендеринг картинки, а потом обратитесь к редактору нодов.
На базе редактора нодов необходимо выполнить загрузку трех подготовленных картинок. Это снимок-основа, начальный слой рендера, а также рендер ground.
Свяжите слои рендера с использованием нода Mix, а потом присвойте ему вид Divide.
Дальше готовую работу необходимо связать с фото-основой на основе нода Mix и присвоить ей вид Multiply.
Дополните работу нодом ID Mask, установите Index=2, а потом включите его, следуя графической инструкции ниже.
Вставьте на рабочую сцену дополнительный нод ID Mask, переведите Index=1, а потом включите его, как на следующей картинке:
Затем смешайте все отдельные элементы на основе нода Mix и получите похожий результат.
Этот урок непременно поможет вам сформировать качественный рендер.
Уважаемые пользователи, хотим Вас проинформировать о том, что некоторые антивирусные программы и браузеры ложно срабатывают на дистрибутив программы MediaGet, считая его зараженным. Данный софт не содержит никаких вредоносных программ и вирусов и многие из антивирусов просто Вас предупреждают, что это загрузчик (Downloader). Если хотите избежать подобных проблем, просто добавьте MediaGet в список доверенных программ Вашей антивирусной программы или браузера.
Выбрав нужную версию программы и кликнув ссылку, Вам на компьютер скачивается дистрибутив приложения MediaGet, который будет находиться в папке «Загрузки» для Вашего браузера. Находим этот файл с именем программы и запускаем его. И видим первый этап установки. Нажимаем унопку «Далее»
Далее Вам предлагается прочитать и одобрить лицензионное соглашение. Нажимаем кнопку «Принимаю»
В следующем окне Вам предлагается бесплатное полезное дополнительное программоное обеспечение, будь то антивирус или бразуер. Нажимаем кнопку «Принимаю». Также Вы можете отказаться от установки дополнительного ПО, нажав кнопку «Отклоняю»
Далее происходит процесс установки программы. Вам нужно выбрать папку, в которую будут скачиваться нужные Вам файлы.
Происходит завершение установки. Программа автоматически открывается и скачивает нужные Вам исходные файлы.
Обратите внимание, что предоставляемое программное обеспечение выкладывается исключительно для личного использования и ознакомления. Все файлы, доступные для скачивания, не содержат вирусов и вредоносных программ.
Сетевой рендер в блендере
картинка для тех, кто в танке
Пару лет назад меня попросили написать ликбез по сетевому рендеру в блендере.
Я слегка увлёкся и получилось то, что представляю вашему вниманию.
Обзор так и не опубликовали до конца на сайте blender3d.org.ua, хотя pdf там можно найти. Прошу сохранить, может быть кому-то будет интересно.
Сетевой рендер в блендере
Это руководство было написано с целью продемонстрировать возможности блендера в этом
сравнительно новом для него амплуа.
В течение вот уже многих лет такие программы как 3Dstudio используются по сети для совместной работы или рендера, в Блендере же эта возможность появилась сравнительно недавно. С выходом в свет короткометражного фильма Sintel авторы продемонстрировали рендер студию, на которой они работали при создании фильма, а также посетовали на то, что для сетевого рендера им пришлось использовать стороннюю разработку вместо встроенного в Блендер 2.5 сетевого рендера, так как к тому времени он был не в состоянии обеспечить студию стабильным и быстрым результатом.
Посмотрим, как дело обстоит сейчас, и заодно сравним внутренний сетевой рендер Блендера
с плaгином LuxBlend, который недавно получил поддержку OpenCL.
С появлением Блендера 2.5 необходимость иметь хоть какой-то сетевой рендер внутри программы послужила причиной моментального включения в неё netrender кода, написанного, как и большинство плaгинов, на Питоне Мартэном Пуарье (Martin Poirier).
Идея оказалась неплохая: использовать внутренний рендер Блендера, что должно было гарантировать идентичность картинки, обработанной локально или удаленно; централизацию управления на мастер-сервере; достаточно простое управление серверами и быструю, не сложную установку.
Однако первые тесты показали, что многое еще предстоит, и в настоящий момент плагин хотя и поставляется внутри дистрибутива, активировать его надо в ручную.
Нетрендер в блендере разделен на три составляющие:
Клиент — Посылающий работу на мастер-сервер
Мастер — Получающий работу от клиентов
Слейв — Зависящий от мастера сервер, обрабатывающий кадры рендера
Это может быть любая машина с установленным Блендером; когда сцена готова, настраиваются ip и порт мастера, принимающего запросы, устанавливается количество необходимых кадров на рендер, затем задача отправляется на мастер, который распределит её между остальными серверами.
В интерфейсе клиента присутствуют следующие варианты:
Send current frame job — Отсылает только выделенный кадр, при этом имейте в виду, что, как и в остальных случаях, необходимо послать всю информацию (.blend и текстуры), так что времени уйдет на это столько же, как и при пересылке всей работы. Результата не ждёт, моментально освобождая клиент.
После того, как мастер примет работу, начнется передача всего файла и текстур свободному слейву, из этого следует, что лучше располагать их в одной локальной сети, иначе можем получить большой расход трафика и ещё одну точку потенциального таймаута.
То, чего мы пытаемся достичь, — это, нажав на кнопку, продолжить работу, не задумываясь над тем, какой именно сервер будет заниматься рендером, а также о проблемах, которые при этом могут возникнуть.
На этой ноте позвольте сделать небольшое отступление: дело в том, что, во-первых, сетевой рендер чаще всего используется студиями в локальной сети, при канале не меньше 1гб/с, что сильно меняет дело. Во-вторых, во многих устоявшихся программах для редактирования трёхмерных изображений есть возможность использования нескольких машин при обработке одного кадра, происходит банальное деление картинки на части, равные количеству серверов, либо используются другие методы, которые позволяют уменьшить время, затраченное на рендер пропорционально количеству задействованных серверов.
Так как в блендере этой функции пока нет, очевидно, выгодных результатов можно добиться лишь при анимировании сцен с достаточным количеством кадров, чтобы компенсировать задержки при загрузке и приёме файлов. Кроме того, не стоит также забывать про возможность полностью разгрузить клиент после отдачи материала на рендер, что может оказаться очень кстати, если необходимо продолжить работу над другим проектом.
Для минимальной установки необходим один компьютер-клиент и один мастер/слейв, так как обе функции может реализовывать один компьютер с запущенными мастер и слейв серверами одновременно. Скорость рендера будет напрямую зависеть от скорости слейв машины.
Люксрендер представляет интерес в рамках этого обзора только для сравнения его возможностей с возможностями внутреннего сетевого рендера в блендере, о его преимуществах и недостатках есть где прочитать.
Начиная с версии 0.8 в люксе появилась возможность задействовать мощность современных видеокарт для просчитывания пересечений света посредством OpenCL.
Сетевой рендер в люксе продвигается под слоганом «CPU против GPU? CPU + GPU + сетевой рендер — лучше», в будущем разработчики обещают расширить применение видео карт в рендере, пока же не стоит надеяться на чудо, видео карта вряд ли загрузится больше 30%, хотя определенный прирост производительности наблюдать можно уже сейчас.
В отличие от внутреннего сетевого рендера — Люкс может объединять несколько серверов для работы над одним кадром, мастер-сервер не предусмотрен, его функции частично исполняет клиент. Вся система сводится к одному клиенту и нескольким слейв-серверам, как только после использования люксбленд плагина работа попадает на слейв, тот просчитывает несколько сэмплов. Результат будет передан обратно на клиент через некоторый промежуток времени, там он пересечётся с результатом локального рендера, и на выходе мы получим картинку с большим количеством семплов, чем если бы слейв не участвовал в процессе.
Инструменты: Один клиент и один сервер, при этом они работают в паре и дают теоретически линейный прирост производительности.
В расчёте на то, что будет использоваться сетевой рендер люкса в отдельных случаях, когда необходимо получить картинку с трассировкой лучей, а в остальных внутренний сетевой рендер, можем поставить и то и другое.
Вкратце лог содержит записи похожие на:
[192.168.2.3:10001] 00:00:36 — 6T: 3.67 S/p 78.79 kS/s 99% Eff 77.86 kC/s — Using CPU
Сервер: порт, время (в течение которого сервер делает работу), количество ядер/тридов, количество сэмплов на пиксель, количество сэмплов в секунду (в тысячах), процент эффективности кадра (усредненное значение между количеством сэмплов в секунду и эффективностью), последнее означает используется ли на сервере OpenCL для рендера.
[192.168.2.4:10001] 00:06:38 — 4T: 25.92 S/p 51.20 kS/s 99% Eff 50.51 kC/s — Using CPU
Переводим:
После 6:38 минут рендера, сервер 192.168.2.4 на порту 10001 успел получить 22.92 сэмпла на пиксель при скорости в 51.20 тысяч сэмплов в секунду и 99% эффективности его работа оценивается 50.51 тысячам взносов в секунду при использовании только центрального процессора.
Установка внутреннего сетевого рендера
Blender, 1001 мелочь
Приёмы работы с Blender версии 2.79, продолжение. На этот раз затронуты материалы и получение финального рендера изображения. Для понимания более базовых принципов и инструментов рекомендуется обратится к предыдущей статье.
Материалы
Для того, чтобы назначать объекту материал и редактировать его свойства, понадобится найти на панели Properies (находится слева, ниже окошка Outliner’а, в котором отображается список объектов на сцене) вкладку Material (обозначена розовым шариком).
Когда объект выделен в сцене (или выбран в списке Outliner’a), то на вкладке Material будут видны параметры материала текущего объекта. Если объект не может иметь материалов (камера, лампа и так далее), то и подобной вкладки у него не появляется.
По умолчанию у добавляемых в сцену примитивов материалы отсутствуют (если выбран рендер Cycles) и в окне вкладки материалов пусто. Чтобы добавить простейший материал нужно нажать в том окне кнопку + New и на объекте появится материал с шейдером Diffuse.Сам объект визуально почти не изменится, оставаясь всё таким же белым, зато теперь можно менять его цвет и насыщенность, щёлкнув по параметру Color.

Из прочих шейдеров можно отметить Anisotropic BSDF (такой же зеркально-бликующий как и Glossy, но с возможностью сильнее искажать отражение), Transparent BSDF (регулирующий степень прозрачности объекта) Subsurface Scattering (придающий поверхности более восковой или органический вид) и Velvet (создающий вычурный эффект бархатистой ткани).

Принцип здесь такой, что цепочку узлов можно усложнять, но в итоге она приходит в финальный узел Material Output (чаще всего на основной его канал Surface), чтобы наконец отобразиться на объекте. Если же к Material Output ничего не присоединено, то объект просто будет отрисован совершенно чёрным.
Открыть Node Editor в нижнем окне

По сути, фактор смешивания в Mix Shader (параметр Fac) представляет собой элементарную маску, которая в крайних положениях ползунка может быть либо полностью чёрной (виден только первый компонент смешивания) либо полностью белой (виден только второй компонент смешивания), а в промежуточных положениях даёт различные градации серого (оба компонента вносят свою долю в результат).
Если хочется более интересного смешения, можно подключать к MixFactor, например, текстуры. Для простоты, в узлах NodeEditor уже содержится несколько предустановленных текстур, например, процедурные Musgrave Texture, Voronoi Texture и Wave Texture для достаточно наглядных хаотических либо упорядоченных узоров. Если подключить такую текстуру к параметру Color узла Diffuse, то можно увидеть, что объект заполнен тёмными и светлыми областями. Если же эта текстура подключена к параметру Fac узла Mix Shader, то в тёмных областях будет преобладать один из компонентов смешивания, а в белых другой.
Кстати, параметр каждого узла справа может быть подключен в разное количество мест одновременно. Например, текстура через параметр Color может быть подключена сразу и к цветам нескольких узлов, или, например, в то же время и к параметру Fac.
Френель в качестве фактора смешивания
Если материал должен просто накладывать на объект произвольное изображение, тогда нужно добавить узел ImageTexture, в котором есть диалог загрузки пользовательского изображения. Далее присоединить его к параметру Color, того же стандартного узла Diffuse (или Principled). Пока изображение не выбрано материал будет фиолетового цвета. Когда мы укажем текстуру, то. скорее всего изображение всё ещё не будет наложено на объект. Происходит это по причине того, что у материала в данном случае нет информации о том, как следует разместить текстуру по поверхности объекта.
Добавление текстуры к шейдеру
Для того, чтобы изображение наложилось хотя бы как-нибудь, при отсутствии нормальной развёртки, можно воспользоваться парой простых методов: создать автоматическую текстурную развёртку для объекта или добавить в материал ещё один узел, который будет задавать принципы проецирования текстуры на объект.
В первом способе нужно просто зайти на вкладку Data текущего выделенного объекта и нажать на плюсик слева в окошке графы UVMaps. После чего сгенерируется автоматическая развёртка и в это окошко добавится строчка UVMap (предустановленное имя для каждой новой авторазвёртки ). Теперь на объекте появится изображение, хотя и будет наложено, скорее всего, с различными растяжками и прочими дефектами.
Упрощённое добавление авторазвёртки
Узел Texture Coordinate
Что в первом, что во втором случае пригодится узел Mapping для изменения размера. Этот и прочие преобразующие/конвертирующие узлы следует подключать в правильные места, например, Mapping подключенный между Texture Coordinate и Image Texture будет вмешиваться в передаваемый вектор (в том числе регулировать размер текстуры), а если его поместить уже после Image Texture к линии Color, то он будет регулировать уже цвет (а не размер, поворот и смещение текстуры).
Для придания материалу эффекта микрорельефа любые текстуры можно подключать к параметру Displacement финального узла Material Output.
Рендер изображения
Нужно понимать, что камера смотрит на сцену со своей точки зрения и обычно показывает не то, что мы видим, работая в редакторе. Чтобы «прилететь» своим взором в текущий ракурс камеры нужно нажать Numpad 0 на цифровой клавиатуре. Повторное нажатие Numpad 0 вернёт нас обратно в тот вид из которого мы «улетели». Если же двинуть мышью с зажатой средней кнопкой мыши, то мы выйдем из ракурса камеры, но в более близкий к нему угол зрения.


Для более точной подстройки ракурса можно дополнительно подвигать саму камеру, выделив её, как объект (здесь пригодится переключить систему координат объекта с Global на Local). Если перейти в вид из камеры, когда она выделена, то можно просто потаскать её в стороны, нажав G (либо набирая GX, GY или GZ для перемещения точно вдоль осей) или покрутить, нажав R (соответственно, RX, RY, RZ).
Возможно, когда выбран вид из камеры, то по какой-то причине задний фон обрезается и часть дальних объектов не отображается. Это происходит потому, что у камеры есть параметр дальности отрисовки, отсекающий лишнее. Чтобы камера захватывала большее пространство нужно выделить её, тогда на панели Properties один из последних значков изменится на камеру (вкладка Data). Переходим туда и, находясь в графе Lens, выставляем большее значение, чем стандартное 100 в разделе Clipping: End.
Когда мы смотрим на сцену из камеры и на сцене включен режим рендера, то всё что находится за пределами камеры тоже пытается отрендерится. Для некоторой оптимизации можно поставить галочку на параметре Border (панель Properties, вкладка Render, графа Dimensions, внизу), тогда при виде из камеры то, что выходит за границу её видимости рендерится не будет.
Кроме камеры нам, вероятно, понадобится источник света, так как одного фонового света часто недостаточно. Например, точечный источник света (Point) или солнечный (Sun).
Оптимальный диапазон параметров силы источников света тоже несколько отличается. Свежесозданный Point имеет предустановленную силу света 100 и там обычно выставляются значения в сотнях и тысячах. У Sun предустановленный параметр силы света равен 1 и, как правило, крутится где-то в диапазоне от 0.5 до 3.

Общий прогресс создания рендера отображается сверху, и здесь же его можно отменить, при желании. Когда картинка готова, то для сохранения выбираем пункт Image на панели и далее Save As Image. Если этот пункт горит серым, значит картинка ещё не отрендерилась до конца и нужно дождаться окончания процесса (либо принудительно остановить его, нажав на крестик правее полосы прогресса).
Когда открывается диалог сохранения изображения, то внизу слева можно выбрать формат (по умолчанию PNG), цветность, глубину цвета, качество.
Чтобы вернуться из этого окошка обратно в сцену нужно найти на его нижней панели самую левую иконку, нажать на неё и выбрать пункт 3D View.
Возврат в сцену из окна рендера

В следующей графе, Dimensions, показаны настройки текущего разрешения, по умолчанию 1920 на 1080 с уровнем чёткости 50%. Чем меньше каждый из этих параметров, тем быстрее рендерится картинка, но и результат будет более размытым и менее детализированным. Для итогового рендера, когда мы уже вряд ли что-то будем менять в сцене и в настройках, уровень чёткости желательно выставить в 100%.
В графе Sampling находится ещё один важный параметр качества в разделе Samples: Render. По умолчанию для финального рендера установлено 128 проходов на каждый пиксель, а для рендера в редакторе 32. Чем больше проходов тем лучше, но процесс рендера замедляется довольно сильно, поэтому стоит подбирать значения по ситуации (часто 256 или 512 проходов уже смотрятся неплохо). К тому же повышение числа проходов в некоторых сценах может не так существенно влиять на качество.
Нивелирование светового шума
Чтобы снизить количество шума на картинке можно воспользоваться опцией Denoising (включается на вкладке Render Layers, следующей за Render), которая немного сгладит (замылит) картинку. При этом на стеклянных/зеркальных поверхностях могут появиться нежелательные разводы и артефакты. Чтобы сделать фильтр более аккуратным можно дополнительно покрутить настройки раздела Denoising.
Для перевода рендера в формат более реалистичной цветопередачи желательно заглянуть на вкладку Scene и в графе Color Management сменить Default на Filmic в разделе Render: View. А также sRGB поменять на Linear в разделе Sequencer: Color Space.
Прочее полезное
У источников света есть свой отдельный параметр размера лампы и этот показатель может влиять на степень светового шума при рендере. Размер самих объектов в сцене тоже может оказывать своё влияние, если вся сцена содержит по сути гигантские или микроскопические объекты, которые только относительно друг друга кажутся нормальными.




Пользовательская карта HDRI
Если на объекте имеется некий материал, то при создании копии объекта (Shift D) на ней будет создан новый материал с такими же свойствами и его можно будет редактировать независимо. Если же создаётся клон объекта (Alt D), то у клона будет тот же самый материал.
Материалы без носителя
На итоговом кадре не только фон, но и прочие объекты могут создавать область прозрачности. Для этого нужно назначить им материал с шейдером Holdout. При этом у самого фона прозрачность должна быть тоже включена (пункт Transparent).Кстати, объекты с Holdout продолжают отбрасывать тени, хотя сами становятся невидимыми на рендере. Чтобы это убрать нужно выделить объект, зайти в панель Properties, вкладка Object, в самом низу открыть графу Cycles Settings этого объекта и убрать галочку с Shadow.
В Blender можно рендерить и двухмерные изображения, не обязательно трёхмерную сцену. Например, логотипы, значки, прочие плоские картинки. У плоского изображения обычно нет пространственных искажений, часто отсутствуют блики и тени, потому что не требуется делать акцент на его объёмности. Поэтому для плоских рендеров лучше перевести камеру в режим ортографической проекции (Ortographic) вместо перспективной и отключить прочие источники света кроме фона. Плюс можно добавить обводку по краям объектов, отметив галочку на параметре Freestyle (графа на вкладке Render). Тогда после рендера всего кадра Blender будет делать дополнительный проход, чтобы добавить поверх него обводку.
Коррекция загружаемых изображений
Трипланарное наложение: локальные координаты
Трипланарное наложение: глобальные кооридинаты



































