Blend4Web vs Unity. Битва за Интернет

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

    И в один прекрасный момент я задумался, а может ли Blend4Web конкурировать со столь популярным Unity, и если да, то в каких сферах…




    История знакомства с Blend4Web была необычной и началась с простого ролика на YouTube. Возникла своего рода эмоциональная цепочка: акцент внимания от просмотренного видео, интерес после посещения сайта разработчиков и восторг от изучения. Так появилась моя статья на Хабре: “Blend4Web: обзор новинки отечественного софтопрома”. Советую ознакомиться с ней, если вы не в курсе, что такое Blend4Web.

    Для не желающих лишний раз щелкать мышкой, буквально тезисно перескажу выводы обзорной статьи. И не забудьте, все это субъективное мнение!

    • Полная интегрированность c Blender. После инсталляции плагина или SDK Blend4Web, появляются новые опции дополняющие, но не перекрывающие основные функции программы. Таким образом, вся творческая часть осуществляется в Blender.
    • Простой экспорт в реал-тайм. По желанию можно получить один единственный файл HTML, содержащий код, графику и все необходимые зависимости для запуска. Однако, есть и более сложные способы вывода и интеграции выполняемого кода с web-страничкой.
    • Готовый плеер для проигрывания сцены с уже имеющимися кнопками управления, настройки и расшаривания в популярных социальных сетях.
    • Большие возможности по созданию интерактивности без программирования. Для более сложных задач имеется возможность написания скриптов на JavaScript с использованием API Blend4Web.
    • Отечественная разработка. Документация, уроки и форум на русском (есть и английский эквивалент).
    • Open Sources под лицензией GPL. Разработчики движка активно сотрудничают с командой Blender и участвуют в развитии редактора. Для коммерческих целей движок нужно лицензировать.
    • Активная разработка. Новый релиз — каждый месяц. Похоже, это своеобразная планка для разработчиков.

    Разумеется, не все так гладко. В ходе работы с движком я обнаружил и определенные проблемы: примитивный конструктор логики, сложная система настроек, запутанность API. В общем, кому интересно — прочтите первую статью, а я перехожу к основной теме.

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

    Весовые категории обоих “борцов” явно не одинаковы. Unity — сверхпопулярная среда для кроссплатформенных игр, которая имеет солидный жизненный век, большое сообщество, огромное количество выпущенных проектов. Blend4Web — активно развивающаяся технология с интересными задатками, но очень молодая. Поэтому честная битва в плане игростроя пока мне видится невозможной. Я решил остановиться именно на той деятельности, в которой силен Unity и, как мне кажется, Blend4Web. Разговор пойдет об интерактивной презентации на WebGL. В этой статье я постараюсь показать сильные и слабые стороны обоих движков именно в разработке виртуальных презентаций и экспорте последних в WebGL.

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

    Визуальная часть


    Раздумывая над этим этапом работы, я перелистывал документацию к Blend4Web (возможности Unity мне давно известны). В наборе визуальных эффектов попадались очень интересные функции, попробовать которые просто чесались руки. Я должен был выработать такую визуальную схему, которая являлась бы простой в исполнении, универсальной для обоих движков и оптимальной для презентации. В итоге получился следующий набор:
    • Простые модели без текстур. Привлекательность только за счет стандартных шейдеров.
    • Градиентный фон. Я же отказался от текстур! А однотонная заливка слишком примитивна.
    • Один направленный источник света, тени и окружающий свет.
    • Никаких частиц. Понятно, что с их помощью можно значительно улучшить картинку, да и наглядность процесса. Но тратить время не захотелось.

    Сначала были созданы трехмерные модели основных узлов турбовентиляторного двигателя (рис. 2).


    Рис. 2

    Первоначальное моделирование для обоих движков может быть выполнено в любом трехмерном редакторе. Естественно, для Blend4Web оптимально создавать модели в самом Blender, но ничто не мешает импортировать их со стороны. Что же касается Unity, то стандартом де-факто для него является формат FBX (можно использовать оригинальный blend-файл, который также напрямую импортируется движком).

    Blend4Web позволяет использовать стандартные шейдеры Blender по принципу “как они есть”. Поэтому я выбрал простейший способ визуализации металлических деталей — всего лишь установил жесткое излучение в отражающем шейдере WardIso. Картинка получилась вполне приличной. Однако при сравнении результатов рендера Blender и готового экспорта сцены в браузере оказалось, что чего-то не хватает — отсутствовали тени. Это первый минус, который я ставлю Blend4Web. Несмотря на отличное “понимание” настроек сцены Blender, движок Blend4Web требует обязательного включения некоторых функций. И это кажется издевательством, ведь я уже включил тени в материалах Blender, так зачем мне еще где-то ставить галочки?

    Итак, для включения теней в Blend4Web нужно активировать глобальную функцию Render Shadows в панели Scene, а также для каждого объекта персонально включить опции Shadows (Cast и Receive). На рисунке 3 я пометил соответствующие пункты. На этом настройка моделей для Blend4Web закончена и теперь переходим к Unity.


    Рис. 3

    Обычно Unity без проблем импортирует модели сделанные в Blender. На сей раз нормали оказались перепутаны. Ну вы наверное встречали этот неприятный эффект, когда светотени на объекте меняются местами. Это лечится, либо перепросчетом нормалей в Blender (группа опций Mesh -> Normals в режиме редактирования), либо в настройках импорта Unity (Normals & Tangents). Самое интересное, что проблем с этим же объектом в Blender не наблюдалось, как при обычном рендере, так и после экспорта Blend4Web.

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

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

    Так как в этом эксперименте я принципиально отказался от текстур, то вариант использования Skybox не подходил. Первоначально я предполагал установить градиент в качестве фона, однако Unity “из коробки” предлагает либо однотонный цвет, либо процедурный Skybox (я плохо искал?). Увы, последний выглядит не очень хорошо в рабочей сцене из-за резкой границы между нижней и верхней полусфер. Поэтому пришлось остановиться на примитивной заливке.


    Рис. 4

    Источник света уже находился в сцене по умолчанию, равно как был включен окружающий свет (ambient light). Собственно говоря, на этом настройки в Unity были закончены.

    Что же касается Blend4Web, то тут я обнаружил гораздо более богатые настройки окружающего мира. Большинство мне в данной сцене не нужны, но это все равно приятно. Во-первых, нет никаких проблем с использованием стандартного фона Blender. Хочешь сплошной цвет, а хочешь градиент в разных вариантах — в любом случае движок правильно подхватывал настройки панели World. Это касалось и других параметров сцены, например света окружения (Environment light).

    Во-вторых, Blend4Web предлагает более качественный процедурный Skydome с тонкими настройками. В общем, здесь проблем с Blend4Web не было.

    Подведу итоги этапа работы с визуальной частью.

    Unity, как мне кажется, более лоялен к неискушенному пользователю. Базовые функции сцены по умолчанию уже включены. Есть тени у объектов, корректно настроенный окружающий свет, процедурный Skybox — это сразу выгодно показывает объект без дополнительных настроек. Не было особых проблем с импортом моделей, если не считать “перевернутые” нормали, но тут, наверное, я сам где-то напортачил.

    Blend4Web требует ручной настройки этих же параметров, зато предлагает “из коробки” гораздо большие возможности. Так, например, в своей сцене я не использовал пост-эффекты (bloom, blur, солнечные лучи и т.д.), но включить их можно было несколькими щелчками мыши. Разумеется Unity также имеет свой набор пост-эффектов, однако для этого нужно их установить и разобраться с использованием.

    И, конечно же, система “два в одном” очень облегчает работу над проектом. Зная Blender, вы создадите сцену без проблем экспортируемую в WebGL.

    Логическая часть


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

    Итак, что нужно было сделать:
    • Глобальный просмотр сцены с разных сторон, а также масштабирование и панорамирование.
    • Подсветка выбранной части модели с выводом информации о ней.

    Не правда ли просто? Вот только результат получился разным для движков…

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

    И это реально облегчает работу над презентацией! Собственно, здесь я ничего не делал, ведь все для решения первой задачи уже было готово.

    Теперь обратимся к Unity. В отличие от Blend4Web здесь не предлагается готового плеера и его нужно создать самостоятельно. Визуального редактора логики “из коробки” также нет — все делается на скриптах. Конечно, в магазине Asset Storе можно подобрать подходящий редактор логики или готовые заготовки кода, но для чистоты эксперимента ограничимся только базовой конфигурацией. Я считаю, что в этой части Blend4Web заведомо обставил Unity!

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

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

    Благополучно разрешив этот вопрос, я перешел к обработчику событий. Разработчики Blend4Web предлагают для создания логики использовать последовательности NLA и добавленные ими так называемые слоты (NLA — это визуальный редактор нелинейной анимации Blender). Включить и настроить их можно в панели Scene (рис. 5).


    Рис. 5

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

    Заготовок не особо много, но они позволяют настроить несложную логику. Дело даже не в ограниченном наборе, а скорее в неудобстве его использовании, ведь все эти слоты ставятся в один столбик без просмотра иерархии. Реально запутаться.

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

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

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


    Рис. 6

    Что же касается Unity, то тут не все так однозначно. Здесь есть полноценный GUI, возможность написания любой логики немыслимой сложности, но нет специальных заготовок для упрощения создания типичной презентации. Поэтому я не буду вдаваться в дебри скриптов, а перейду к финалу — экспорту в HTML.

    Итак, Blend4Web позволяет собрать всю сцену, управляющий код и себя любимого в один файл HTML. Тестовая сцена собирается быстро (не более 1 секунды) и буквально одним щелчком. Ее размер составляет 1.8 Мб.

    Теперь перейдем к Unity. Я оставил все настройки экспорта WebGL по умолчанию и запустил обработку. То что, происходит сейчас (на момент написания этих слов) — просто неописуемо! Погулял по комнате, попил чаек, поплевал в потолок, а экспорт все идет. Не менее пяти минут происходило это безобразие (сравните с секундой в Blend4Web). Но больше всего меня убил размер папки с готовыми экспортными файлами — 140 Мегабайт!!! У меня нет слов…

    Update: Знающий человек подсказал, равно как и более скрупулезное изучение мануала Unity, что реальный размер демки не 140 метров, а около 19. Фишка заключается в том, что Unity создает две папки с данными — сжатыми (Compressed) и несжатыми (Release). Я так понимаю, на усмотрение сервака, что отдавать.
    /Update:

    Финал сравнения


    Если честно, то и писать не хочется, после такого ошеломляющего результата в Unity. Экспорт в WebGL появился в нем сравнительно недавно и до сих пор позиционируется как preview-версия (на момент написания статьи у меня был установлен Unity 5.0.1). Возможно в будущем все поменяется, но в данный момент результат экспорта Blend4Web неизмеримо лучше, чем аналогичный у Unity.

    Подведу окончательный итог.

    У меня сложилось мнение, что плагин Blend4Web является более удобным и продуманным средством для создания виртуальных презентаций и вот почему:
    • Солидные визуальные возможности рендеринга. Я рассмотрел лишь те, что понадобились мне для создания тестовой сцены. Загляните в документацию Blend4Web и увидите много интересного.
    • Заготовки для настройки сцены, поведения объектов и логики. Без программирования мне удалось сделать главную логику приложения, создать контекстные справки, выполнить подсветку объектов при выделении, оформить сцену.
    • Шустрый экспорт и небольшой по размеру готовый файл.

    Обнаруженные минусы при использовании Blend4Web:
    • Нет GUI
    • Примитивный и неудобный редактор логики.

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

    Что же касается Unity, то в этом сравнении он потерпел явное фиаско. Несмотря на свою дружелюбность и возможность разработки любой сложности проектов, в рассматриваемой сфере он не может предложить быстрые и эффективные инструменты для создания презентаций. Да и экспорт в WebGL пока желает быть лучшим.

    Для желающих посмотреть:
    Презентация на Blend4Web (1,8Mb)
    Презентация на Unity (142 Mb)
    Поделиться публикацией
    Комментарии 39
      +2
      Очень хороший обзор! Насчет недостатков Blend4Web — мы их видим и будем постепенно от них избавляться.
        +5
        Open Sources под лицензией GPL.


        и

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


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

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

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

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

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

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


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

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

                      И 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 минут загрузки, ничего сказать не могу.

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое