События

Релиз Blend4Web 15.11

2015-11-27

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

WebGL 2.0

Прогресс не стоит на месте, в браузерах Chrome и Firefox активно идёт работа по имплементации новой версии технологии трёхмерной графики WebGL 2.0. Эта версия WebGL основана на мобильной OpenGL ES 3.0, поддержка которой активно внедряется в смартфоны с прошлого года. На стороне десктопов необходимо иметь видеокарту, поддерживающую OpenGL 3.2 (в частности, любую Nvidia/AMD не старше 5 лет, либо Intel начиная с HD 3000).

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

Стоит отметить, что планы по внедрению WebGL 2.0 никаким образом не скажутся на поддержке систем, несовместимых с новыми API. Развитие рендеринга, основанного на WebGL 1.0 не только не будет приостановлено, но будет активно продолжаться.

Антиалиасинг MSAA

В прошлом релизе мы сделали большую работу по улучшению антиалиасинга, основанного на технологии FXAA. Данный алгоритм даёт хорошие результаты в плане качества картинки, однако обладает некоторыми недостатками, в частности снижает контрастность некоторых участков изображения и даёт небольшие артефакты при движении камеры. Этих недостатков лишён алгоритм MSAA, который доступен на профилях качества ULTRA начиная с этого релиза.

Этот алгоритм даёт превосходное качество картинки, но имеет повышенные требования к производительности GPU. Это первый пример использования новых возможностей WebGL 2.0.

Сравнение FXAA Ultra и MSAA 16x.

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

В узел Move Camera добавлена возможность плавной смены положения камеры.

Узeл Move Camera.

В узле Play Animation появилась возможность задания поведения объектной анимации по её окончании. В частности, теперь возможно останавливать, сбрасывать на начальный кадр или циклически повторять анимацию.

Узeл Play Animation.

Добавлены три новых узла Stop Animation, Stop Sound и Stop Timeline, которые, как следует из названия, позволяют останавливать объектную анимацию, проигрывание звука и анимацию глобальной шкалы времени соответственно.

Узлы Stop Animation, Stop Sound и Stop Timeline.

Упрощение использования узла Play Timeline. Теперь задавать начальный и конечный кадр нет необходимости, анимация будет начинаться с текущей позиции глобальной шкалы времени.

Работа упрощённого узла продемонстрирована на следующем примере - IQ Test.

Улучшения в программе-просмотрщике

Улучшения в интерфейсе программы-просмотрщика. Добавлена кнопка Home, при нажатии на которую осуществляется переход на базовую сцену, указанную в URL-параметрах приложения, либо, при её отсутствии, на стандартную сцену с кубическим лого Blend4Web. Кнопка Reset вынесена в правую часть верхней панели приложения и теперь, кроме внутренних параметров, также сбрасывает и URL-параметры просмотрщика (например, загружаемую базовую сцену). Кнопка Auto View Mode для автоматического прохода всех сцен вынесена на панель Tools & Debug.

Для удобства настройки анимации в интерфейс были добавлены кнопки: Play All и Stop All, которые служат для запуска и остановки всей анимации, имеющейся на текущей сцене.

Новый интерфейс программы-просмотрщика.

Улучшения камеры

Опция, которую ждали многие из наших пользователей: новая кнопка настроек TARGET-камеры Look At Cursor, пришедшая на замену Copy Cursor Location. При нажатии на эту кнопку, камера автоматически поворачивается в сторону, где будет находится опорная точка и фиксирует эту точку в настройках.

Кнопка Look At Cursor.

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

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

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

Мы продолжаем работу по реструктуризации кодовой базы движка. В частности, для перемещения объектов внутри движка ранее использовались матрицы, векторы и кватернионы. В данной версии движка мы отказались от матриц и перемещаем объекты исключительно с помощью векторов/кватернионов. Данное нововведение упрощает код движка и способно в ряде случаев улучшить производительность.

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

Отладка производительности рендеринга.

В этом релизе мы также обеспечили поддержку устройств на базе GPU Adreno 4xx серии (в частности, смартфонов Nexus 6), а также недавно вышедшего планшета iPad Pro.

В завершение

Представленный релиз Blend4Web совместим с Blender 2.76. Blend-файлы всех упомянутых в этой статье примеров включены в состав Blend4Web SDK. С полным списком изменений и исправленных ошибок можно ознакомиться в замечаниях к релизу.

Комментарии
27 ноя. 2015 17:34
ура-ура-ура
расширение возможностей редактора логики
Скажите, редактор логики имеет какое то преимущество функциональное перед программированием на JavaScript?
И можно ли часть логики сделать в редакторе, а часть написать кодом, и потом их связать?
Или тру - это писать на Javascript все? ( Я как-то склонен все написать кодом, но подумал - может я иду неверным путем)
27 ноя. 2015 18:17

Скажите, редактор логики имеет какое то преимущество функциональное перед программированием на JavaScript?

Если вы не программист и не собираетесь им становиться хоть на чуть-чуть - то да. В остальном же, нодовая логика ограничена своим функционалом. Ее возможности составляют примерно 5% от возможностей написания приложения на JavaScript.

И можно ли часть логики сделать в редакторе, а часть написать кодом, и потом их связать?
Да, только следует избегать конфликтов двух логик. Но посмотрите внимательно на ситуацию. Если вы имеете возможность написать логику работы на JavaScript, то почему бы сразу не написать все приложение?


Я как-то склонен все написать кодом, но подумал - может я иду неверным путем

На мой взгляд, идете совершенно верным путем
27 ноя. 2015 18:36

Если вы имеете возможность написать логику работы на JavaScript, то почему бы сразу не написать все приложение?
подумал - вдруг я изобретаю велосипед, а вы уже написали инструмент (нодовую логику), который все это делает , и может быть какие вещи удобнее и быстрее сделать в ней, для чего то же вы над ней усердно работаете
движок то вы написали же, а то бы кодил сейчас напрямую под WebGl

На мой взгляд, идете совершенно верным путем
вот это прекрасно
27 ноя. 2015 19:35

Ее возможности составляют примерно 5% от возможностей написания приложения на JavaScript.

Хех! Шутка ли! Я уже на 5% программист

Железо под WebGL 2.0 будет запускать софт WebGL 1.0 ?
Обратная связь есть, по подобию dx например?
Еще раз спасибо за релиз.

для чего то же вы над ней усердно работаете
для таких лентяев как patsak

…лень - двигатель прогресса.
27 ноя. 2015 19:51
Железо под WebGL 2.0 будет запускать софт WebGL 1.0 ?
Да, конечно.
Обратная связь есть, по подобию dx например?
И здесь ответ положительный.
02 дек. 2015 00:26
Спасибо!
10 дек. 2015 23:49
Да, для особо не программистов сюда бы аддон animation nodes блендеровский прикрутить, на сколько тогда процентов можно было бы уйти от программирования?
11 дек. 2015 10:09

Да, для особо не программистов сюда бы аддон animation nodes блендеровский прикрутить, на сколько тогда процентов можно было бы уйти от программирования?
Поддерживать сторонние плагины не очень перспективно, с ними может случится все что угодно от диких багов в исправление которых мы не можем вмешаться до смерти самого проекта. Я тоже пользовался этим плагином одно время, вы всегда можете запечь всё в анимацию и экспортировать в движок.
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.