От облачных решений к индивидуальности

Меня многие просят поделится впечатлениями о работе с Blend4Web. Эта технология ещё мало популярна среди творческой аудитории, хотя, несомненно, её использование может быть  выгодно. Я все же больше программист и работаю с этим движком для создания сторонних проектов и собственных игр. Но вот его теснейшая взаимосвязь с Blender, легкое создание интерактивности и экспорт в HTML может сослужить хорошую службу простому художнику. Сейчас многие предпочитают использовать Sketchfab или ему подобные сервисы для размещения портфолио. Ведь «живое» 3D смотрится куда эффектнее простых картинок. Однако, эти сервисы устанавливают ограничения на некоторые важные функции. Использование же b4w открывает гораздо большие перспективы, а главное, никак не зависит от сторонних облачных решений.


Есть люди, которые могут создать прекрасную модель, но абсолютно не дружащие с кодом. Наверное, именно этим объясняется популярность онлайновых хранилищ. Вроде бы залил проект и нет проблем (хотя, как все знают, модель нужно будет предварительно «обтесать» для работы в вебе). С другой стороны, такие хранилища всеядны и могут поддерживать большое количество форматов 3D. Работа же с Blend4Web требует знания Blender.

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

С помощью b4w можно быстро, очень быстро экспортировать сцену для веба и получить на выходе готовый файл HTML, который можно разместить в iframe в блоге (это, например, я сделал чуть ниже) или же просто отослать для просмотра заказчику. Важно то, что при экспорте будет присоединен специальный плеер, который имеет все нужные функции для просмотра и промо. Некоторые используют экспортер в WebGl от Unity, но это как «стрелять из пушки по воробьям».

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

Кстати, насчет анимации. Насколько я знаю, Sketchfab позволяет показывать анимацию объекта в своем плеере, но сделано это примитивно. С b4w вы сами можете определить вид и расположение кнопок, привязать к ним конкретную анимацию, т.е. оформить всё как захочется. Писать код для этого совсем не нужно. Достаточно использовать несколько логических нод в редакторе логики. Несомненно, это космос для творчества. В этом случае blend4web индивидуален. Он для каждого свой.

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

Во-первых, вам придется обратить внимание на корректность показа материала в браузере. Если это процедурные текстуры или сложная композиция нод Cycles Render (фотореалистичный рендер из Blender), или вообще настройки сторонних рендеров, то такие материалы не будут отображаться в браузере. С простыми текстурами, normal map, AO и т.д. все нормально. Но есть информация, что разработчики работают над поддержкой нод Cycles и процедурных текстур.

Например, я попробовал просто экспортировать первую попавшуюся сцену, сделанную для фотореалистичного рендера. Результат, как вы видите, очевиден. Все материалы напрочь слетели. Правда mesh остался без изменений. Обратите внимание, я ничего не делал. Открыл сцену в Blender и сразу же экспортировал в HTML.

Слева рендер с помощью yafaray, а справа скриншот из браузера.

Если вы импортируете модель в Blender из другого редактора, то ниже сказанное вас не касается. А вот работающим в Blender стоит кое-что запомнить. При работе часто используются всевозможные модификаторы, меняются пропорции масштаба — в реалтайме это отображаться будет некорректно. В этом случае необходимо применить масштаб объекта (Object | Apply | Scale). А вот с модификаторами всё гораздо проще. Их можно оставить как есть, но в настройках Blend4Web следует включить автоприменение при экспорте.

На скриншоте ниже видно, что отмечены две опции. Первое — выбор Blend4Web в качестве движка рендера. Без этого не появятся дополнительные настройки b4w в панелях Blender. Второе — как раз сама опция «применения».

Чтобы не быть голословным, я решил провести небольшой опыт. Взял на сайте blendswap первую попавшуюся модель (правда смотрел, чтобы была с обычными текстурами, а не нодами) и попробовал экспортировать в html. То, что получилось — в окне внизу. Единственное, что я сделал, это включил Apply Modifiers (как на скриншоте выше), удалил немереное количество источников света и добавил камеру.

Работает!

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


P.S. Наверное, следовало бы остановиться на установке Blend4Web в Blender. Но эта операция настолько проста, что об этом и не стоит рассказывать подробно.

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


0
RENDER.RU