События

Релиз Blend4Web 16.07

2016-07-26

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

Инстансинг геометрии

Мы уже упоминали инстансинг в одном из предыдущих релизов, но тогда под этим термином понималось копирование геометрии средствами API в реальном времени. Сейчас же речь идёт о другом известном приёме трёхмерной графики — клонировании геометрии. С помощью этой техники движок способен отрендерить множество копий объекта, используя всего один вызов отрисовки, что существенно снижает потребление памяти и увеличивает общее быстродействие, особенно на мобильных устройствах, где памяти немного.

Инстансинг поддерживается для частиц типа HAIR, которые традиционно используются при создании густой растительности – деревьев, кустов, травы. Ниже приводится демо, в котором после применения этой технологии расход памяти снизился почти в 80 раз, со 160 до 2.1 Мб!

Аппаратный инстансинг доступен в WebGL 1.0 посредством расширения ANGLE_instanced_arrays, которое на сегодняшний день поддерживается большинством настольных и мобильных платформ. Аналогичные возможности включены и в ядро будущей спецификации WebGL 2.0, которая соответствует стандарту OpenGL ES 3.0. Blend4Web включает поддержку инстансинга геометрии автоматически и самостоятельно переключается на обычный рендеринг в тех редких случаях, когда эта возможность недоступна.

Мультитач и выбор объектов

Теперь Blend4Web поддерживает мультитач-события! Несложный пример демонстрирует то, как эта функция может использоваться в мобильном приложении.

Попробуйте нажать сразу на всё!

Кроме того, наши усилия в области оптимизации позволили существенно уменьшить задержку при выделении объектов. Достигнуть этого нам удалось с помощью рендеринга сцены в буфер кадра размером 1х1 пиксель с очень узким углом обзора. В результате интерактивные сцены стали гораздо более отзывчивыми, особенно на устройствах с сенсорными экранами. Попробуйте запустить это старое демо-приложение на мобильном устройстве и убедиться, что теперь играть на пианино стало гораздо удобнее!

Теперь играть на этом пианино намного проще.

Глубина резкости и боке

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

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

Настройки глубины резкости находятся на вкладке Object Data камеры.

Аудио и эффект Доплера

Продолжается развитие подсистемы объёмного звука, основанной на стандарте Web Audio. Первое изменение – автоматическое создание движком аудиоконтекста в том случае, если в сцене присутствует источник звука. В связи с этим флажок Audio удалён из интерфейса.

А поскольку эффект Доплера был удалён из новых версий стандарта Web Audio, движок Blend4Web предлагает вашему вниманию собственную реализацию этого забавного эффекта. Достаточно анимировать источник звука в Blender и включить параметр Enable Doppler. Взгляните на это небольшое демо!

Доплеровское смещение в действии.

Но и это не всё – мы переработали интерфейс общих настроек аудио и сделали его намного ближе к настройкам самого Blender. В частности, теперь Blend4Web поддерживает опции Volume, Distance Model, Speed и Doppler.

Общие настройки аудио находятся на панели Scene.

Для самих источников звука теперь доступна опция Auto-play - если включить её, источник начнёт проигрывать звук сразу после загрузки сцены.

Настройки источника звука находятся на панели Object Data.

А кроме того, те, кто профессионально работает со звуком, оценят возможность создавать сложные аудиопетли. Теперь вы можете создать начальную, закольцованную и конечную секции в одном аудиобуфере, используя параметры Loop Start и Loop End, а также функцию API sfx.loop_stop(). С помощью нового API можно создать, например, стандартные огибающие ADSR (Attack, Decay, Sustain, Release).

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

В прошлом некоторые из наших пользователей испытывали трудности при создании загрузчика для своих приложений. Руководствуясь их отзывами, мы добавили простой метод API create_preloader(). Он не зависит от каких-либо HTML-элементов и позволяет создать простой прямоугольный индикатор загрузки. Загрузчик добавляется автоматически при создании нового приложения в менеджере проектов.

Этот простой загрузчик теперь доступен по умолчанию для всех вновь создаваемых проектов.

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

Кроме того – и это, похоже, уже становится традицией – библиотека материалов пополнилась несколькими новыми материалами и примерами их использования. Теперь количество материалов в библиотеки достигло 27. Среди новых материалов - человеческая кожа, автомобильная краска, углеволокно, металлы и многое другое.

Некоторые из новых материалов.

В заключение

Полный список новшеств, реализованных в этом месяце находится в замечаниях к релизам. Как обычно, исходные файлы всех примеров с этой страницы включены как в Community Edition, так и в PRO-дистрибутив. Не стесняйтесь оставлять свои отзывы на форуме!

Комментарии
26 июл. 2016 18:32
Печаль, что баг к этому релизу не поправили, теперь только через месяц?

Видео: video.mp4

Хотя, если в режиме редактирования менять размеры, то всё норм, так что терпимо.
28 июл. 2016 12:08
Ответ на сообщение пользователя Максим Морозов
Печаль, что баг к этому релизу не поправили, теперь только через месяц?

Видео: video.mp4

Хотя, если в режиме редактирования менять размеры, то всё норм, так что терпимо.
Аудиодорожка в видосе зачот )
28 июл. 2016 12:22
Хотя, если в режиме редактирования менять размеры, то всё норм, так что терпимо.
Не обязательно, можно выставить на объекте Apply Scale and Modifyers и всё будет применяться автоматически или в объектном режиме жать ctlr-a=>Scale после изменений.
28 июл. 2016 12:44
Не обязательно, можно выставить на объекте Apply Scale and Modifyers и всё будет применяться автоматически или в объектном режиме жать ctlr-a=>Scale после изменений.
Не совсем понял, как это решает проблему? video.mp4

Я если честно, уже боюсь работать с частицами )) Вчера два часа настраивал траву, а потом не знаю что сделал, и снова этот баг и ctrl + z не помогает. Ну да ладно, через месяц попробую.
02 авг. 2016 16:43
эффект боке красив но он не размывает отражения. На вашем демо это хорошо видно если присмотреться к лужам. Можно ли добиться все таки правдоподобного "заблюреного" отражения?
02 авг. 2016 18:21
Можно ли добиться все таки правдоподобного "заблюреного" отражения?
Отдельный блюр отражений на объектах в фокусе в реал-тайме слишком требовательный по производительности.
В ближайшем будущем вряд ли будет такая функциональность
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.