События

Релиз Blend4Web 16.08

2016-08-31

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

Тангенциальное освещение

Появилась поддержка опции Blender Tangent Shading. Она может применяться для имитации анизотропных поверхностей, таких, как волосы или полированный металл.

Опция Tangent Shading расположена на панели Material.

Как и в самом Blender, для того, чтобы этот эффект выглядел хорошо, требуется меш с довольно большим количеством полигонов, так что используйте его аккуратно. Обратите внимание на вытянутый блик в примере ниже.

Оптимизация

Как известно, «преждевременная оптимизация — корень всех зол». Но поскольку на сегодняшний день набор возможностей Blend4Web представляется нам достаточно полным и зрелым, мы намерены потратить некоторое время на оптимизацию и ускорение работы движка.

«Узкие места» при рендеринге графики могут возникать по разным причинам. В этом релизе мы сосредоточились на оптимизации процессорной части и уменьшении количества инструкций, генерируемых JavaScript-движками, в наиболее важных участках программного кода. Кроме того, для снижения нагрузки на процессор и уменьшения количества вызовов API WebGL мы применили так называемые Vertex Array Objects (предоставляются расширением WebGL OES_vertex_array_object). Результатом наших усилий стал серьёзный рост производительности, достигающий 50% в конфигурациях, зависящих от CPU.

Браузерный профайлер CPU.

Следует заметить, что оптимизации также подверглись просмотрщик сцен и оффлайновый компилятор шейдеров, что наверняка понравится опытным пользователям Blend4Web. Кроме того, появились новые консольные утилиты для сжатия PNG-файлов и улучшена минификация кода шейдеров, что поможет уменьшить время загрузки 3D-приложений.

Редактор нормалей

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

Обновлённый редактор нормалей. Слева — режим Absolute, справа — новый режим Offset.

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

Кроме того, кнопка Average Split переименована в просто Average и теперь работает также и для неразделённых нормалей. И последнее: появилась возможность задать ось вращения и угол поворота при помощи цифровых клавиш. Для этого достаточно нажать Ctrl-Shift-R, а затем, например, X и 90, т.е. точно так же, как при повороте объекта.

Нода Normal Map

Некоторое время назад разработчики из команды Blend4Web портировали из системы рендеринга Cycles в GLSL-рендерер вьюпорта Blender эту чрезвычайно полезную ноду.

Нода Normal Map находится в подменю Vector.

Нода поддерживает карты нормалей в тангенциальном, объектном и мировом пространствах координат, а для тонкой настройки эффекта располагает параметром Strength.

Стандартный нодовый материал с использованием ноды Normal Map.

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

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

Просмотрщик сцен

Панель Tools & Debug теперь находится на втором сверху месте в списке панелей. Кроме того, на эту панель добавлена кнопка для включения так называемого «режима минимальных возможностей». При включении этого режима движок начинает работать так, как если бы он был запущен на системе с низкой производительностью, и окрашивает всё, несовместимое с такой системой, малиновым цветом. Это позволяет проверить, какие части сцены не будут работать, например, на старых моделях iPhone без необходимости запускать сцену на реальном устройстве.

Материал воды слишком сложный и не будет работать на устройствах под управлением iOS. Это следует исправить.

Скрытые объекты

На первый взгляд, это незначительное нововведение, но и оно может сделать жизнь проще: теперь объекты могут быть скрытыми при запуске сцены. Это позволяет, например, использовать логическую ноду Show Object или соответствующий метод API сразу после загрузки, без применения различных фокусов вроде анимации или перемещения объектов из «поля зрения» камеры.

Этот куб не будет виден после запуска приложения.

WebGL 2.0

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

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

Как и было обещано, появилось несколько новых настроек эффекта боке. Теперь эффектом проще управлять, и выглядит он лучше. Кроме того, рендеринг отражения World теперь включен по умолчанию. Новые настройки показаны на изображении ниже.

Опция отражения окружающей среды и настройки боке.

Появилось несколько новых методов API, с помощью которых можно управлять цветом и энергией источников света. А метод analyze_shaders теперь выводит низкоуровневый ассемблерный код, что полезно для оценки и оптимизации шейдеров (на данный момент эта возможность доступна только для Linux и Android).

В завершение

Релиз совместим с Blender 2.77. С полным списком изменений и исправлений вы можете ознакомиться в замечаниях к релизам. Исходные файлы всех примеров из этой статьи включены как в Community Edition, так и в PRO-дистрибутив.

Комментарии
31 авг. 2016 16:41
Сокрытие объекта это то что я ждал очень давно. Отличный релиз.

WebGL2.0 значит ли это что в b4w придут тесселяция, Compute shaders и что там еще.
И мы наконец то приблизимся к графике Crysis и Ue4.
31 авг. 2016 17:55
СПАСИБО попробую на слабом девайсе как раз сегодня !
01 сен. 2016 14:44
Новая фича для редактора нормалей рулит

07 сен. 2016 15:24
WebGL 2.0

По мотивам этого видео - что представители blend4web думают насчёт формата glTF?
07 сен. 2016 23:03
Ответ на сообщение пользователя v1vendi
WebGL 2.0

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