9 марта 2022 года Blender Foundation и сообщество разработчиков представили Blender 3.1 — новую версию бесплатного трёхмерного графического редактора с открытым исходным кодом.
Содержание
- UI и UX
- Cycles
- Моделирование
- Геометрические ноды
- Текстурирование
- Анимация
- Постобработка
- Видеоредактор
- Grease Pencil
- Браузер ассетов
- Импорт/экспорт
UI и UX
- Для редакторов Video Sequencer, Dopesheet, Graph Editor, NLA, UV, Image Editor, Movie Clip Editor, Outliner, а также всех редакторов для работы с нодами, добавлены круговые меню, содержащие опции для управления видом. Меню вызывается нажатием клавиши «~»
- Размер шрифта текстовых элементов интерфейса теперь можно задавать дробными значениями.
- Макеты элементов управления кривыми были обновлены для лучшей согласованности с остальными элементами интерфейса Blender. Лучше всего изменения заметны у нод Float Curves, RGB Curves и Vector Curves: выбор типа рукоятки теперь находится снизу, до этого он был в выпадающем меню. Туда же переместилась кнопка удаления точки.
- Добавлен новый способ добавления нод в связку во всех редакторах для работы с нодами: если при перетаскивании «провода» по пустой области отпустить правую кнопку мыши, отобразится список нод, к которым можно подключить этот «провод».
- В редакторе Geometry Nodes появилась возможность отобразить время выполнения ноды.
- Отрисовка больших связок в редакторе нод происходит в два раза быстрее. Также редактирование связки теперь вызывает меньше обновлений, чем раньше. Например, вставка узлов Reroute и редактирование нод, не включённых в основную связку, больше не вызывают обновлений.
- Также отмена и возврат в редакторе нод должны работать быстрее.
- Улучшен выбор нод, заключённых внутри рамки Frame.
- Редактор Image Editor теперь лучше обрабатывает большие изображения.
Cycles
Поддержка Apple Metal
Cycles теперь имеет бэкенд Metal GPU, разработанный Apple. На данный момент рендеринг поддерживается на: компьютерах Apple M1 под управлением MacOS 12.2 и новее, а также на компьютерах Apple с видеокартой AMD под управлением MacOS 12.3 или новее.
Точность трассировки
Были устранены артефакты от рендеринга малых, больших и отдалённых объектов в сцене. Тем не менее, всё ещё остаются масштабы и расстояния, при которых высокая точность трассировки будет проблематична.
Также по-прежнему возможны артефакты от рендеринга перекрывающейся геометрии, в некоторых случаях ещё более серьёзные, чем раньше. Во избежание этого следует удалять перекрывающиеся грани или оставлять между ними небольшое расстояние.
Point Clouds
Добавлена возможность прямого рендеринга облака точек в виде сфер. Это намного эффективнее в потреблении памяти и времени рендеринга по сравнению с использованием инстанса в каждой точке.
Облака точек можно создать с помощью геометрических нод или импортировать из другого ПО.
Для редактора Shader Editor добавлена новая нода Point Info. Она содержит в себе положение центра точки и её радиус, а также случайное значение для каждой точки.
Прочее
- Для панорамной камеры добавлен новый тип панорамы Fisheye Lens Polynomial. Этот тип позволяет моделировать камеры реального мира, задавая координаты полинома четвёртой степени, который связывает расстояние пикселей от оптического центра на датчике с углом мирового луча, который проецируется на этот пиксель.
- Для запекания добавлен новый алгоритм расширения UV-островов — Adjacent Faces. Старый алгоритм называется Extend и основывается на расширении лишь крайних пикселей островов. Новый алгоритм использует пиксели соседних граней, что значительно снижает видимость швов и обеспечивает лучшее совпадение текстуры с обеих сторон.
- Embree Compact BVH теперь является опциональным. Его отключение в некоторых сценах может, хоть и не значительно, но ускорить процесс рендеринга на CPU за счёт более высокого потребления памяти.
Моделирование
Subdivision Surface
- Модификатор Subdivision Surface теперь имеет GPU-ускорение. Активировать ускорение можно в настройках Blender > Viewport > Subdivision Surface
- Добавлена возможность указывать остроту вершин – Mean Vertex Crease, аналогично тому, как до этого можно было делать с рёбрами:
Прочее
- Проведена реорганизация нормалей вершин и граней сетки, что позволило сократить ненужные вычисления и повысить производительность.
- Расчёт Bounding Box у мешей теперь многопоточный, что может ускорить переход между режимами окна 3D-вида.
- Повышена точность расчёта NURBS, что позволяет сочетать режимы Bezier и Cyclic.
- Появилась возможность конвертировать атрибуты сетки в другие типы данных, например, UV-карту, цвета или веса вершин.
Геометрические ноды
Новые ноды
Arc – новый примитив кривой, представляющий собой неполную окружность – дугу. Имеет два режима построения окружности – по трём точкам (Points) и по радиусу (Radius). Нода содержит следующие регулируемые параметры:
- Resolution – количество вершин в дуге;
- Radius – радиус окружности;
- Start Angle – начальная точка дуги;
- Sweep Angle – конечная точка дуги;
- Connect Center – соединить начальную и конечную точки в центре окружности;
- Invert Arc – инвертировать дугу.
Merge by Distance – аналог одноимённого оператора из режима редактирования геометрии. Объединяет вершины в зависимости от заданного расстояния.
- Geometry – входной сокет для подключения геометрии;
- Selection – сокет для выбора вершин, которые должны подвергаться действию ноды;
- Distance – расстояние между вершинами, на котором они должны быть объединены.
Geometry to Instance преобразует геометрию в инстансы.
Dual Mesh преобразует грани в вершины, а вершины в грани
- Mesh – входной сокет для подключения геометрии;
- Keep Boundaries – опция, исключающая крайние несоединённые вершины меша из преобразования.
Flip Faces инвертирует ориентацию нормалей всех или только определённых граней.
- Mesh – сокет для подключения геометрии;
- Selection – сокет для определения только тех граней, на которых нужно инвертировать нормали.
Extrude Mesh позволяет экструдировать вершины, рёбра и грани.
- Mesh – входной сокет для подключения геометрии;
- Selection – сокет для определения вершин/рёбер/граней, которые нужно экструдировать;
- Offset – смещение проэкструдированной геометрии;
- Offset Scale – множитель смещения;
- Individual – сокет, определяющий, нужно ли экструдировать каждую грань индивидуально.
Scale Elements изменяет масштаб выбранных граней и рёбер.
- Geometry – входной сокет для подключения геометрии;
- Selection – сокет для определения рёбер и граней, масштаб которых нужно изменить;
- Scale – значение масштаба;
- Center – точка, относительно которой происходит масштабирование каждого элемента;
- Axis – направление масштабирования.
Accumulate Field подсчитывает общее количество своих входных значений в порядке, определяемом индексами геометрии.
- Value – значение для накопления;
- Group Index – индекс, используемый для группировки значений для нескольких отдельных накоплений.
Field at Index позволяет получить доступ к данным других элементов в контекстной геометрии. Аналогична ноде Transfer Attribute в режиме Index, за исключением того, что Field at Index не требует ввода геометрии. Может работать в пяти режимах: Float, Color, Vector, Integer и Boolean.
Domain Size выводит размер домена атрибута для выбранного типа геометрии.
- Point Count – количество точек на любой поддерживаемой геометрии;
- Edge Count – количество рёбер в меше;
- Face Count – размер домена граней в меше;
- Face Corner Count – размер домена угла между гранями в меше;
- Spline Count – количество сплайнов на кривых;
- Instance Count – количество инстансов в подключённой геометрии (только инстансы верхнего уровня; более низкие уровни не учитываются).
Scene Time выводит текущие время и кадр в сцене. Нода также работает в редакторе Compositor.
Vertex Neighbors выводит количество вершин и граней, соединённых с каждой вершиной.
Face Neighbors выводит количество вершин каждой грани и количество граней, соединённых одним ребром.
Edge Neighbors выводит количество граней, использующих ребро.
Edge Vertices выводит индексы вершин рёбер и их позиции.
Face Area выводит площадь каждой грани сетки.
Mesh Island выводит отдельный индекс для вершин каждой несвязанной части меша.
Edge Angle выводит угол между нормалями двух соседних граней.
Обновлённые ноды
Triangulate теперь имеет сокет Selection, позволяющий выбрать, какие грани подлежат триангуляции.
Cone и Cylinder (Mesh Primitive) теперь имеют три новых выхода для выбора верхней, боковой и нижней секций – Top, Bottom и Side.
String to Curve теперь имеет два дополнительных выхода – Line и Pivot Point.
- Line выводит индекс строки в макете текста для каждого символа;
- Pivot Point выводит положение относительно ограничительной рамки каждого символа. Точку вращения можно указать в поле Pivot Point.
Resample Curve теперь имеет вход Selection для воздействия только на определённые сплайны.
Set Handle Positions теперь имеет вход Offset, позволяющий дополнительно смещать рукоятки кривой.
Star (Curve Primitive) теперь имеет выход Outer Points для выбора внешних точек.
Boolean Math теперь имеет девять операций. К уже имеющимся And, Or и Not добавлены Not And, Nor, Equal, Not Equal, Imply и Subtract.
Compare теперь может работать с типами данных Vector, Color и Integer. В зависимости от выбранного режима работы, может содержать следующие параметры:
- A, B – стандартные входные значения;
- C – значение для сравнения; произведения двух векторов в режиме Dot Product;
- Angle – значение для сравнения угла между двумя векторами в режиме Direction;
- Epsilon – пороговое значение для операций Equal и Not Equal.
Map Range теперь тоже может работать с типом данных Vector. Эта нода также доступна в редакторе Shader Editor.
Attribute Statistics теперь имеет вход Selection, с помощью которого можно указать, какие элементы следует включать в результат статистики.
Curve Parameter переименован в Spline Parameter и теперь имеет ещё два новых выхода – Length и Index.
- Length выводит расстояние вдоль сплайна до каждой точки;
- Index – индекс каждой контрольной точки на её сплайне.
Spline Length теперь имеет новый выход – Point Count, выводящий количество контрольных точек сплайна.
Curve Handle Position теперь имеет переключатель Relative для вывода положения относительно соответствующей контрольной точки.
У ноды Transfer Attribute входной сокет Target был переименован в Source для большей интуитивности.
Set Spline Type теперь лучше сохраняет форму при преобразовании из NURBS в Bezier.
Производительность
Производительность
Ещё несколько нод теперь поддерживают многопоточность, что значительно улучшает их производительность и скорость работы:
- Realize Instances, увеличение производительности в 4 раза в самых распространённых случаях;
- Set Spline Type, увеличение производительности при работе с большим количеством сплайнов;
- Mesh Primitive Cube, увеличение производительности на 75% при больших размерах;
- Mesh Primitive Grid, увеличение производительности в 2.5 раза (на примере сетки 4096×4096);
- Bounding Box, увеличение производительности в 5 раз для мешей и облаков точек.
Прочие оптимизации
- Работа ноды Set Position была ускорена в 4 раза для простых полей.
- В полях с большим количеством вложенных значений использование памяти может быть сокращено в сто раз, что может повысить производительность в 3-4 раза.
- Улучшена многопоточность при средних нагрузках, что может повысить скорость оценки поля в 10 раз.
- Улучшено использование памяти в случаях, когда небольшое количество элементов обрабатываются большим количеством нод.
- Реорганизация нормалей граней и вершин, о которой говорилось ранее, также ускорила доступ в геометрических нодах на 40%.
- Интерполяция домена теперь вычисляет только необходимые значения для некоторых интерполяций граней и углов между ними.
Прочие изменения
- Инстансы теперь поддерживают динамические атрибуты.
- Инстансы теперь можно удалить с помощью ноды Delete Geometry.
Текстурирование
UDIM
Плиточные изображения теперь поддерживают имена файлов, содержащие токены подстановки UDIM. Для загрузки и сохранения изображений поддерживаются и могут использоваться следующие два токена:
- UDIM – четырёхзначная нотация, рассчитанная как 1001 + u-tile + v-tile × 10;
- UVTILE – обозначение, определённое как u(u-tile + 1)_v(v-tile + 1).
Например, при сохранении текстуры с именем texture.UDIM.png, все UDIM-плитки будут сохранены как отдельные изображения с именами texture.1001.png, texture.1002.png, texture.1003.png и так далее. А при использовании токена UVTILE, изображения будут сохранены как texture.u1_v1.png, texture.u2_v1.png, texture.u3_v1.png и так далее.
Анимация
Арматура
Теперь можно уменьшить непрозрачность костей, отображаемых в виде каркасной сетки (Display As Wireframe): в меню с настройками оверлеев окна 3D-вида был добавлен параметр Bone Wireframe Opacity, регулирующий видимость костей в режимах Edit, Pose и Weight Paint. Цель нововведения – уменьшить визуальный шум во время работы с весами.
Диапазон кадров экшена
Теперь можно вручную указать предполагаемый диапазон используемых кадров экшена и определить, является ли он циклом.
Настройки доступны на боковой панели в редакторах Dope Sheet, Action Editor и NLA Editor. Диапазон отображается в виде диагональной штриховки на фоне. При добавлении полосы действия в NLA будет использоваться выбранный диапазон вместо фактического. Он также может использоваться при экспорте для определения диапазона экспорта.
Копирование глобального преобразования
Аддон Copy Global Transform позволяет скопировать положение, вращение и масштаб активного объекта или кости и применить их к другому объекту или кости.
Выравнивание рукояток
В редакторе Graph Editor добавлен оператор Equalize Handles (меню Key -> Snap). Он выравнивает длину рукояток всех выбранных ключевых кадров, необязательно делая их горизонтальными. По умолчанию длина равна 0.5 и может быть скорректирована.
Операторы слайдера
Также в Graph Editor были добавлены операторы Breakdown и Blend to Neighbor (меню Key -> Slider Operators). Это позволяет изменять выбранные ключи на основании окружающих их ключей.
Постобработка
В редакторе Compositor добавлена новая нода Convert Colorspace, позволяющая изменять цветовое пространство изображения. Для преобразования доступны следующие пространства:
- Filmic Log
- Linear
- Linear ACES
- Non-Color
- Raw
- sRGB
- XYZ
Видеоредактор
- Добавлена возможность перетаскивания блоков данных из окон Outliner и Asset Browser в редактор Video Sequencer.
- Добавлена возможность перетаскивания блоков данных в область предварительного просмотра.
- Добавлена поддержка копирования и вставки блоков данных с анимацией в разных сценах.
- Прокси теперь собираются только для медленных видеофайлов.
Grease Pencil
Line Art
- Добавлена возможность инвертировать выбор коллекции, на объектах которой будет отображаться эффект Line Art.
- В Face Mark Filtering добавлена опция Keep Contour, позволяющая сохранить контур объекта при фильтрации рёбер по меткам Freestyle.
- Добавлена опция Back Face Culling для исключения из расчёта граней с обратной ориентацией нормалей.
Операторы
- Добавлена опция Merge All Layers, позволяющая объединить все слои в один.
- При экспорте анимации в PDF появилась возможность экспортировать полный диапазон кадров сцены.
Инструменты
- Инструмент Fill теперь позволяет использовать отрицательные значения в поле Dilate для сжатия заполненной области и создания зазора между заливкой и обводкой.
Модификаторы
- Добавлен модификатор Shrinkwrap, позволяющий спроецировать штрихи Grease Pencil на меш-объекты.
- В модификаторе Length были добавлены параметры для рандомизации длины штрихов.
Браузер ассетов
- Теперь библиотека ассетов индексируется для более быстрого просмотра.
- Добавлена возможность сохранять группы нод в качестве ассета, а также поддержка перетаскивания групп в редактор нод.
Импорт/экспорт
Alembic
- Добавлена возможность экспорта анимированных цветов вершин.
- Добавлена поддержка чтения слоёв переопределения. Это позволяет переопределять данные – атрибуты, анимации, топологию и другие, из кэша Alembic, если иерархии слоёв и исходного файла совпадают.
DWAB
- Возвращена поддержка сжатия DWAB для изображений в формате OpenEXR.
OBJ
- Представлена новая версия экспортёра OBJ, написанная на C++ в качестве замены аддона Python. Новая версия значительно выигрывает в скорости работы.
USD
- Поддержка экспорта шейдеров, состоящих из Principled BSDF и текстур. Все использованные текстуры в связке будут экспортированы в каталог рядом с USD-файлом.
glTF 2.0
Импорт
- Реализована система расширения возможностей пользователя.
- Повышение производительности при упаковке изображений.
- По возможности используются относительные пути.
- Исправлено недопустимое имя индекса сетки.
Экспорт
- Управление режимом настройки NLA при необходимости.
- Улучшенное управление текстурами.
- Исправлена регрессия при экспорте анимации арматуры только с одним ключом.