Релиз Blend4Web 15.07
2015-07-29
Представляем вниманию наших пользователей очередной релиз Blend4Web - открытого фреймворка для 3D визуализации в Интернет. В версии 15.07 мы реализовали мягкие частицы, поддержали процедурные маски прозрачности в нодовых материалах, существенно ускорили загрузку сцен и добавили множество других улучшений.
Мягкие частицы
Системы частиц широко используются для визуализации движения множества мелких рассеянных объектов, будь то извержение вулкана, брызги от водопада или волшебная пыльца фей. С целью оптимизации в графике реального времени в системах частиц обычно используются поворачивающиеся к наблюдателю полупрозрачные плоскости - билборды. Пересечение этих плоскостей с «твердыми» поверхностями может приводить к проявлению видимых границ, и, таким образом, разрушать иллюзию текучей среды. С сегодняшнего дня в Blend4Web поддерживаются так называемые мягкие частицы, билборды которых плавно растворяются при соприкосновении с поверхностями.
Выше продемонстрирована работа систем частиц дыма и огня: слева - «мягкость» выключена, справа - те же самые системы частиц с включенной «мягкостью».
Чтобы частицы стали «мягкими», достаточно включить опцию Soft Particles на панели Render в настройках системы частиц. С помощью слайдера Particle Softness настраивается степень проявленности этого эффекта.

Настройка «мягкости» системы частиц в Blender.
Прозрачность и ноды
Функциональность нодового редактора материалов существенно расширена для случая использования типа прозрачности Alpha Clip (отсечение по значению альфа). Ранее поддерживались только текстурные маски, которые, к тому же, приходилось помещать в текстурные слоты прозрачного материала вместо того, чтобы использовать стандартную ноду Texture. В результате проведенной работы стали возможными ранее недоступные способы создания прозрачных нодовых материалов.
Полученные с помощью математических операций процедурные маски могут подаваться на вход Alpha для вырезания участков поверхности любой формы, причем маски могут быть анимированными. Еще один способ применения: нода Camera Data может использоваться для реализации плавного растворения с расстоянием, например, билбордов травы.

Использование входа Alpha для подключения процедурно-генерируемой маски.
Нодовый редактор материалов работает и с другими типами прозрачности (Alpha Sort, Alpha Blend, Add).
Оптимизации
Удобный и мощный инструмент для визуального конструирования материалов реализуется «под капотом» Blend4Web с помощью т.н. препроцессора. Препроцессор выполняет анализ исходного кода шейдеров и преобразует его в GLSL-код для выполнения на видео-карте. Он состоит из нескольких систем, среди которых особенно важное значение имеет вычислитель директив (типовой шейдер может включать сотни директив). Теперь, вместо автоматически генерируемого кода парсера-вычислителя, используется гораздо более производительное и простое решение. Это позволило значительно сократить время обработки шейдеров (до десяти раз), а время загрузки насыщенных материалами сцен сократилось почти вдвое.

Просмотр сцены в приложении Viewer. Нажмите для увеличения.
Также в результате оптимизации значительно увеличена скорость работы приложения Viewer - каталога, предназначенного для быстрого просмотра и настройки экспортированных сцен.
Настройки отражений
Добавлена возможность настройки качества динамических отражений. С помощью этой опции можно управлять соотношением «качество-производительность» в зависимости от способа применения - для ровных зеркальных поверхностей требуется большее качество отражающегося изображения, чем, например, для волнистой поверхности моря. Опция работает как для планарных, так и для кубических отражений.

Меню выбора качества динамических отражений.
Также была упрощена настройка планарных отражений - если в поле Reflection Plane не выбран объект для указания положения плоскости отражения, вместо него движок будет использовать сам отражающий объект. Таким образом, в случае совпадения плоскости отражения с отражающей поверхностью более нет необходимости добавлять пустой объект.

Плоскость отражения совпадает с поверхностью реки - добавлять пустой объект не требуется.
Перевод интерфейса на русский язык
Нами была реализована возможность перевода интерфейса на другие языки. В настоящий момент мы перевели интерфейс Blend4Web на русский язык.

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

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

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

Главная страница SDK, открытая внутри локальной сети.
Для использования этой функции необходимо в настройках аддона включить опцию Enable External Requests.

Расположение опции Enable External Requests в настройках аддона.
Каустика на воде теперь подключается с помощью опции Caustics на панели материала Water. Текстуры типа Voronoi, которые использовались для этого, более не поддерживаются.

Расположение опции Caustics на панели материала.
Для удобства настройки режима парящей камеры (тип Hover) появился параметр Zero Level, с помощью которого можно установить начальную высоту камеры.

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