
В блоге разработчиков Blender опубликованы предварительные планы на дальнейшую разработку этого популярного пакета 3D-моделирования и анимации.
Blender 2.6x
Итак, цикл версий 2.6x подходит к своему логическому завершению:
- Ожидается ещё две версии: 2.68 и 2.69. В обеих основное внимание будет уделено стабилизации Blender.
- Все потенциально нестабильные новшества будут перенесены в 2.7х. То же касается новшеств, приводящих к поломке обратной совместимости.
- При необходимости будут выпускаться обновления версии 2.69 с буквенными постфиксами (2.69a, 2.69b и т.д.).
Blender 2.7x
В следующей серии релизов ожидается несущественная поломка обратной совместимости, обновление интерфейса, названий параметров, клавиатурных комбинаций. Уже страшно? :)
Среди проектов, которые вписываются в этот цикл разработки:
- OpenGL 2.1 как минимальное системное требование. Это позволит реализовать, к примеру, фоновые вычисления отрисовки.
- Рефакторинг графа зависимостей. Эти планы были опубликованы ещё около года назад и подразумевают учёт всех типов данных, повышенную гранулярность зависимостей, способность воспроизводить более сложную анимацию в реальном времени, использование Alembic и многое другое.
- Управление используемыми в проекте ресурсами, улучшенное управление линковкой внешних файлов.
- Переписывание секвенсера (проект GSoC этого года).
- Редизайн вьюпорта.
Новый цикл разработки — ещё и отличный повод перейти на Git для хранения исходного кода проекта.
Blender 2.8x
Тон предлагает не затягивать с началом этого цикла разработки так, как вышло с 2.6x и 2.7x. Он даже допускает возможность параллельной разработки 2.7x и 2.8x.
Затея, прямо скажем, спорная. Поддержка нескольких веток одновременно приводит к существенному увеличению временных затрат на поддержку. Ближайший пример здесь — Scribus, где ветка 1.5.0 уже примерно четыре года без релиза.
В этом цикле разработки допустимы более серьёзные изменения:
- Новые системы физики, более обширное применение возможностей Bullet.
- Долгожданная система частиц на нодах, которой Лукас Тённе занимается последние несколько лет.
- Переписывание на нодах других частей Blender (модификаторы, ограничители).
- Массовые изменения в игровом движке (см. ниже).
- Возможно, переход на OpenGL 3.0.
Blender 3.x
Предполагается, что в этой ветке произойдут существенные архитектурные изменения. Blender 2.x опирается на концепции, выработанные в середине девяностых. Ядро на C, формат файлов, DNA, методы — вопреки ожиданиям, всё это продержалось без концептуальных изменений целых 20 лет. Внимание, вопрос: так ли надо ломать то, что уже работает?
Несколько месяцев назад мы (LGW, digilinux) разговаривали с Эстебаном Товальяри о движке рендеринга Appleseed, которым он на тот момент активно занимался. В ходе беседы Эстебан несколько резко высказался в адрес архитектуры Blender, и его мнение наглядно демонстрирует, почему серьёзные изменения назрели:
Расширять Blender очень и очень непросто. Если вы что-то к нему дописываете, на определённом этапе нужно добиться включения вашего кода в основной репозиторий. В противном случае вам нужно вручную патчить каждый релиз, чтобы поддерживать свои изменения в актуальном состоянии. Это довольно болезненная процедура.
С модификаторами всё ещё хуже. Внутри Blender они, что называется, прибиты гвоздями. Больше того, они пишутся на Python 3, которым в VFX пока никто не пользуется.
В общем и целом, архитектура Blender в сравнении с Maya или Houdini попросту устарела и не учитывает общую для индустрии тенденцию к переходу на процедурные пайплайны. Сейчас Blender на 100% непроцедурный. Для моделирования и лепки это не так чтобы страшно, но как только дело доходит до анимации и спецэффектов… Вот это уже проблема.
В ближайшие пару лет команда Blender планирует собирать идеи по изменению архитектуры приложения. Эти идеи затем будут проанализированы и переработаны в конкретные планы, реализации которых и стоит ждать в ветке 3.x.
А что с игровым движком?
Тон считает, что команде не удалось сделать игровой движок, по качеству и портируемости сравнимый с Unreal, Crysis или даже Unity3D. Поэтому, с одной стороны, надо будет обеспечить поддержку внешних игровых движков — по аналогии с подключением внешних движков рендеринга.
С другой же стороны, функции нынешнего игрового движка стоит перенести в основную часть Blender, реализовав своего рода интерактивный режим. Например, концепцию логики (Logic) можно перенести прямо в систему анимации.
По мнению Тона, переключение внимания в разработке на интерактив в 3D позволит команде реализовать немало интересных и уникальных возможностей.
Подводя итоги
Как видите, озвученные планы обозначают скорее генеральную линию развития проекта, ожидаемые инфраструктурные и архитектурные изменения. В этих планах, если не считать редизайн VSE, не учтены ни проекты Google Summer of Code, ни дальнейшая эволюция Cycles — это попросту другой уровень детализации.
Предложенный сценарий развития не является окончательным, Тон Роозендаал предлагает обсуждать опубликованное в комментариях к постингу и в списке рассылки bf-committers@.
И буквально пара слов о ближайших планах. Согласно текущему расписанию, выпуск 2.68 запланирован на начало июля. Ветка «multiview» с улучшенной подготовкой стереоскопического рендеринга туда не попадёт, но переход на OpenEXR 2.0 всё же состоится.
Сегодня официально начинается активная фаза работы над проектами Google Summer of Code. Список веток в SVN приведён здесь.
6 ответов to “Чего ждать от Blender 2.7x—3.x?”
17.06.2013
krreВсе бы open source программы развивались такими темпами, как Blender. Предлагаю Тона клонировать и раздать всем другим проектам поровну :))
А чем быстрее разработчики перейдут на Git, тем лучше. Git уже давно зарекомендовал себя, как отличный инструмент для удалённой командной разработки. Не понимаю, что некоторых может так привязывать к SVN, кроме каких-нибудь консервативных корпоративных традиций.
17.06.2013
Александр ПрокудинПривычка — страшное дело. Например, скрайбусовцы попробовали перейти на Git, но не осилили. Поэтому основная команда откатилась обратно на SVN, а, скажем так, второй круг разработчиков (кстати, делающих всё самое интересное) как раз пользуется Git.
17.06.2013
Артур ШамшадиновЧем дальше, тем интереснее.
Конечно, страшно будет ломать пайплайн, но чего только не сделаешь ради новых высот.
18.06.2013
КолобокЭх, а я то ожидал серьёзной переработки моделирования, введения параметрических объектов, нормальной работы с NURBS, кривыми Безье… Ведь некоторые вещи в Блендере сделаны — откровенно, через задницу. Когда работаю с NURBS — невозможно сделать выравнивание контрольной точки (как вершины в меше) А как вообще увидеть «вес» контрольной точки NURBS? В результате, никто не пользуется таким мощным инструментом, всё из «сеток» лепят.
А параметрические объекты? Я создаю куб, хочу позже изменить размер, приходится менять по X,Y,Z, а если я создал сферу и хочу поменять диаметр и число граней? Самое крутое было-бы с деревьями, сейчас плагином сгенерировал дерево и он создал меш ствола, веток, листьев. А если-бы можно было менять структуру дерева после? Эх, мечты, мечты… Ведь приходится создавать новое дерево и снова заниматься его раскраской и пр.
И много-много другого не хватает Блендеру, а они как будто не замечают этого.
18.06.2013
Александр ПрокудинВот эта фраза в тексте была написана не просто так.
19.06.2013
КолобокОх… во времена новообразовывающейся ветки 2.4 писал, и не только я писал, во времена 2.5 и 2.6 поднимался вопрос, одно время, даже кто-то обещал взяться, но потом облом, пришёл Тон и сказал что это слишком муторно и неча воду мутить. Да по многим вопросам, у него странное отношение — не будет, говорит, этого, и всё тут. А с параметрическими объектами вообще всё плохо. Уж очень архитектура блендера (со слов самого Тона) несовместима с такими вещами, одна из причин, по которым никак не могут нормальных CAD-прибамбасов запилить.
А я всё надеюсь и жду, а они всё никак не решатся. Извините, что здесь вылил свои «страдательные наклонения» :)