Цели разработки на 2015 год
2015-01-16
Мы предлагаем вашему вниманию дорожную карту разработки Blend4Web в этом году.
Одним из главных результатов состоявшегося в марте прошлого года публичного релиза мы считаем возникновение сообщества разработчиков Blend4Web. Мы благодарны нашим пользователем за их вопросы, замечания и предложения касательно использования нашей платформы. Благодаря вашим отзывам, полученным по электронной почте и на форуме, мы осознаем, с какими трудностями приходится сталкиваться, какого функционала не хватает, какие сложности возникают вследствие имеющихся технологических различий браузеров, операционных систем и устройств.
В связи с этим в этом году мы предполагаем сфокусировать усилия не только на наращивании нового функционала, но также на таких моментах, как:
- удобство использования платформы разработчиками,
- работоспособность на максимально возможном количестве систем и устройств,
- уменьшение порога вхождения в технологию для новичков,
- качество опыта конечных пользователей.
Новый функционал
В 2015 г команда продолжит развитие функционала Blend4Web. Исходя из общей парадигмы "из Blender'а в Web", с учетом пожеланий наших пользователей, был составлен следующий список целей:
- Расширение функциональности эффекта свечения (glow).
Помимо подсветки контуров объектов мы планируем реализовать эффект свечения материалов (как в фильме Tron). - Поддержка инверсной кинематики и процедурный скиннинг.
Задача иначе может быть сформулирована как добавление возможности управления костями анимационных скелетов. Примеры использования - поворот головы и глаз персонажа с целью слежения за объектом, изменение высоты постановки ступней на неровностях ландшафта, изгибание растений под действием силы. - Поддержка морфинга.
Предполагается получить возможность экспорта данных морфинга из Blender (Shape Keys) и обеспечить поддержку анимации переходов и управления через API. - Полная поддержка систем частиц, включая физику и смягчение.
Предполагается поддержать такую имеющуюся в Blender'е функциональность, как силовые поля, броуновское движение, использование произвольных объектов и групп объектов в качестве частиц и многие другие настройки. Реализация "мягких" частиц позволит убрать различимую границу при соприкосновении биллбордов с поверхностями. - Поддержка объектов типа "текст".
Предполагается реализовать автоматическую конвертацию таких объектов в меши во время экспорта. - Развитие функциональности NLA Script.
Мы планируем добавить возможность перехода на веб-страницы по нажатию мышью на объект, возможность скрывать и показывать объекты, а также возможность считывания параметров адресной строки в регистры NLA Script. - Шлемы виртуальной реальности.
Поддержка устройств виртуальной реальности, таких как Oculus Rift, Gear VR, Google Cardboard, помимо имеющейся в настоящее время поддержки анаглиф-режима стерео-изображения (для разноцветных очков). - Оптимизации с учетом новых возможностей браузеров.
По мере улучшения поддержки в браузерах различных расширений WebGL, полезных с точки зрения производительности (инстансинг, Vertex Array Object, компрессия текстур, sRGB текстуры, динамические текстуры), мы планируем реализовывать оптимизации на их основе. - Полноценная поддержка сцен с множественными источниками света.
Предполагается оптимизировать рендеринг сцен с множественными источниками света за счет отсечения удаленных или слабых источников. Мы также планируем поддержку теней от множественных источников света (до 4 включительно), а также поддержку корректного отображения теней от ламп-прожекторов (ламп типа Spot). - Развитие подсистемы физики.
Планируется поддержка динамических объектов, описываемых полигональными мешами, реализация динамической загрузки и выгрузки физических объектов. - Поддержка процедурных текстур, градиентов в составе Blender.
Текстуры, генерируемые "на лету", имеют очевидное преимущество перед файлами изображений, поскольку не требуют загрузки. В связи с отсутствием их поддержки во вьюпорте Blender'а, в перспективе планируется подготовка соответствующих патчей. - Улучшение поддержки мобильных устройств.
Предполагается добавить или улучшить поддержку такой функциональности как панорамирование камеры, режим камеры от первого лица, видео-текстуры на устройствах с сенсорными экранами, а также поддержку управления с помощью гироскопа. - API для управления параметрами нодовых материалов.
Планируется реализация возможности изменения параметров нодовых материалов, таких как числовое значение и цвет, на стороне приложения. - Инстансинг через API.
Для сценариев появления копий трехмерных объектов на сцене (например, бросание камней персонажем или повторное использование элементов для генерации локаций) мы планируем реализовать соответствующий программный интерфейс. - Поддержка настроек искусственного интеллекта неигровых персонажей в интерфейсе Blender'а.
Таким образом, настройки типовых "блуждающих" NPC можно будет устанавливать без необходимости программирования. - Поддержка мета-данных сцен.
Названия и описания сцен, задаваемые в интерфейсе Blender'а, могут быть полезными для составления онлайн-каталогов.
Blender
Возможность прямого экспорта из Blender, т.е. без использования какого-либо промежуточного редактора, является одной из наиболее интересных возможностей Blend4Web. Мы понимаем, насколько важно, чтобы 3D художник видел в Blender'е такой же визуальный результат, что и на веб-странице. В связи с этим в 2015 г предполагается продолжить и углубить наше участие в разработке проекта Blender, с тем, чтобы уменьшить (идеально - полностью ликвидировать) различия между двумя средами.
- Изменение интерфейса Blender с учетом специфики Blend4Web.
Планируется создать специализированный профиль интерфейса, в котором будут собраны все поддерживаемые параметры. - Участие в разработке и поддержка нового вьюпорта.
Ввиду близости технологий OpenGL ES 2.0 (целевая платформа для вьюпорта нового поколения) и WebGL (платформа, на основе которой работает Blend4Web) наша команда планирует участие и содействие программистам этого проекта. - Карты нормалей в нодовых материалах.
Нативная поддержка карт нормалей в нодах Texture позволит избавиться от таких уловок, как использование ноды REPLACE. - Перенос полезных нод из рендерера Cycles в рендерер вьюпорта.
Такие ноды, как Vector Transform, Geometry (New), Gamma и другие могут значительно расширить возможности нодовых материалов. - Прозрачность во вьюпорте.
В настоящее время настройка прозрачности осуществляется через интерфейс Blend Game Engine. Также могла бы быть реализована сортировка по глубине, улучшена реализация режима наложения Add. - Избавление от бинарной части аддона.
Перенос функциональности бинарной части в аддоне Blend4Web в Blender позволил бы расширить количество поддерживаемых платформ и упростить процесс установки и обновления аддона. - Поддержка во вьюпорте функций, работающих в других рендерерах Blender'а.
В частности, предполагается поддержка во вьюпорте процедурных текстур, модели бликов WardIso, отображения частиц, освещения от окружения, и др. - Образцы материалов.
Библиотека заранее подготовленных и оптимизированных материалов значительно увеличит продуктивность художников.
Демо-приложения
Демонстрационные и обучающие приложения используются для отладки и оптимизации, информируют о возможностях движка и служат примером для разработчиков. В 2015 г планируется выпуск нескольких прикладных приложений, а именно:
- "Сказ о Пятигоре".
Завершение серии уроков по игровой разработке. Планируется реализация геймплея, двух уровней, монстров, новых эффектов, звукового сопровождения и списка рекордов. - "Капри".
Ключевое приложение этого года, реализующее обширное пространство, открытое для исследования пользователем. Бета-версию предполагается выпустить весной для зарегистрированных разработчиков Blend4Web. - Мы также намерены подготовить пример использования 3D графики для визуализации работы реального промышленного предприятия.
Заключение
Приведенная выше дорожная карта приближенно описывает наши цели в этом году. Мы с удовольствием рассмотрим ваши предложения и замечания, и готовы внести соответствующие изменения в планы. Оставить отклик можно в соответствующей теме форума.
Еще раз, спасибо за вашу поддержку и участие! Совместными усилиями мы сможем достичь выдающихся результатов в такой замечательной и перспективной области, как 3D графика в Интернет.