Pull to refresh

Comments 39

Очень хороший обзор! Насчет недостатков Blend4Web — мы их видим и будем постепенно от них избавляться.
Open Sources под лицензией GPL.


и

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


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

Ничего не мешает. Открывайте все исходники коммерческого проекта под GPL, наши пользователи будут вам благодарны.
Так у вас же не Affero GPL, используя в своих коммерческих веб-проектах я не обязан никому предоставлять исходные коды. Ваши пользователи не смогут получить никакой выгоды. Или я не прав?
Разница в том, что у нас клиентский фреймворк, а это значит, что вы будете распространять наше решение в составе вашего, а не просто использовать как программу. Т.е. исходные коды должны быть также предоставлены пользователям. Если же имеется сцепка с серверной частью (например, каталог какой-нибудь для онлайн-магазина с возможность конфигурации товара), то потребуется открывать также и её.

Тут принцип простой — если приложение может работать отдельно от других частей, то их открывать не надо. Если без них не работает — то они часть приложения и «заражаются» GPL.
При экспорте Unity проекта в WebGL на выходе получаем несколько папок. Размер билда лучше оценивать по размеру папки Compressed. Собственно по вашей ссылке демка весит порядка 19 мегабайт. Это конечно все равно многовато, но все же не 142)
Спасибо, я в тексте подправлю.
Действительно, так стало намного лучше. Теперь 3D баннеры на Юнити будут весить «всего» по двадцать метров.

Кстати, 1.8 Мб это много для B4W. Есть опция экспорта в JSON+BIN, в результате чего сцены весят в 1,5 раза меньше. Конечно же, gzip поможет и в нашем случае (что у Юнити называется compressed), JSON жмется в 8 раз, BIN в 2 раза — все настраивается на сервере, без лишних телодвижений при экспорте.
Действительно, так стало намного лучше. Теперь 3D баннеры на Юнити будут весить «всего» по двадцать метров.

Я вроде так и написал — многовато. Более того, делать сейчас что-либо на Unity WebGL — не самая удачная идея. Там действительно достаточно много багов, и не все возможности Unity поддерживаются. Также не забывайте, что это пока только Preview опция экспорта и не известно как там будут обстоять дела в релизной версии.
Я вроде так и написал — многовато. Более того, делать сейчас что-либо на Unity WebGL — не самая удачная идея. Там действительно достаточно много багов, и не все возможности Unity поддерживаются. Также не забывайте, что это пока только Preview опция экспорта и не известно как там будут обстоять дела в релизной версии.

Помним, поэтому не расслабляемся :)
Боюсь 3D баннеры и по 1 МБ долго не проживут.
Боюсь 3D баннеры и по 1 МБ долго не проживут.


См. интерактивный header у нас на сайте. И таких уже много по интернету.
У Blend4Web с FPS определённо беда, так что я бы не был так однозначен.
Я сначала тоже так посчитал, а потом внимательно присмотрелся. По умолчанию Blend4Web проигрывает сцену в высоком качестве, а Unity, наоборот, в низком. Если в плеере Blend4Web переключить на Low, то проблема снимается (щелкнуть по кнопке настройки, затем по кнопке «H» и выбрать из списка «L» (low)).
Не сказать, чтобы я заметил разницу между низким качеством в юнити и высоким в бленде.
Впрочем, в бленде я тоже разницы между высоким качеством и низким тоже не заметил.

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

И FPS всё равно ниже визуально.


FPS можно увидеть, если добавите параметр show_fps к URL веб-плеера, например,

prandgames.com/share/trdd_blend4web.html?show_fps

Чтобы запустить браузер без вертикальной синхронизации, и снять таким образом ограничение в 60 FPS, используйте — в случае Chrome — параметр командной строки --disable-gpu-vsync

Blend4Web дает у меня 650 FPS (GTX 780, Ubuntu 14.04, драйверы Nvidia 331.113, 1920x1200)
В случае с Unity у меня падает вкладка браузера после 3 минут загрузки, ничего сказать не могу.

На слабых машинах, типа Intel 4400, Windows 7, выдает более 30 FPS на том же разрешении.
Blend — 10 и 25-30 FPS, соответственно.
Unity — ?show_fps не работает

Core i7-2600, 8Gb, GeForce 210 + Intel HD, Win 7 Ent
Нет проблем прикрутить счетчик к проекту unity, но я так и не смог заставить плеер показывать картинку с более высоким качеством, хотя бы на уровне blend4web. Даже на максимальном уровне «fantastic» выставляемый в Quality Setting, визуально ничего не изменяется. Полное ощущение, что экспорт всегда выполняется с самыми низкими настройками.
Core i7-2600, 8Gb, GeForce 210 + Intel HD, Win 7 Ent

Вполне предсказуемый результат для такого железа. Но это слабая отговорка, конечно. В каждом новом релизе мы стараемся сделать что-нибудь в плане оптимизации, чтобы работало быстро на любом железе.
Я пока вижу одно — несмотря на «такое железо» и зубчатые тени, unity работает в любом браузере одинаково, а не только в хроме на мощном железе.

P.S. это рабочий компьютер, ясен пень, от видеокарт требуется только 3 монитора поддерживать.
Я пока вижу одно — несмотря на «такое железо» и зубчатые тени, unity работает в любом браузере одинаково, а не только в хроме на мощном железе.

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

На месте Юнити я бы серьёзно подумал о полноценном порте движка на JavaScript, вместо того, чтобы компилировать огромный десктопный движок через Emscripten. Очевидно, что идеи универсализма здесь не работают.
Если вы имеете в виду пример с турбиной — то там хитро частота вращения ложится на текущий fps и получается эффект стробоскопа.
У меня лично в бленде на Low картинка работает без тормозов, на high — да, бывает подзаедает.

Насчет качества. Я лично заметил следующее:
  • В плеере unity видны резкие зубцы теней, в бленде они сглажены
  • Картинка плеера unity резко отличается от той, что показывает editor. Особенно это заметно в прозрачных областях. Это можно заметить по скрину внизу (слева — editor, справа — firefox).



Если к этому прибавить картинку бленда, то она больше будет похожа на левый (редакторский) вариант.

Все-таки предлагаемый экспорт webl от Unity вызывает пока много вопросов. Почему по разному работает камера (масштаб) в хроме и firefox? Почему не работает кириллица, когда тот-же стандартный вебплейер Unity все показывает? Ну сыроват еще экспорт от юньки.
Такое ощущение, что у вас Anti Aliasing выключен. Попробуйте удалить все лишние профили качества и оставить только один, в котором установите АА на 8x. Также проверьте, что в настройках плейера опция Rendering Path имеет значение Forward.
По поводу теней — это действительно проблема. Частично решается путем запекания.
Такое ощущение, что у вас Anti Aliasing выключен. Попробуйте удалить все лишние профили качества и оставить только один, в котором установите АА на 8x.

В WebGL нет возможности настраивать MXAA. В принципе, это можно реализовать через супер-сэмплинг, но это крайне медленно.

По поводу теней — это действительно проблема. Частично решается путем запекания.

А если нужны динамические тени? От вращающихся частей. А еще можно делать очень реалистичное видео в 4K, тогда и реалтаймовые движки не понадобятся :)
В WebGL нет возможности настраивать MXAA. В принципе, это можно реализовать через супер-сэмплинг, но это крайне медленно.

Я имею ввиду включить АА в юнити, как это потом транслируется в WebGL — другой вопрос.

А если нужны динамические тени? От вращающихся частей. А еще можно делать очень реалистичное видео в 4K, тогда и реалтаймовые движки не понадобятся :)

Я вроде и не говорил, что это решение проблемы. Более того — так и написал, что это действительно проблема. Будет ли она решена разработчиками юнити или нет — я не знаю, но пока можно сгладить данный недостаток запеканием теней, а динамические — видимо оставить как есть.
Я имею ввиду включить АА в юнити, как это потом транслируется в WebGL — другой вопрос.

Волшебник пусть сделает?

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

Можно подождать лет 10, когда Юнити, наконец, сделает нормальную поддержку WebGL, да и компьютеры станут мощнее. А можно и не ждать.
Волшебник пусть сделает?

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

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

Я лишь хочу заметить что сравнение движков в данной статье имеет определенные неточности (размер в 146мб, настройки графики, шейдеров, зумминга и т.д.) и хотелось просто обратить на это внимание пользователей, которые будут читать данную статью.

Вы абсолютно не правильно меня поняли. Я за конструктив и за доброжелательные отношения со всеми. Критику мы уважаем, слышим и учитываем.
Я конечно понимаю, что проект для его создателя самый лучший, но тут сравнение «пробы пера» разработчиков Unity (возможно функционал сделанный за пару недель, отсюда и emscripten) и проекта который только под это заточен и пишется больше года.

Соглашусь с Qwin, что пока эти продукты сравнивать некорректно.
Я конечно понимаю, что проект для его создателя самый лучший, но тут сравнение «пробы пера» разработчиков Unity (возможно функционал сделанный за пару недель, отсюда и emscripten) и проекта который только под это заточен и пишется больше года.

Соглашусь с Qwin, что пока эти продукты сравнивать некорректно.

Я думаю, что наш ближайший соперник сейчас это именно WebGL версия Юнити, поскольку другие открытые WebGL движки серьезно нам уступают по функционалу и юзабилити. Есть еще Unreal, WebGL версия которого сейчас испытывает те же проблемы.

Собственно, поэтому мне нравится эта статья.
Я думаю, что наш ближайший соперник сейчас это именно WebGL версия Юнити

Моё личное мнение что это не совсем так, в плане графики возможно, но вот цели (позиционирование, сфера применения, называйте как удобнее) насколько я понимаю разные: у вас проект нацелен больше на 3D художников (моделеров), тем кто знает как и умеет делать модели, сцены в 3D редакторе, но код писать совсем не умеет (да и не за чем ему это), а вот Юнити это для разработчиков (пишут логику практически без ограничений со стороны инструмента) и гейм-дизайнеров (для них визуальный редактор для настройки сцены и редакторы для public переменных).

Так что мне кажется, что всё-таки у вас с Юнити разная целевая аудитория, конечно в плане графики можно с ним посоревноваться (без конкуренции нет прогресса), а так я думаю вам нужно делать упор на максимальную поддержку функционала Blender, чтобы человек знал, что если у него работает в блендере, значит в B4W будет работать.

А вообще, вы проделали огромную работу по созданию B4W, удачи в его развитии.
но код писать совсем не умеет (да и не за чем ему это)

Автор сей статьи не затронул тему программирования, однако в Blend4Web имеется развитый API. См. референс.

Так что мне кажется, что всё-таки у вас с Юнити разная целевая аудитория

В чем-то соглашусь. Мы позиционируем себя как «3D Web», как лучший способ делать 3D на сайтах. «Юнька» все-таки в первую очередь игровой движок для десктопов и мобильных устройств. К сожалению, они пытаются навязать свою несовместимую с Интернетом технологию веб-разработчикам.

А вообще, вы проделали огромную работу по созданию B4W, удачи в его развитии.

Спасибо!
Заметил такой эффект в примере автора (b4w) если поворачивать камеру мышкой и курсор попадает на табличку с названием то камера дальше не поворачивается а как бы «застревает». Еще если нажать на паузу, то возможность вращать камеру так же пропадает.
Первое выглядит скорее как баг, а не фича. Посмотрим. Второе — так задумано (пауза же, рендеринг остановлен).
Sign up to leave a comment.

Articles