Представлен релиз открытого фреймворка для создания браузерных 3D-приложений Blend4Web 16.10. Blend4Web предназначен для создания трехмерного интерактивного контента, работающего в браузерах без использования плагинов. Пакет тесно интегрирован с открытым пакетом Blender, использующимся в качестве основного инструмента редактирования 3D-сцен. Воспроизведение контента осуществляется средствами WebGL, Web Audio и других браузерных технологий. Наработки проекта распространяются под лицензией GPLv3.
Основные изменения:
- Реализована система поиска пути. В основе ее лежит классический алгоритм A*, позволяющий быстро и эффективно рассчитывать кратчайший путь до цели с учетом стен и других препятствий. Технически это основано на использовании навигационных мешей, которые заранее создаются в Blender. Для этого можно использовать специальный генератор из Blender Game Engine, либо создать навигационную сетку вручную. Причем, получаемая траектория может быть дополнительно сглажена с помощью так называемого метода «натяжения струн» (string pulling). Пример работы новой системы и код вы можете посмотреть здесь.
- Новая логическая нода Set Camera Move Style. Blend4Web предлагает использовать различные шаблоны поведения камеры на этапе конструирования сцены. Также API фреймворка включает набор необходимых функций для управления этими шаблонами из кода JavaScript. Теперь это доступно и пользователям визуального редактора логики. Пример демонстрации.
- Изменена функциональность логической ноды JS Callback. Этот узел предназначен для объединения логической части приложения, выполненной в визуальном редакторе логики и кода JavaScript. Его основное назначение — вызов соответствующей функции в коде, передача ему параметров и прием результатов. Теперь эта нода переходит в «режим ожидания», если вызываемая функция возвращает значение true, что позволяет временно остановить выполнение логического конвейера. Для возобновления работы достаточно передать значение false.
- Продолжена работа по оптимизации. Уже несколько месяцев подряд разработчики фреймворка прикладывают массу усилий для улучшения производительности своей системы. В этот раз оптимизации был подвергнут участок кода, ответственный за отсечение невидимых поверхностей. Также был серьезно переработан формат данных геометрии, используемый для хранения информации о вершинах в памяти GPU и в bin-файлах. Точность большей части данных (например, нормалей, касательных, вершинных цветов и др.) снижена до уровня, минимально достаточного для корректного отображения 3D-моделей. Это позволило уменьшить потребление памяти и увеличить конечную производительность.
- Теперь Blend4Web поддерживает весь спектр типов смешивания текстур для Environment освещения.
|