Blender 2.5: Новые возможности

Интерфейс Blender 2.5

Проект Blender 2.5 включает в тебя следующие фазы:

  1. Редизайн внутреннего оконного менеджера и системы обработки событий, инструментов и данных
  2. Рефакторинг кода
  3. Перевод инструментов и редакторов на новую систему событий и «операторы»
  4. Редизайн содержимого, процессов и визуального представления интерфейса
  5. Разработка и внедрение нового the new Python API

Первые две фазы близки к завершению, третья фаза закончена на 70%. Период с марта по июнь будет в основном посвещен фазам 4 и 5.

Ниже приведено краткое описание основных нововведений. Подробную информацию можно найти в wiki разработчиков.

Оконный менеджер

Оконный интерфейс Blender 2.5

Новый оконный менеджер заменит собой старые оболочки IrisGL и Glut, которым уже по 10 лет! Новый менеджер поддерживает многооконность, неограниченное разделение областей интерфейса, настраиваемые (цветные) курсоры, жесты, лассо и т.п. Кроме того, теперь поддерживается стандартная тройная буферизация, не создающая лишних проблем с отображением (особенно на недорогих графических картах), а так же многоуровневые композиты для некоторых симпатичных фишек интерфейса.

Операторы

Интерфейс Blender 2.5

«Оператор» — это новое обобщенное определение инструментов в Blender. Это понятие включает в себя множество действий, начиная от загрузки/сохранения файла и настройки расположения элементов интерфейса, заканчивая добавлением/редактированием объекта. «Оператор», как сущность универсальная, однотипно вызывается комбинацией клавиш, из меню, с помощью кнопок или из Python-скриптов. Операторы могут быть связаны (макросом), а так же предоставлять редактируемые стеки изменений для отмены операций.

Система событий

Интерфейс Blender 2.5

Теперь события обрабатываются и управляются централизовано, с помощью полностью динамической очереди. Все инструменты, даже «временно модальные», как трансформация объектов, управляются централизовано. За счет этого, интерфейс не замораживается и продолжает реагировать на действия пользователя, например, выпадающие меню могут отображаться во время проигрывания анимации.

В новом Blender используется производная от MVC-модели система, четко разделяющая управление событиями и отрисовку. Эта система разработана для лучшей поддержки внешних устройств (и мульти-тач устройств в будущем)

Настройка комбинаций клавиш

Интерфейс Blender 2.5

Blender 2.5 создан с чистого листа для того, чтобы пользователи могли настроить свои собственные комбинации клавиш. Комбинации объеденены в полностью настраиваемые «карты» (key maps). Помимо настройки клавиатуры, карты можно использовать для настройки специальных методов ввода, таких, как жесты, настраиваемые события, модификаторы по любой кнопке, много-клавишный ввод и т.п.

Интерфейс работы с данными (Generic Data API)

Интерфейс Blender 2.5

Во время работы над версией 2.5, мы быстро поняли, что общий стандартный механизм доступа актуален не только для инструментов (операторов), но и для внутренних данных и их взаимоотношений. Результатом стала новая библиотека РНК (RNA), используемая теперь в Blender повсеместно. Пример работы этой библиотеки можно увидеть на иллюстрации, демонстрирующей автоматически сгенерированный список параметров. РНК так же используется для настроек операторов, меню, кривых и будет доступна для автоматически генерируемого API данных и инструментов Blender для скриптов Python.

Обновленная система анимации

Интерфейс Blender 2.5

Одна из главных спецификаций версии 2.5 — «сделать всё анимируемым». Воплощение этого принципа совсем не упростило задачу по портированию новых функций, понадобился редизайн некоторых модулей:

  • Ipo-блоки ушли в прошлое, их заменили «действия» (Actions)
  • Действия можно применить везде (объекты, материалы, деревья нодов)
  • при использовании интерфейса работы с данными, действия могут анимировать любое свойство (кости, ограничители, модификаторы, ноды)
  • Драйверы были вынесены из Действий, и теперь их можно найти рдом с Действиями
  • NLA (action strips) вынесены из Объектов (единственное место, где они поддерживались) и тоже стали стандартными.

Об обновленной системе анимации можно прочитать в «Animato» project doc от Joshua Leung.

Редактор анимационных кривых (Graph Editor)

Интерфейс Blender 2.5

Новая система анимации Blender позволяет задать любому свойству функциональную кривую (Function Curve). Новый Graph Editor (бывший Ipo Curve Editor) позволяет просматривать и редактировать любой набор функциональных кривых, включающих все кривые всей сцены!

Диаграмма ключей (Dope Sheets)

Интерфейс Blender 2.5

Action Editor превратился в полноценную диаграмму ключей (Dope Sheet), которая позволяет управлять несколькими действиями сразу, группировать действия по типу и предоставляет улучшенный доступ к ключам формы (shape keys).

Менеджер управления потоками (Threads Job Manager)

Интерфейс Blender 2.5

Оконный менеджер использует потоки (threads), что позволяет обрабатывать наиболее тяжелые процессы в фоне. Лучшим примером будет использование шейдеров материалов и композитных нодов, которые теперь, обновляя каждый нод-узел, во время использования кнопок, оставляют интерфейс в живых. Визуализация тоже обрабатывается в потоке. Во время процесса визуализации можно изучать настройки рендеринга, увеличивать, уменьшать и прокручивать визуализируемые слои. Совсем недавно система управления потоками была использована для создания базовых потоковых скринкастов. Создание видео-уроков стало проще, чем когда-либо.

Авто-генерируемый Python API

Интерфейс Blender 2.5

Благодаря интерфейсу данных (Data API), RNA и интерфейсу стандартных инструментов (операторов), функциональность ядра Blender стала доступной для автоматической интерпретации с помощью Python API. Преимущества следующие:

  • Все сохраняемые/загружаемые данные в Blender доступны по умолчанию (включая ноды, частицы и т.п.)
  • Все инструменты и стандартные операции доступны по умолчанию
  • Инструменты и операции пользовательского интерфейса, выполняемые в Blender, могут выводиться в специальной скриптовой строке терминала
  • Самое главное: Python API теперь использует тот же код Си, с которым работает сам Blender, что дает большую стабильность и более предсказуемые результаты

Разработка нового скриптового API пока ещё в процессе

Дизайн и конфигурация интерфейса

Интерфейс Blender 2.5

Новые принципы, заложенные при работе над интерфейсом, привели к существенному его улучшению, теперь он гибко настраивается под любые специфичные пайплайны. По всей видимости Python будет играть в этом важную роль, позволяя не только настраивать кнопки и панели, но и дополнительные, полностью интегрированные (сохранение/чтение/копирование и т.д.) редакторы.

Подробности на страничке сессии WinterCamp, прошедшей в марте.

И ещё (в работе)...

  • Новый файловый браузер с закладками, интегрированным предпросмотром
  • Новая шрифтовая/текстовая библиотека, вращабельный текст, все размеры, больше поддержки для переводов
  • Полностью обновленная система билдов Scons
  • Стандартное хранилище ошибок и сообщений, в том числе для Blender без UI
  • В списке «todo»: встроенный терминал для командной строки python и логов ошибок
  • Доработка скульптинга из Google Summer project встроена в 2.5
  • Стандартный 2D-вид позволяет достичь лучшего контроля над видами и ползунками
  • В списке «todo»: полная ревизия графика зависимостей
  • RNA так же доступна через интерфейс для Си (плагин)
Поделиться в: Опубликовать в twitter Опубликовать в своем блоге livejournal.com