Блендер сегодня #232 Поешь, поспи, покрути ноды, повтори.
В предыдущие недели не было Тудея так как Пабло гонял в Пекин на воркшоп и всё затянулось на две недели вместо одной.
В июне состоялась сходка команды анимационного блока. Обсуждали и планировали изменения. Прогнозируют, что зачатки попадут уже в 4.0, а развитие будет аж до 5й версии, а может и дальше. В общем по 2025й. Хотелки в частности такие: + Переделать NLA в нормальные слои и обычный дата-блок, чтобы не было проблем с подвязыванием в другие файлы и обработкой.+ Среда, в которой было бы удобно развивать анимацию итеративно, усложняя.+ Удобство внесения изменений в чужую анимацию+ Процедурная анимация+ Потоковая передача анимации из других форматов+ Мультиблоковые actions — то есть можно на разные типы геометрии/данных натягивать единый блок анимации.
В эту же анимационную среду они включают симуляционные слои и узлы для рига.
Блендер всё больше переходит на C++. Это прежде всего удобно для разработчиков. Если какие-то части переводятся с Питона, то это приведёт к ускорению. Если с C, то к увеличению объёма кода, но и читаемости и структуированности тоже. На данный момент C++ — 67% кода.
………………………………………………………………………………………………………
Как обычно, список изменений далеко не полный, и освещён он будет в основном в тех областях, где простой пользователь столкнётся с изменениями.
Анимация:
Два оператора Push/Relax from the rest pose объединены в один, в котором сделана степень влияния туда-сюда между крайними состояниями, так как операторы технически взаимные противоположности. Диапазон -1/1 и неизменное состояние 0.
Исправили бесконечный скролл каналов NLA, теперь он тормозится, когда содержимое пролистано.
Добавлен новый фильтр Баттерворта для сглаживания Ф-кривых. Основная способность фильтра — зачищать мелкие (высокочастотные) дрожания и сохранять S-перегибы на узлах. Для чистки мокапов. Синим на картинке исходная кривая. Как видим, есть сдвиг от пиков влево-вправо и остаточные волнения. Так что для чистки шума ок, но крупное править руками.
Если кому надо, короткое видео от разрабов, как работает.
Модификатор Vertex Weight Edit теперь относится к порогу по принципу «включительно», то есть не «до числа» а «по число включительно».
Заблокированные Ф-кривые теперь отрисовываются иначе. Узлы крестиками, пунктир поменяли, но работает он плохо:
Крестики — спорное, но отличающиеся узлы дают понять, что не просто так отсутствуют плечевые рычаги. Я бы предложил наполовину закрашенный кружок, как минималистичную отсылку к замку, но нужно пробовать.
Добавлены жёсткие минимум и максимум для свойств Action. Отсутствие этих лимитов приводило, например, к ошибкам при экспорте fbx и gltf
Видеоредактор:
Оптимизировано подключение кэша.
Обработка волновых форм теперь многопоточная (визуализация звуковых дорожек).
Геоноды:
Распараллелили создание/заполнение дубликатов полигонов. В частности работает в Extrude и Duplicate. Так что сам узел экструзии может работать в разы быстрее при многовёдерном процессоре.
Ускорена работа Blur node. Сам Илья, который и завёз этот узел, дорабатывает его. Стало на 36% быстрее в тесте.
Убрали кэширование геометрии в анимации при реалтайме. Данные просто берутся из предыдущего кадра.
Наконец добавили репитерную зону. То есть область, в которой действие узлов повторяется нужное количество раз.
blend
repeat zone b4.blend515.26 Kb
Прежде всего эта зона сделана для замены повторяющихся одинаковых узлов. Пытаться заменить ею сложные и хорошо параллелящиеся алгоритмы — неоптимально. Но разработчики обещали подумать и над этим.
В отличии от Simulation zone повторятор не работает со временем, то есть весь отрабатывает в рамках текущего кадра.
У разъёмов (соокетов) вращения добавили подсказки.
Интерфейс:
Слайдеры могут теперь задаваться (внутренними командами) не только с процентным состоянием, но и с произвольным значением. В частности у шейдеров значение цвета может быть больше 1.
Слайдеры могут теперь задаваться (внутренними командами) не только с процентным состоянием, но и с произвольным значением. В частности у шейдеров значение цвета может быть больше 1.
Предпросмотр на нодах (пока в композитинге) перемещён в оверлеи (глобальное включение) и может включаться индивидуально для каждого узла.
Теперь навигация во время трансформации поддерживается с устройств NDOF (3д-мыши и типа того).
Исправлена работа выделения 3д-текста.
Была проблема: если выделить, сбросить, напечатать и пытаться выделять сверху вниз уже напечатанное — не срабатывало.
Исправлено/сделано тонирование имён ключей форм при деактивации. Было-стало:
Запилена базовая поддержка перетаскивания в иерархических списках.
Сделали новый индикатор прогресса и второй круговой, теперь вызывается из питона легко.
layout.progress(factor = 0.5)
layout.progress(factor = 0.8, type = 'RING', text = "Updating")
SVG теперь могут иметь миниатюры предпросмотра. Как я понимаю, только если программа, в которой делался файл, такую превьюшку записала.
Добавлено третье состояние для чекбокса. Нужно, чтобы показать, что лишь часть дочерних вложений активирована, а часть нет. Пока задействовано лишь местами. Выглядит как тире. Если честно, я бы предпочёл половинку кружочка или половинку галочки. Но вряд ли такой символ есть в шрифтах.
Композитинг:
В узле Кувахары теперь используется средняя цветовая вариативность. То есть результат работы узла поменяется, но именно так изначально и был задуман фильтр.
Так же во вьюпортный композитинг добавлена поддержка классической версии фильтра Кувахары.
У картинок убран вывод Z-буфера, так как давно не используется. Использовался давно для формата iris. Нынче сохраняют либо отдельной картинкой, либо в EXR.
Кривые:
Доработали и вернули случайное выделение в пределах маски/выделения.
Доработали и вернули случайное выделение в пределах маски/выделения.
Library overrides:
Улучшили генерацию имён для оверрайдов. Нужна, чтобы снизить шанс столкновения (идентичности) имён у блоков в крупных проектах.
Перевод:
Добавляют больше областей, где его можно сделать, в частности в подсказки к сокетам.
Рендер:
В Cycles, в Principled BSDF упразднена Transmission roughness, то есть отдельная шероховатость для света, идущего вглубь. Так как свойство не поддерживалось с системой использующией мультирассеяние на поверхностях и сами микрофасеточные поверхности с Френелем. Оставление свойства привело бы к дальнейшему наращиванию леса из костылей.
Подправили работу MNEE с Френелем.
Cycles Hydra: фон сцены устанавливается в зависимости от освещения. Теперь это соответствует работе других рендеров через Гидру.
Светильники:
Вэйжень добавила текстуру для ИС типа Солнце, именно для заливки диска. Прощайте математические белые блины. Здравствуйте нью-вейв полосатики :)
Стокнер подправил интенсивность солнца в зависимости от угла. Вот тут описана проблема.
Для прожектора сэмплинг заменён на сферический. То есть на камеру это не диск, повёрнутый к зрителю, а честная светящаяся сфера. Для рендера это приводит к менее шумному пятну прожектора во-первых, а во-вторых к возможности использовать плоского проецирования текстуры, если просто подключить UV вот так:
Увеличили соответствие солнца в Eevee и Cycles. Обнаружили неправильные формулы пересчёта интенсивности излучения.
В Eevee next завезли поддержку ряда существующих структур, светильников, кривых-волос, Френеля, запечку света в карты отражения и объёмные массивы. В общем работы идут.
Сетка:
Оптимизация Merge by distance, в том числе в модификаторе Weld. В тесте быстрей на 6% при частичной сварке меша по большой области.
Ускорение конвертации BMesh в Mesh на 30% — нашли проблему с многопоточностью (потерей потоков, насколько понял).
Оператору Propogate to Shapes добавили симметрию по Х. При работе с ключами форм записываются данные только из выделения.
Теперь динамические изменения в ключах форм правильно распространяются по базисным ключам. Если вы не в курсе, для каждого ключа может быть указан собственный базис, то есть создано иерархическое наращивание ключей. И вот по этой иерархии теперь всё адекватно распространяется даже при анимации и изменении самих ключей, как я понял. Это позволяет представить (в коде и не только) ключи как дерево.
GPv3 (GP next):
В разработке. Завозят как поддержку старых ключевых возможностей, так и новые удобные пользователю фишечки, типа продвинутой отрисовки курсора при рисовании или прозрачность слоёв. Сами слои, группы слоёв, нормальное их перетаскивание. Заметил 6 фамилий разработчиков. То есть сейчас там не полтора землекопа трудятся.
USD:
Улучшена конверсия ламп (источников света). Более полный экспорт данных.
UV:
Добавлена функция инверсии пинов. То есть теперь это не нужно костылить в несколько действий.
Ядро:
BLI — оптимизирован счёт индексов. Соответственно чуть ускоряет все процессы, где это нужно. Индексы есть не только у геометрии, но и у других датаблоков. Это довольно забавный патч. Сам алгоритм стал менее эффективен, но он стал многопоточным и в итоге быстрее в разы.
BLI — оптимизирован счёт индексов. Соответственно чуть ускоряет все процессы, где это нужно. Индексы есть не только у геометрии, но и у других датаблоков. Это довольно забавный патч. Сам алгоритм стал менее эффективен, но он стал многопоточным и в итоге быстрее в разы.
Вряд ли кто-то работает на процессоре менее чем с 4 потоками, но на всякий случай добавили проверку, и в случае древнего двухъядерника будет использоваться однопоточный режим.
Blender kernel перевели на C++.
GHOST: удалена поддержка OpenGL на маках и запрос на соответствие версии OpenGL.
Blender 4.0 теперь требует минимальную версию OpenGL 4.3
Подходит даже для видеокарт примерно двенадцатилетнего возраста. Сама версия была выпущена в 2012м. Чтобы вы понимали, моя пыльная GT 640 поддерживает как раз openGL 4.3
Версия необходима для повышения качества работы вьюпорта (Eevee next, Workbench next, GP next)
Версия необходима для повышения качества работы вьюпорта (Eevee next, Workbench next, GP next)