Обзор Blender 3.5
Приветствую всех блендерщиков, неблендерщиков и остальных, кто решил сюда заглянуть! Сегодня у нас на столе Blender 3.5, которая получилась немного спорной...
Прежде всего сроки, когда для 3.5 необходимо было разрабатывать сложные фичи - пришлись прямо на новый год. Половина рабочего состава взяла отпуска, и в результате те же ноды симуляции переносятся на 3.6. Однако версия принесла не только разочарования, но и интересные фичи вроде долгожданного реалтайм композитора и VDM кистей, обновления новой системы волос
За время разработки произошли некоторые события:
- Фонд заменил проектный трекер Phabricator на Gitea. Статья по багрепортам соответственно была обновлена
- Также был обновлен график выпуска новых версий. Он направлен на меньшее количество версий за год, но дает разработчикам больше времени на написание кода (так как например учитывает праздники, из-за которых симуляционные ноды не успели закончить)
Минимальные системные требования к Mac OS и Linux повысились. К линуксу из-за совместимости с VFX Platform 2023, к Mac OS из-за Metal бэкэнда. Теперь они выглядят примерно так:
- Mac OS 10.15
- Линукс дистрибутивы с glibc 2.28, в их число входит Ubuntu 18.10, Debian 10 и т.д.
Стоит заметить, что в блендере 4.0 будет удалена часть фич, которые заменяет другой функционал, которые редко используются, плохо работают и т.п. В этот список уже входит старая система частиц, панель Instancing, фейс карты. Отслеживать его можно тут
А теперь переходим к новым фичам
Анимация и Риггинг
Инструменты анимации получили небольшое, но неплохое обновление
Прежде всего был закрыт довольно старый долг - удалена старая библиотека поз из до 3.х версий. В прошлых версиях она была только отключена в UI, но внутренний код еще сохранился. С этого момента все старые позы из нее будут автоматически преобразовываться в ассеты
Было улучшено общее юзабилити новой библиотеки поз. Переработали контекстное меню и главное меню в заголовке ассет браузера
Улучшили оператор смешивания позы:
- Теперь в заголовке редактора будет показываться слайдер, показывающий степень смешивания
- Прикрутили вычитающее смешивание (уход в отрицательные значения у слайдера). Как-бы вычитает позиции у костей, а не добавляет, как обычное смешивание
- Добавили экстраполяцию. При этом режиме можно выходить за диапазон в 100%, оператор попытается сам достроить позиции костей
- И добавили хоткеи во время работы оператора: E включает экстраполяцию, зажатие Ctrl заставит оператор применять к арматуре флипнутую позу
Небольшие улучшения в редакторе графов и допшите (является часть этого таска)
- У допшита появилась кнопка для закрепления групп каналов
- В редакторе кривых добавили пункты в контекстное меню для быстрого доступа к оператору Add f-Curve modifier, а также выключили по дефолту галку Only Active, все таки услышали меня)
Также к граф едитору добавился еще один оператор-слайдер - Ease
Починили баг, когда при использовании опции Multi Modifier у модификатора арматуры инвертировались веса. Из-за этого поломалась совместимость. Веса со старых файлов надо будет обновлять на новый лад
Ядро
Наконец-то, столько лет спустя у нас появился булевый тип для пользовательских свойств! Разработчики упорно ежились: "мол интеджер с определенными настройками хорошо его заменяет, только выглядит как слайдер, а не галочка, но потерпите" и все таки сломались
Небольшое изменение атрибутов цвета: в API теперь они хранятся как строки, чтобы быть согласованными с остальном системой
Продолжилось переписывание структуры меша. Теперь UV карты, позиции вершин и шарп на ребрах - обычные атрибуты. Можно без проблем получить к ним доступ через геоноды + от этого идет некоторое ускорение
Добавили отслеживание использования GPU и CPU сабдивов. Это пофиксило сразу серию багов (#102012, #102127, #101727. Репорты хоть и не объявлены как Resolved, но у меня ни один случай больше не фризит. можете помочь в расследовании, если есть желание), которая лично мне сильно мешала при работе с персонажкой
EEVEE & Вьюпорт
Metal бэкэнд для макбуков и другой техники от Apple наконец-то достиг работоспособности. По причине не очень хорошей реализации OpenGL на Mac OS разработчикам пришлось реализовать рендеринг на специальном API для этой платформы - Metal
Metal бэкэнд быстрее OpenGL, а также позволяет использовать реалтайм композитинг во вьюпорте
Бэкэнд может и должен быть нестабильным. Если нашли баг - то обязательно сообщите о нем разработчикам, как это сделать - написано в этой статье
Для скриптеров, которые имеют дело с отрисовкой - обязательно посетите секцию Python API
Для EEVEE Next добавили систему теней. Попробовать можно в альфа версии блендера (скачать отсюдова), включив галочку Developer Extras в Preferences->Interface, а потом в появившейся Preferences->Experimental включить галочку EEVEE Next, после чего перезагрузить блендер. Рендер появится в списке рендер движков
Также подъехал рабочий прототип WorkBench Next, который будет быстрее, стабильнее и в будущем функциональнее, когда закончится переписывание. Попробовать можно аналогичным способом, что и EEVEE Next, только последняя галочка другая
Grease Pencil
Очень интересная новость: SPA Studios, которые ранее создали Клауса для Нетфликса, использовали в своем новом фильме Ember блендер. Нетфликс отменил фильм, в результате чего инхаус форк был слит на гитхаб, а один из ключевых его разработчиков перешел на сторону фонда разработки. Скачать саму сборку можно отсюда. Юзерам Linux и Mac OS придется самим компилировать сборку. К ней существует документация, где описаны все нововведения, и как ими пользоваться
А теперь от сторонних форков к ванниле. Их в этот раз не так много, в основном это мелкие вправки удобства
В модификаторе Offset появилось смещение по слою, штриху и материалу
У модификатора Build появился режим Natural Drawing Speed, который косит под то, если бы штрихи рисовались стилусом
А также:
- В режиме скульпта штрихов появилось меню автомаскирования, аналогично меню из обычного скульпт режима + пай меню для него
- Улучшен оператор Interpolate Sequence
- И вправки UI
Моделирование
Конвертирование меша в более детализированную структуру было распараллелено, в результате чего может ускорится переход в режим редактирования например
Добавлен оператор Flip Quad Tesselation, который позволяет указать квадам, как им надо триангулироваться
Крис Блэкборн, занимающийся развитием UV, объявил, что ему удалось пофиксить все зарепорченные небольшие проблемы, которые тем не менее довольно сильно портили рабочий процесс (примером могут служить те же неработающие как надо пины). В связи с этим теперь он переходит к более сложным фичам вроде гридифая или новых движков паковки (что уже принесло свои плоды, потестите блендер 3.6)
Из-за этого поток новых улучшений для UV уменьшится, это уже ощутимо на новой версии, нового довольно мало. И обещанный гридифай доделать к 3.5 он не успел, как изначально хотел
Добавили копипастинг UV. Он работает по принципу морфинга кусков UV. Заработает, только если кусок UV, на который применяют вставку - имеет ту же топологию, что и кусок, с которого копируют
По моей просьбе был добавлен режим object для оператора Select Similar, который выделяет острова, принадлежащие определенному объекту, а также потом сам разработчик добавил еще режим Winding
Ноды и физика
Да, ноды симуляции были перенесены на 3.6, но обновление все равно приносит кучу фич для геонод и волос
Поработали с системой кэширования, в результате например кучу инстансов могут рендерится быстрее, и ускоряется воспроизведение анимации. В этой сцене с примерно 28 тысяч инстансов блендер 3.4 выдает от 16 до 19 фпс, в то время как 3.5 стабильно держит 24 фпс при плейбеке
А теперь одна из самых больших частей обновления - волосы
Во первых, Hair Curves получили режим редактирования, который позволяет на низком уровне работать с кривыми. Режим не совсем закончен, так например нету пропорционального редактирования, но в целом и на этом этапе он в чем-то может пригодится
Второе - это встроенная в блендер библиотека ассетов, заполненная нодогруппами для волос
На данный момент она включает 26 нодогрупп, среди которых косички, завитушки, служебные ноды вроде шума и информации о волосах. Кстати, все это - чистые геоноды, можно смело использовать ассеты как примеры при изучении геонод
Тем не менее, я бы пока с опаской смотрел на использование этого в пайплайнах и других долгосрочных процессах, так как это начальный релиз, а нодогруппы в отличии от кода очень легко менять, особо не боясь за совместимость, поэтому изменения между релизами могут быть радикальными: вплоть до изменения самой логики происходящего, переписывания некоторых нодогрупп в нативные ноды для увеличения производительности и т.д. Стоит подождать хотя-бы два релиза, прежде чем все устаканится
Для того, чтобы показать вам, как пользоваться нодогруппами, оператор Quick Fur был переделан на использование новых волос. Он также был добавлен в меню Add
У режима скульпта появилось несколько новвоведений. Например коллизии для некоторых кистей. Стоит с осторожностью использовать на куче волос, может подтормаживать, так как сделан с упором на воркфлоу с парой направляющих волос, которые потом процедурно интерполируются
У кисти Comb (основной расчесывающей кисти) появился параметр Curve Falloff
В оверлеях появился параметр Cage Opacity, который изменяет прозрачность оригинальных волос, отображаемых поверх процедурно измененных
На этом изменения в новых волосах закончились, теперь переходим к обычным геонодам
Очень важная фича - возможность вручную устанавливать значение атрибута. Ранее вручную можно было устанавливать значения только атрибутов цвета, и то только кистью, что не всегда удобно
Нодовый инструментарий притерпел не очень большие изменения
- Улучшили работу с изображениями, добавив ноды Image и Image Info. Первая содержит в себе указанную картинку, вторая - аналог Object Info для изображений
- Нода Blur Attirbute просто размазывает атрибуты, что логично. При комбинации с тем, что изменяет позиции меша - можно достичь эффекта сглаживания меша, который давно просили
- Нода Interpolate Curves создает кривые между набором кривых-"направляющих". Да-да, одноименный ассет использует именно ее
- Нода Edges to Face Groups продолжает концепцию так называемых фейс групп - граней, которые разделяются на группы на основе индексов. Эта нода выдает индекс группы на основе окружения их выбранными ребрами. В моем примере разделение идет на основе угла между гранями - если угол 90, то ребро будет "разделителем"
И мелкие изменения: где-то добавили сокет, где-то удалили, где-то изменили поведение и т.д. Например, ноды с примитивами теперь имеет выход для UV карты примитива
Как обычно, улучшили UX. Добавили возможность драг ан дропа ассетов-нодогрупп прямо на объекты во вьюпорте из ассет браузера, это можно увидеть в видео про ассеты для волос
Переработали контекстное меню для всех видов нод и меню Add в геонодах. Оба стали более очесанными
Вместе с добавлением булева типа пользовательских свойств удалось внедрить галочки для нодогрупп в UI модификатора. Наконец-то чекбокс, а не слайдер
Добавили парочку небольших новвоведений:
- При копипасте нодов они будут появляться у курсора мыши, а не в своей оригинальной позиции
- При перетаскивании ранее куда-то воткнутой связи в уже занятый сокет с зажатым Alt связи поменяются местами
Надеюсь вы не забыли, что раздел называется "ноды и физика", а не только "ноды"? Так вот, обновления в физике довольно редки, но все же когда-то случаются. На этот раз Александр Гаврилов провел оптимизацию сельф коллизий у ткани, они могут вести себя немного побыстрее
Пайплайн, ассеты и I/O
Система ассетов получила небольшое обновление в этом релизе
Переработали UI для библиотек ассетов в настройках. Так сказать задел на будущее, когда у библиотек ассетов будет гораздо больше настроек
А мотивом для такого изменения послужила как раз одна из таких настроек - метод импорта. Этот параметр позволяет вместо постоянного переключения способа импорта установить один определенный для всех ассетов из библиотеки. Например, ваша задумка в том, что ассеты из библиотеки надо только аппендить, в этом случае можно просто установить Import Method на Append в натройках библиотеки, и использовать режим Follow Preferences в ассет браузере
Добавились два встроенные в блендер библиотеки - All и Essentials. Обе захардкодены, поэтому удалить их невозможно (да и нужно ли :^))
- All просто отображает ассеты из всех других библиотек, необходима для полки с ассетами
- А библиотека Essentials содержит ассеты, которые будут поставляться с блендером. На данный момент там только ноды для волос. В будущем туда точно добавят базовые меши (например болванки для людей), возможно материалы, нодогруппы для других областей вроде композитора, шейдеров и т.д.
Для тех, кто боится, что блендер станет весить как 3дс макс из-за того, что туда засунут кучу китбашей и паков для архивиза - не паникуйте. С блендером будет поставляться только самое базовое, для гораздо более продвинутых пакетов с ассетами скорее всего будет запущен отдельный сайт
Если кому интересно, то файлы со встроенными ассетами находятся по пути <корневая_папка_блендера>/<номер_версии_блендера>/datafiles/assets
Как обычно, обновили Obj импорт/экспорт. Перенесли опции Split by Objects и Split by Groups из старого python импортера, увеличили его скорость
Python API & Редактор текста
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
На Mac OS с включенным Metal бекендом (включен по умолчанию по идее) не работает bgl (так как он напрямую использует OpenGL). И не будет работать. Так что сохраняя использование bgl в своем коде, вы уже создаете неудобства пользователям на макбуках, потому что им придется переключаться на OpenGL бекенд, который работает хуже
В скором времени bgl будет полностью удален, а все, что его использует - перестанет работать. Переносите код на gpu модуль
Помимо такой не очень хорошей новости в Python API есть и приятности. Например, для технических художников было добавлено свойство ModifierData.execution_time, которое содержит время исполнения модификатора. При помощи этого можно прикрутить очень нужные в больших проектах инструменты для отладки. Вот пример, что можно с этим сделать. Самый элементарнейший и шероховатый пример
Вместе с блендером теперь поставляются Python биндинги для библиотек, ставшими индустриальным стандартом: USD, OpenVDB, OpenImageIO, OpenColorIO, MaterialX. Просто импортируете соответствующий модуль, и пользуйтесь. Может быть использовано например в аддонах
Как обычно, в существующем API немало мелких изменений, тем не менее из-за которых аддон может отвалится, так что посмотрите официальную страницу
Рендер & Cycles
Cycles - это вторая весомая часть обновления. Появились очень интересные и полезные функции
Проект от GSoC 2022 под названием Many light Sampling был завершен, и в результате у Cycles появилась функция под названием Light Tree, которая сильно уменьшает шум, особенно когда в сцене множество источников света
Без Light Tree
С Light Tree
И тадам: наконец-то появилась поддержка OSL шейдеров на GPU! А точнее - на Optix. Ранее фича была доступна только на CPU. Как и на CPU, для использования OSL необходимо отметить специальную галочку в настройках рендера. Пример простого тюн шейдера
На данный момент реализация имеет пару ограничений (не просто же так есть галочка :^)):
- Имеются некоторые проблемы с текстурами. Например у меня неправильно читались UDIM текстуры
- Реализованы не все функции шума. Если вы наткнетесь на такую, то поймаете вот это
- Не реализована трассировка, то есть функция trace() работать не будет, а вслед за ней использующие ее ноды Bevel и Ambient Occlusion
Если заинтересовались написанием OSL шейдеров, то можно использовать уроки для другого софта (а может я скоро что-то сделаю, кто знает, кто знает...), разница может быть в некоторых отсутствующих функциях, и в клозурах (closures) - они определяются самим рендером, и какого-то универсального списка нету (в документации к Cycles есть список). В качестве примеров кода можно брать исходники самого Cycles, так как ноды реализованы на OSL
Остальное по малому - пофиксили Anisotropic BSDF, улучшили адаптивный семплинг
Скульпт, рисование, текстуры
Появилась еще одна давно просимая фича - поддержка VDM карт у кистей. VDM - это векторный дисплейсмент, который использует не чб текстуру, а что-то наподобие карты нормалей - в ней сохранены векторы, по которым надо смещать точки
Для того, чтоб фича работала, надо:
- Переставить Mapping на Area Plane в настройках текстуры
- Убрать галку Colors->Clamp в настройках текстуры
- Falloff должен быть Constant или очень близкий к нему
Запекать VDM карты можно тоже в блендере, но для этого нужен особый сетап шейдера. У автора патча он выглядит вот так:
При этом:
- UV того, с чего запекают - должен быть в порядке
- Финальный результат надо экспортировать в OpenEXR
- Размер карты можно установить как 512х512 или пониже, по словам автора, для VMD кистей не надо большого разрешения
Помимо VDM небольшие улучшения: починили хоткеи для ремешинга, добавили опцию Extrude Mode для Trim кисти
UI
Очень небольшие изменения: улучшена поддержка корейского, японского и китайского языка, где-то оптимизировали, где-то подкрутили
VFX & Видео
Собственно, вашему вниманию преподносится тот самый реалтайм композитор!
С момента его презентации он не особо изменился. Перенесли еще больше нод, улучшили UX, смогли запустить под Mac OS через Metal бэкэнд (на OpenGL бэкэнде работать не будет). Но реалтайм композитор все еще не поддерживает работу с пассами и слоями, так как для этого нужны большие изменения в коде, что может быть критично (с другой стороны, что мешает вывести нужные пассы и слои в отдельное изображение...)
В будущем реалтайм композитор полностью заменит собой композитор обычный, после чего на него будут навешивать новые фичи. Прогресс можно отслеживать здесь
Также небольшие изменения в VSE и моушен трекинге
На этом все. Следующая версия - 3.6, должна выйти этим летом, 28 июня. Читайте на здоровье, пишите мнение и так далее. Всем пока!