Вопрос-Ответ

Общие вопросы Коммерческая лицензия Версия с длительным периодом поддержки (LTS) Открытая лицензия Производительность Рабочий процесс Blender Программирование и функционал
Общие вопросы
Что такое Blend4Web?

Blend4Web - это движок нового поколения, созданный, чтобы обеспечить потребности современного интернета в трёхмерной графике. Ключевые особенности: Web как целевая платформа, не требует установки плагинов, поддержка физики и аудио, открытый код + коммерческая лицензия, интеграция с пакетом Blender. С возможностями фреймворка можно ознакомиться на странице демонстрационных приложений. Подробное описание функционала фреймворка изложено в руководстве пользователя.

Какие специалисты нужны, чтобы создавать 3D веб-решения на основе Blend4Web?

Вам нужен 3D художник, желательно (но не обязательно), работающий в программе Blender - популярном открытом пакете 3D моделирования. Большая часть работ по подготовке 3D приложений может быть выполнена без необходимости написания программного кода.

Созданная 3D графика может быть размещена на сайтах. Для этого не требуется специальных знаний, работа может быть выполнена веб-мастером (см. пример).

Для разработки сложных интерактивных приложений или игр вам понадобится программист с опытом веб-разработки (в т.ч. подойдут безработные Flash-программисты) или работы с игровыми движками.

Это что, все полностью бесплатно? У бесплатной версии есть какие-нибудь ограничения?

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

Unity и Unreal скоро будут поддерживать WebGL, зачем нужен ваш движок?

История учит нас, что крупные компании зачастую не успевают следовать за изменениями технологий, поскольку груз разработанных ими решений не позволяет им быстро адаптироваться к новым условиям. Производители известных игровых движков до сих пор рассматривают Web как одну из возможных платформ, эквивалентную по своей сути всем остальным. Однако мы не можем согласиться с таким подходом, для нас Web-платформа является приоритетной и единственной - код движка написан на оптимизированном JavaScript, что делает его компактным и производительным.

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

Мы интегрировали движок с популярным и открытым инструментом подготовки 3D контента Blender. Тем самым мы устранили избыточные стадии рабочего процесса, связанные с доводкой сцен и настройкой материалов под конкретный движок.

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

Да, но Unity и Unreal стали бесплатными, зачем мне покупать ваш продукт?

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

Blend4Web имеет бесплатную версию, причем она распространяется по принципам открытого программного обеспечения (GPL). Наша среда разработки изначально создавалась для работы в экосистеме Linux, процесс производства полностью исключает необходимость в каких-либо закрытых и/или платных решений. В то же время мы не навязываем использование исключительно открытых компонентов.

Наша бизнес-модель прозрачна и не предполагает покупку недостающих компонентов после приобретения лицензии.

Для российских пользователей: исключаются риски в связи с политической или экономической ситуацией в мире. Документация и тех. поддержка на русском языке.

Это что, еще одна инкарнация веб-вьюеров P3D.in или Sketchfab?

Наш инструмент принципиально от них отличается: мы не привязываем пользователей к каким-либо веб-сервисам. Приложения и сцены, созданные с помощью Blend4Web, могут быть размещены на страницах собственных сайтов пользователей. В качестве еще одного удобного варианта распространения 3D контента мы предлагаем также возможность экспорта сцены в единственный самодостаточный HTML-файл.

У меня (у моей компании) имеется задумка интересного 3D веб проекта. Поучаствуете в разработке?

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

В особых случаях, в качестве исключения, мы можем рассмотреть партнерские отношения с вами.

Как мне получить помощь в разработке своих приложений?

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

Коммерческая лицензия
Что я получаю, покупая коммерческий SDK?

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

На скольких компьютерах можно устанавливать один дистрибутив Blend4Web PRO?

Коммерческая лицензия привязывается к индивидуальному разработчику и не налагает ограничений на количество машин.

Какова политика обновлений, сколько это стоит?

За обновления коммерческого дистрибутива SDK дополнительная плата не взимается, при условии действительности технической поддержки. Стоимость базовой технической поддержки входит в состав стоимости лицензии. Базовая техническая поддержка осуществляется в течение 1 года после приобретения лицензии, далее пролонгируется по согласованию сторон.

За коммерческую лицензию взимается единовременная плата или каждый год?

Коммерческая лицензия постоянная, плата взимается один раз из расчета на каждого вовлеченного разработчика лицензиата. Один разработчик может быть заменен на другого раз в 6 месяцев.

Я разрабатываю приложение для заказчика, и по окончании проекта передам ему исключительное авторское право. Кто из нас должен купить коммерческую лицензию?

Коммерческая лицензия предоставляет право, во-первых, разрабатывать, во-вторых, распространять приложения на основе Blend4Web. Таким образом, как разработчик, так и заказчик обязаны приобрести коммерческую лицензию.

Наша студия купила коммерческие лицензии и разработала с помощью Blend4Web контент для размещения на сайте заказчика. Нужно ли заказчику покупать лицензию Blend4Web?

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

Наша компания собирается нанять фрилансера для разработки Blend4Web контента. Обязан ли фрилансер иметь лицензию?

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

Версия с длительным периодом поддержки (LTS)
В чём разница между LTS-версией и текущей версией Blend4Web PRO?

Разработка Blend4Web ведётся очень быстро, каждый месяц добавляется множество новых функций. Частые релизы позволяют адаптировать фреймворк к постоянно изменяющимся условиям, диктуемым прогрессом Интернет-технологий, а также своевременно реагировать на запросы пользователей.

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

Для обеспечения стабильности и предоставления корректирующих обновлений пользователям предлагается версия с длительным циклом поддержки (long-term support, LTS). Обновления этой версии не нарушают совместимости, благодаря чему приложения можно без затруднений поддерживать в течение продолжительного периода времени (а именно в течение 1 года). Использование данного канала обновлений гарантирует пользователям бесперебойную работу в случае любых изменений в поведении браузеров, драйверов видео-карт, операционных систем и т.п., а также на новейших мобильных устройствах.

В каких случаях мне следует использовать версию Blend4Web PRO LTS?

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

Тем не менее, поддержка приложения после его релиза значительно упрощается при использовании обновлений из канала LTS, т.к. такие версии совместимы между собой. При использовании LTS-версии исключается необходимость в ревизии и коррекции программного кода и 3D сцен приложений до истечения цикла поддержки.

Открытая лицензия
Я использую бесплатный дистрибутив Blend4Web. Необходимо ли мне размещать исходные файлы моих моделей в открытом доступе? Ведь Blender тоже лицензируется под GPL, и созданные в нем файлы принудительному открытию не подлежат.

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

В случае воспроизведения экспортированных файлов стандартным веб-плеером Blend4Web (в виде раздельно загружаемых JSON-файлов, но не в виде самодостаточных HTML-файлов), распространение исходных файлов сцен по GPL не обязательно.

Что будет, если я изменю интерфейс веб-плеера (например, удалю/заменю логотип)?

Вы имеете на это право. Однако, в случае использования открытой версии движка, это означает, что вы соглашаетесь со всеми условиями General Public License (GPL) и обязаны опубликовать в открытом доступе код модифицированного веб-плеера. В случае использования коммерческой версии движка Вы можете делать с веб-плеером все, что пожелаете.

Если я использую бесплатный Blend4Web на моем сайте, от меня требуется опубликовать код всего сайта? Даже серверную часть?!

Одним из условий лицензии GPL является требование раскрытия кода публично распространяемых производных продуктов. В случае сайта, нами будет проведено обоснованное исследование на предмет того, насколько важными для работы компонентов на основе Blend4Web являются прочие компоненты сайта (включая серверные). Если они не являются важными, т.е. компоненты на основе Blend4Web могут работать отдельно от них, требование раскрытия их исходного кода предъявляться не будет.

Производительность
Почему демо-приложения с сайта так сильно тормозят (вариант: ULTRA показывает 3-4 FPS на моем ноутбуке/телефоне, еще вариант: графика уровня YYYY года, при этом нагружает систему на все 100)?

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

Возможность отображения 3D графики в браузерах имеет определенную цену. В отличие от технологий консольных и десктопных игр, технология WebGL основана на мобильных API OpenGL ES 2.0 (уровень DirectX 9). Имеются также дополнительные ограничения, связанные с необходимостью обеспечения безопасности в браузерах. Также, JavaScript (скриптовый язык программирования, на котором написан рендерер движка) уступает по производительности компилируемым языкам. Поэтому, как правило, приложения на WebGL работают медленнее, чем их аналоги для настольных компьютеров или игровых консолей.

Несмотря на все сказанное, производительность работы движка и производительность работы самих реализаций WebGL и JavaScript имеет неуклонную тенденцию к повышению со временем.

Что касается режима ULTRA — он предназначен для получения максимально возможного качества изображения при запуске на высокопроизводительных машинах.

Долго загружается демо-сцена с сайта.

Крупные демо-приложения загружают за раз большой объем данных (Ферма — более 120 Мб). Поэтому при первой загрузке и при использовании низкоскоростных каналов связи старт приложений может занимать длительное время. Мы постоянно работаем над ускорением процесса загрузки.

Рабочий процесс
Демо-сцена с сайта не загружается, сколько времени ни жди (вариант: на экране неправильное изображение).

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

Зачем нужен просмотрщик из SDK, если в нём невозможно ничего сохранить?

В просмотрщике сцен удобно настраивать параметры сцены в реальном времени, после чего эти параметры можно перенести в соответствующий blend-файл для «постоянного» хранения. Кроме того, в нем показывается отладочная информация по сцене, а в JavaScript-консоли (открывается при нажатии F12) выводятся лог сообщений движка, предупреждения и ошибки. Многочисленные модели и промежуточные сборки сцен крупных проектов могут быть размещены в виде каталога для быстрого просмотра и проверки.

HTML-файл с моей сценой не загружается или на экране неправильное изображение. В то же время ваши демо у меня работают.

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

В сцене отсутствуют тени, отражение и другие эффекты.

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

Почему в движке объект имеет неправильные пропорции/размер?

Масштабирование (scale) объектов должно иметь одинаковые значения по всем 3 координатным осям XYZ. Кроме того, scale для физических объектов не поддерживается. Масштабирование может быть применено к мешу объекта с помощью команды Apply Scale (Ctrl-A), а также автоматически при экспорте, если включена опция Apply Scale в свойствах объекта (с версии 14.09).

Blender
Что мне делать, если я работаю в 3ds Max/Maya и не хочу переучиваться на Blender?

Интеграция движка с программой Blender ни в коей мере не препятствует использованию других пакетов моделирования. Вы всегда можете перенести модель в Blender с помощью совместимых форматов, например OBJ или COLLADA. В последнем случае можно использовать даже анимацию.

Когда будет поддержка визуального редактора логики из BGE?

Blend4Web не является портом Blender Game Engine, имеет отличные от него API и функциональность. Тем не менее, наша команда осознает важность наличия инструмента для визуального редактирования логики приложений. Начиная с версии 14.09, в движке имеется возможность добавления простой интерактивности в сцены с помощью интерфейса Blender'а, без необходимости написания кода.

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

При установке аддона возникает сообщение, что он не совместим с моей операционной системой (у меня Windows 7 x64).

Эта странная ошибка возникает у некоторых наших пользователей. Мы ищем возможность воспроизвести ее на наших машинах. Тем временем, рекомендуем установить 32-битную версию Blender.

Что мне делать, если при экспорте появляется окно с непонятным сообщением?

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

Почему не поддерживаются материалы рендерера Cycles? Что делать, если у меня много таких объектов?

Рендерер Cycles не предназначен для работы в реальном времени, т.к. им используются алгоритмы трассировки лучей. Тем не менее, имеющиеся в наличии материалы Cycles могут быть «запечены» в текстуры с целью дальнейшего использования в обыкновенных материалах. С другой стороны, поддерживаемые платформой Blend4Web шейдерные узлы («нодовые» материалы) достаточно производительны для приложений реального времени и в то же время позволяют достичь качества, близкого к фотореалистичному.

Тем не менее, учитывая большое количество уже существующего контента для Cycles и многочисленные запросы со стороны сообщества, мы приняли решение инициировать работу по поддержке материалов Cycles в Blend4Web. Подробнее.

Программирование и функционал
JavaScript слишком медленный язык, а его конструкции не годятся для написания серьезных приложений.

Множество мнений, сформировавшихся в эпоху становления JavaScript как полноценного языка, сегодня не выдерживают критики. Современный JavaScript — это высокопроизводительный язык, который подходит для создания любых продуктов, от серверных фреймворков до мобильных приложений. Браузерные движки реализуют оптимизации, вплотную приближающие JavaScript к производительности Java и С#. При соблюдении определенных правил написания кода, нагрузка на сборщик мусора, который может вызывать задержки выполнения кода, может быть сведена к минимуму.

Мы не пытаемся сделать из JavaScript новый язык программирования, мы также не используем классы - вместо этого практикуем модульный подход в стиле CommonJS и строгую типизацию. Также нами подготовлена инфраструктура для минификации кода движка и приложений с помощью средств Closure Compiler.

Я пытаюсь переместить/повернуть объект с помощью API движка, но он остается неподвижным.

Объекты должны быть динамическими, чтобы их можно было перемещать с помощью API, либо в их свойствах должна быть активирована опция Force Dynamic Object. Подробнее в руководстве пользователя.

Можно ли с помощью Blend4Web создавать приложения для Android/iOS?

Blend4Web работает в стандартных браузерах на всех операционных системах и устройствах, включая мобильные. Тем не менее, если имеется необходимость создания нативных трехмерных Android и iOS приложений, можно воспользоваться компонентом WebView, который предназначен для интеграции веб-контента в приложения для мобильных устройств и поддерживает WebGL.

Изменения

[2014-09-16] Первоначальная версия.

[2014-10-29] Изменения в связи с запуском форума и отказом Unigine от поддержки WebGL.

[2014-11-13] Добавлены ответы на шесть вопросов.

[2014-11-19] Добавлены ответы на три вопроса.

[2014-12-29] Дополнен ответ на вопрос по BGE.

[2015-03-05] Добавлен ответ на вопрос по "бесплатным" Unity и Unreal.

[2015-09-14] Обновлены ответы по Cycles и использованию API для перемещения объектов.

[2015-10-14] Уточнены вопросы по использованию бесплатного Blend4Web.

[2016-02-18] Раздел лицензирования разделен на два раздела. Добавлены два вопроса в раздел коммерческого лицензирования.

[2016-04-25] Убран вопрос по виртуальной реальности, т.к. Blend4Web поддерживает HMD устройства (Oculus Rift, Cardboard) с версии 15.12.

[2016-10-10] Добавлен раздел по версии LTS.

[2016-11-30] Дополнен ответ на вопрос по Cycles.