События

Релиз Blend4Web 16.05

2016-05-31

Мы рады представить новую версию Blend4Web - открытой платформы для создания интерактивных браузерных 3D-приложений. В этой версии вашему вниманию предлагаются: графический интерфейс для настройки HMD и геймпадов, функции API для замены изображений, новые возможности редактора логики, новые материалы в библиотеке, а также различные улучшения быстродействия и удобства использования.

Замена изображений средствами API

Замена материалов - полезнейшая возможность, которая широко используется разработчиками реальных систем конфигурации продуктов на основе Blend4Web. Возможности заменять отдельные изображения, однако, до сих пор не уделялось внимания. Но, ознакомившись с пожеланиями наших пользователей, мы добавили эту возможность, и теперь вы можете заменять как двухмерные текстуры, так и кубические карты "на лету", что и показано на этом примере.

Меняйте изображения "на лету"!

Как видите, замена кубической карты влияет на все составляющие рендеринга, включая зеркальные отражения, небо и освещение от окружающей среды.

VR, геймпады и вебкамеры

В этом месяце мы продолжили работать над поддержкой геймпадов и устройств виртуальной реальности. Сегодня мы представляем вашему вниманию графический конфигуратор для различных HMD-устройств, в том числе класса Cardboard. В данный момент эта панель доступна только в Просмотрщике сцен или по вызову метода API. Мы собираемся включить этот конфигуратор в состав Веб-плеера, чтобы каждый пользователь мог с лёгкостью настроить своё устройство виртуальной реальности.

Настройка Cardboard HMD в Просмотрщике сцен.

Панель настройки геймпада.

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

Управляйте троллем с помощью вашего геймпада! Клавиатура тоже работает.

Кроме того, мы подготовили пример кода, демонстрирующий использование потока данных с веб-камеры в трёхмерном веб-приложении и предоставляющий пользователям уникальный шанс увидеть себя в телевизоре!

Веб-канал в 3D-приложении, в главных ролях - команда Blend4Web.

Редактор логики

Продолжается добрая традиция добавлять что-нибудь новое в визуальный редактор логики. Основываясь на пользовательских отзывах, мы добавили возможность многократного вызова нод Entry Point с помощью JavaScript. Кроме того, в меню Add > Layout появилась новая нода Empty, с помощью которой несколько логических цепочек можно объединить в одну.

Нода Empty делает логические деревья красивее.

Удобство использования

Чтобы помочь начинающим пользователям Blend4Web преодолеть сложности и подводные камни, которые могут их поджидать, мы добавили несколько эвристик, которые автоматически определяют и применяют стандартные настройки экспорта. В частности, объекты с неравномерным масштабированием теперь экспортируются корректно благодаря тому, что масштаб применяется автоматически при экспорте.

Опции экспорта объектов находятся на вкладке Object.

В числе прочих автоматически применяемых опций - Apply Modifiers (включается, если присутствуют модификаторы, не поддерживаемые Blend4Web), Export Shape Keys (включается при добавлении ключа формы) и Export Vertex Animation (включается при запекании вертексной анимации).

Библиотека материалов

Библиотека материалов дополнена четырьмя новыми материалами (доступны в PRO-дистрибутиве). Мы также приняли решение включать в библиотеку примеры использования материалов в реальных ситуациях.

Нода Vector Transform

Эта шейдерная нода, которая ранее была доступна только в системе рендеринга Cycles и которую мы портировали во вьюпорт в Blender 2.77, теперь работает в Blend4Web. Мы принимаем участие в разработке вьюпорта, чтобы ещё сильнее увеличить согласованность между рендерерами Blender и Blend4Web.

Нода Vector Transform позволяет переключаться между координатными пространствами.

Улучшенный алгоритм батчинга

Батчинг (объединение мешей) - важная техника оптимизации, которая используется для снижения количества вызовов отрисовки и которая с самого начала применялась в Blend4Web. После того, как мы внедрили новый кластерный алгоритм для поиска и объединения групп сопредельных объектов, рендеринг больших сцен стал экономичней.

Слайд с конференции по Blend4Web, демонстрирующий оптимизацию батчинга.

Прочие улучшения

Теперь Z-сортировка выполняется с учётом размеров объектов. Это может привести к более частым обновлениям сортировки, но исправляет ошибки, наблюдаемые при рендеринге объектов маленьких размеров.

Механизм отсечения по зоне видимости камеры теперь работает эффективней, т.к. отсекает части мешей, закрытые определёнными материалами, а не целые объекты.

Теперь ссылка, по умолчанию демонстрируемая при ошибках инициализации WebGL, ведёт в раздел Проблемы и решения пользовательской документации, а не на страницу для выявления неисправностей на сайте blend4web.com. Сам же раздел был дополнен и расширен, чтобы предоставить пользователям больший объём помощи.

В завершение

Новый релиз также исправляет многочисленные баги. Некоторые из них было очень непросто обнаружить, как, например, невозможность объединения мешей с нодовыми материалами, использующими ноду ColorRamp. Мы хотим поблагодарить наших пользователей за их отзывы и помощь, которые позволяют нам делать Blend4Web лучше!

Более подробную информацию о новых возможностях и исправленных ошибках вы можете найти в замечаниях к релизам. Исходные файлы всех приложений, представленных на этой странице, находятся в составе SDK.

Комментарии
01 июн. 2016 09:52
Динамическая замена текстуры - отличная штука! Можно использовать для мультиязычных текстурных надписей. Я так понимаю, что функция change_image тянет текстуру с сервера. А как её закэшировать, чтобы не ждать загрузки?

Делайте более полные описания к функциям и опциям. Например, новая функция:

change_image(obj, text_name, image_path, callbackopt)
Update texture image.
Parameters:
Name Type Attributes Description
obj Object3D Object 3D
text_name String Texture name
image_path String Path to image

Update texture image. Понятно, что за функция, но непонятны её особенности.

Опция text_name, что это? Имя слота текстуры или название файла текстуры? По аналогии с имеющимися функциями можно догадаться, что слот.
————————
Авто-включение функций (scale, modif) - очень удобная вещь!
01 июн. 2016 10:18
Исправьте текст в "Замечания к релизу". Ощущение, что использовали google translate

"Новый кластреный алгоритм батчинга.

Теперь батчинг (процесс объединения похожим объектов для повышения производительности) основан на новом кластерном алгоритме, который применяется при экспорте. Это оптимизирует весь процесс батчинга и делает его более"
01 июн. 2016 11:36

А как её закэшировать, чтобы не ждать загрузки?

Пока не получится
02 июн. 2016 15:41
В замечаниях к релизу не хватает строчки о том, что во все файлы документации теперь добавлен сбор статистики яндекс метрики ;)
02 июн. 2016 16:43
Отличная наблюдательность . Но статистику мы собираем только на сайте (также как с остальных страниц), метрика в скачиваемых дистрибутивах отключена.
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.