События

Релиз Blend4Web 16.09

2016-09-29

Представляем новый релиз Blend4Web — открытой платформы для создания трёхмерных веб-приложений. Среди новых возможностей — оптимизация графики, поддержка Blender 2.78, новые материалы в библиотеке и множество изменений для улучшения интеграции с Blender.

Система координат

Очень важное изменение для разработчиков приложений: устранены различия между координатными системами Blend4Web (которая совпадала с «классической» схемой OpenGL) и Blender — в пользу последней.

Разница между системами координат Blend4Web и Blender до сегодняшнего дня.

Это различие было обусловлено тем, что изначально Blend4Web развивался в качестве WebGL-библиотеки, не интегрированной с Blender. Различия координатных систем вызывали множество проблем для разработчиков, особенно начинающих. Мы полагаем, что необходимость изменения уже существующих приложений — разумная плата за избавление от этих проблем. Приложения, использующие только логические ноды, не затронуты этим изменением.

Среди других преимуществ — упрощение некоторых фрагментов программного кода и соответствующий прирост производительности.

Возможности Blender 2.78

Приближается выход Blender 2.78 — долгожданной новой версии открытого 3D-пакета. Наши разработчики сыграли заметную роль в разработке новых возможностей окна просмотра Blender и сделали работу с Blend4Web удобней. Перечислим наиболее важные особенности новой версии.

Освещение от окружающей среды в Blender 2.77 и 2.78 (демо Island).

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

Во-вторых, кубические карты теперь: а) работают с нодовыми материалами; б) отображаются в окне просмотра.

Отражения на основе кубических карт в Blender 2.77 и 2.78.

И, конечно же, встречайте опцию World Space Shading. Мы уже упоминали её в статье о релизе Blend4Web 16.06 LTS, а теперь она доступна в Blender 2.78. Её появление значительно улучшает совместимость, поскольку сам движок также работает в мировом пространстве координат. Именно эту опцию необходимо включить для того, чтобы изображение в окне просмотра соответствовало изображению в Blend4Web. Кроме того, поддержка World Space Shading открывает возможность реализации части функционала трассировочного рендерера Cycles, который также работает в мировой системе координат.

Расположение кнопки Set Recommended Options.

Мы также добавили «волшебную» кнопку на вкладку Render. Она называется Set Recommended Options и переключает несколько параметров с целью обеспечения максимального соответствия изображения в окне просмотра Blender изображению в браузере. При нажатии на кнопку

  • включается вышеупомянутый World Space Shading,
  • режим материала переключается на GLSL,
  • тип затенения в окне просмотра переключается на Material, и
  • сенсор главной камеры переключается на Vertical.

Всё это происходит одновременно — искать и включать опции вручную больше не требуется.

Кроме того, нода Normal Map (поддержка которой появилась в предыдущем релизе) теперь корректно работает в окне просмотра Blender, как показано на скриншоте ниже.

Теперь нодовые материалы с картами нормалей выглядят так же, как в Blend4Web.

Резюмируя всё сказанное о новых возможностях Blender, мы уверены, что это серьёзный шаг вперёд для нашего фреймворка. Комбинация безграничного функционала для создания трёхмерных сцен Blender с возможностями Blend4Web по созданию веб-приложений создаёт мощный, интегрированный инструментарий для разработки трёхмерного контента для Интернета.

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

В PRO-версию библиотеки добавлено несколько новых материалов: вода с каустикой, мех и крокодиловая кожа (ни один крокодил не пострадал).

Оптимизация GPU

Мы продолжаем наш поход к лучшей жизни производительности, начатый в прошлом месяце. На этот раз мы сосредоточились на работе с GPU. Во-первых, вершины мешей теперь при экспорте сортируются способом, оптимальным для работы с кэшем GPU. Кроме того, произведена серьёзная оптимизация кода шейдеров (например, матричные вычисления заменены векторными).

Появилась возможность увеличить скорость расчёта теней, уменьшая количество сэмплов, используемых для размывания (этот параметр находится на вкладке Render). Директивы теперь вставляются в код шейдеров только тогда, когда в них есть необходимость — это уменьшает количество комбинаций шейдеров, а следовательно, и время компиляции, ускоряя загрузку.

Настройки качества теней.

Появилась возможность автоматического определения качества изображения с помощью профиля качества P_AUTO (устанавливается в JS-коде), при установке которого приложение будет работать либо с качеством LOW, либо HIGH, в зависимости от мощности системы.

m_app.init({ 
    canvas_container_id: "main_canvas_container", 
    callback: init_cb, 
    quality: m_cfg.P_AUTO 
}); 

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

Поддержано расширение WebGL для работы с текстурной компрессией типа PVRTC, доступное на iPhone, iPod Touch и iPad всех поколений, а также на Android-устройствах на базе PowerVR, с целью экономии видео-памяти и увеличения производительности на этих устройствах. Инструкции по конвертации и использованию PVRTC-текстур находится в руководстве пользователя.

Теперь аннотации используют аппаратное ускорение.

Аннотации (HTML-боксы для показа информации о 3D-объектах) стали работать быстрее благодаря свойству CSS translate3d, которое использует аппаратное ускорение. Аннотации, привязанные к анимированным объектам, теперь движутся намного более плавно. Также наши художники переработали наиболее сложные материалы, уменьшив количество шейдерных нод и обращений к текстурам.

Как видите, в этом месяце мы уделили много внимания оптимизации и добились впечатляющих результатов. Например, демо Ферма, самое насыщенное графикой из наших приложений, работает на 30-40% быстрее, чем раньше. Теперь его можно запустить даже на среднем мобильном устройстве (что наводит нас на мысли о переработке управления для поддержки сенсорных экранов).

На Андроиде.

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

В веб-плеере появилась новая кнопка для работы с социальной сетью Sina Weibo, популярным китайским сервисом микроблогов. Кроме того, теперь вы можете самостоятельно настраивать набор и порядок кнопок социальных сетей в веб-плеере с помощью соответствующего атрибута в адресной строке браузера. В качестве кода используются начальные буквы из названия соцсетей: f — Facebook, v — VK, t — Twitter, w — Weibo, g — Google+.

看看这些用 Blend4Web 所制作的惊人 3D 图形!

В версии 16.06 для проверки целостности программного кода в менеджере проектов появилась команда check modules. Эта команда определяет отсутствующие и ненужные модули и особенно полезна во время перехода на новую версию Blend4Web. В этом релизе стало возможным автоматически исправлять найденные проблемы, удаляя и добавляя соответствующие JavaScript-файлы в HTML-файлы приложений (с помощью кнопки Update Modules).

Команда check modules — вторая сверху в списке.

Также, для того, чтобы сделать интерфейс понятнее, мы изменили порядок панелей на вкладке Render в соответствии с их содержанием и частотой использования.

Заключение

Новую версию Blend4Web рекомендуется использовать с Blender 2.78, хотя более старые версии 2.76 и 2.77 тоже поддерживаются. С полным списком изменений и исправлений можно ознакомиться в замечаниях к релизам. Будем рады вашим отзывам!

Кроме того, мы приглашаем всех желающих принять участие в моделировании гигантского парка ретро-автомобилей под свободной лицензией. Наш новый конкурс с призовым фондом 65 000 pублей официально стартует через несколько дней!

Комментарии
29 сен. 2016 21:05
Ух ты круто меховой куб)). Спасибо за новый релиз.
В бенчмарке отправляется какая-нибудь информация на ваш сервер? собирается статистика по железу? Топ самых мощных и самых слабых систем или что то похожее.
Было бы не плохо собрать все это в кучу ( думаю полезно для разработчиков приложений), возможно сделать эдакий аналог 3D mark на webGL еще).
29 сен. 2016 23:58
Спаисбо за ваш труд!
буду пробовать, на моем маломощном устройстве должно показать сразу преимущество в производительности.(надеюсь)

Присоединяюсь к просьбе о собственном бечмарке или каком то тесте который выдал бы совместимость текущей системы и дал понять что стот вообще делать для данной системы, а что нет. ну и чтоб запускался из скрипта и не требовал особых манипуляций. а просто дампил куда то результат.

жаль только что релиз блендера еще не готов пардонсЪ, качаемсЪ
ложка дегтя, после инсталяции x64 блендера под Win10 он отказался запускаться с сообщением об отсутсвующей SDL2.dll выковырял из зипа
30 сен. 2016 09:52
В бенчмарке отправляется какая-нибудь информация на ваш сервер?

это очень плохо - следить за пользователями и собирать какие-либо данные о них)) мы такое не делаем

Можно отписываться на форуме о своей системе и результатах тестов, по желанию естественно
30 сен. 2016 11:45
Реально ферма запустилась на моем xiaomi redmi note 2
30 сен. 2016 12:08
Ответ на сообщение пользователя ДЕНИС
жаль только что релиз блендера еще не готов пардонсЪ, качаемсЪ
ложка дегтя, после инсталяции x64 блендера под Win10 он отказался запускаться с сообщением об отсутсвующей SDL2.dll выковырял из зипа

Об этой ошибке уже сообщили https://lists.blender.org/pipermail/bf-committers/2016-September/047701.html
30 сен. 2016 12:16
Ответ на сообщение пользователя Семенцов Роман
это очень плохо - следить за пользователями и собирать какие-либо данные о них)) мы такое не делаем

Можно отписываться на форуме о своей системе и результатах тестов, по желанию естественно

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

в моем примере это очень актуально, т.к. браузер встроен в ОС и запустить что то руками и манипулировать на круглом экране 360х360 не вариант )))

так что будет удобно и проще сразу понять что будет работать на такой системе а что нет, если такой инструмент появится.

да и если как то структурировано выдавать результаты теста каждого параметра то их можно использовать при автоматической(программной) настройке рендера под браузер и систему более тонко.

типа WebGL Report
30 сен. 2016 12:32
это очень плохо - следить за пользователями и собирать какие-либо данные о них)) мы такое не делаем
Можно создать отдельную демку или встроить в плеер с оповещением пользователя как делают сейчас с cookie на каждом 2ом сайте в инете.

Да ферма реально летать начала только вот настройки теперь хуже по графике, зато стабильно идет 60фпс)))
Нашел глюк с лисой у дамбы. Ее нереально колбасит верх-вниз)) пока не дойдет до забора.
30 сен. 2016 14:08
Да! пожалуйста! Последите за нами :)

Сайт для бенчмарков - это первое, что должно было появиться. Пусть даже общая статистика видна будет только для подписчиков, но чтобы она была!

И поздравляю с релизом!
30 сен. 2016 16:35
Эпичненький релиз!

В библиотеку добавлен новый материал - крокодиловая кожа
А как же права на жизнь виртуальных крокодилов? Дети будут видеть сумки из крокодилов и думать что это норм, что животных только для сумок выращивают, как курицу для мяса


В бенчмарке отправляется какая-нибудь информация на ваш сервер? собирается статистика по железу?
Так очень некрасиво делать. Разве что только с согласия пользователей и для общей анонимной статистики. Я как пользователь gnu-шек очень бы обиделся на такой софт, который что-то собирает без моего согласия, либо предлагает выбор либо ты проходишь тест и даешь данные и пользуешься, либо идешь лесом.

Надеюсь увидеть производительность и в своих проектах, а не только на ферме

Блики на дне воды как я понял не соотносятся с поверхность. Там отдельная текстура?

Заметил, что мех на фоне воды пропадает.

K71_cCJdKi4.jpg
30 сен. 2016 17:45
Блики на дне воды как я понял не соотносятся с поверхность. Там отдельная текстура?
Да, это не процедурная вода, а по сути сет для создания сцены с водой, где отдельно материал поверхности воды, материал глубины и материал (даж нодовая группа, которую можно без проблем добавить в свой материал) бликов.

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