Blend4Web 14.09
2014-09-26
Мы рады представить сообществу и партнерам новую версию фреймворка Blend4Web 14.09. В этом релизе мы подготовили самый значительный объем функционала начиная с момента выпуска первой версии полгода назад. Все это время мы наблюдаем устойчивый рост интереса пользователей к нашему продукту, что подтверждает правильность заложенных в него принципов. Сегодня становится очевидным, что ставка на открытость, независимость от облачных сервисов и использование свободных инструментов полностью себя оправдывает.
Визуальный редактор логики
На протяжении всего периода после первого релиза мы получали от сообщества отклики касательно имеющегося функционала Blend4Web. Одной из наиболее часто запрашиваемых сообществом - и отсутствующих - функций являлась возможность реализации интерактивности без необходимости написания кода. Сегодня в качестве первого шага в направлении создания визуального редактора логики мы представляем новый инструмент - NLA Script.
Как следует из названия, этот редактор основывается на встроенном в Blender редакторе нелинейной анимации (NLA). Этот редактор предназначен для манипуляции и синхронизации всех анимированных объектов на сцене, поддерживает воспроизведение аудио и эффекты частиц. Мы реализовали возможность добавления интерактивности с помощью интерфейсных блоков, содержащих описание действий в ответ на действия пользователя. Единственным поддерживаемым в настоящее время действием пользователя является нажатие мышью на заданных 3D объектах. В качестве ответа возможны проигрывание треков NLA с определенного кадра (задаваемого маркером) - Select, или переход к другому блоку - Jump.
С целью демонстрации открывающихся новых возможностей мы представляем интерактивную инфографику - презентацию вертолета Ми-34. Помимо традиционной для наших последних демо-сцен фотореалистичной графики, достигаемой нашими художниками с помощью визуального редактора шейдеров, в этом приложении впервые был задействован, - также художниками, - визуальный редактор логики.
Среди других возможных применений этого простого, но эффективного инструмента можно перечислить следующие: интерактивный 3D веб-дизайн, презентации продуктов, обучающие материалы, мультфильмы с возможностью выбора сюжетной линии, игры жанра point-and-click и любые другие приложения, которые ранее обычно создавались с помощью технологии Flash.
Тени
Значение падающих теней для восприятия изображения сложно переоценить. Тени предоставляют зрителю не только информацию о силуэте объектов, но и об их высоте и взаимном расположении, положении источника света и т.д. Система отрисовки теней, которая оставалась неизменной на протяжении долгого времени, в этом релизе совершила качественный скачок.
Для отрисовки теней на значительных пространствах в Blend4Web применяется методика каскадных карт теней (cascaded shadow maps, CSM). В этом релизе мы упростили настройку границ каскадов, реализовали плавные переходы между ними, а также добавили поддержку плавного исчезновения последнего каскада с расстоянием.
Смягченные тени не только выглядят более выразительно, но и скрывают неизбежную при использовании основанных на изображениях техник зубчатость краев. В этом релизе для отрисовки смягченных теней задействована техника percentage-closer filtering (PCF). Степень размытия теней может быть установлена отдельно для первого и последнего каскадов и автоматически интерполируется для остальных. Мы также реализовали поддержку смягченных теней для прозрачных объектов.
И наконец, мы реализовали настройки для более эффективной борьбы с нежелательными артефактами самозатенения, которые проявляются, если объект одновременно отбрасывает и принимает тени. Также появилась возможность устанавливать размер карт теней.
Анимация
Чтобы скрыть резкий переход при переключении анимаций (например, персонаж бежал и внезапно остановился) ранее требовалось вручную создавать анимации соответствующих переходов. Теперь это в прошлом - мы реализовали API, с помощью которых Blend4Web осуществит смешивание анимаций автоматически.
К ряду видов анимации, поддерживаемых Blend4Web, в этом релизе добавился еще один - теперь имеется возможность анимировать значение ноды Value в нодовых материалах. Более того, поддерживается наличие нескольких анимированных нод Value в одном материале. Новая функциональность позволяет произвольным образом изменять практически любые характеристики материала в реальном времени. Анимация нод Value может быть также использована в редакторе нелинейной анимации, что позволяет управлять процессом по воздействию со стороны пользователя - например, по щелчку мыши интересным способом заменить камуфляж обшивки вертолета на другой.
Другие возможности
Активная позиция наших пользователей помогает нам добавлять и улучшать функционал движка. В частности, по просьбе наших пользователей мы добавили поддержку физики в стандартный веб-плеер (для варианта c раздельной загрузкой JSON-файлов). Кроме того, в веб-плеер добавлена возможность сокрытия панели управления. Также по запросу пользователей мы реализовали функцию автоматического применения масштаба к мешу объекта при экспорте.
Мы расширили функциональность нодового редактора, добавив несколько новых нод. В частности, нода LEVELS_OF_QUALITY позволяет художнику контролировать поведение материала при различных профилях качества. Повторное использование блоков нод теперь возможно благодаря поддержке нодовых групп. Теперь возможно отображать определенные прозрачные объекты поверх всех остальных (например, с целью нанесения меток на модели).
Blender
В завершение мы хотели бы отметить начало работы наших программистов в проекте Blender. В этом месяце в репозиторий кода этого замечательного открытого инструмента был принят первый патч, корректирующий поведение бликов на прозрачных участках поверхности. Мы надеемся углублять и расширять наше взаимодействие с командой разработчиков и сообществом проекта Blender.