![](https://habrastorage.org/webt/ap/ob/rw/apobrwuldqucj_ldg0a-8-1ap3w.png)
Думаете, что-то еще забыл вписать? Вполне вероятно, ведь демонстрация 3D на сайте становится очень популярной, а значит растет набор инструментария для его создания.
Мне часто задают вопросы по показу 3D на сайте и столь же часто я оказываюсь в тупике. Нет универсального инструмента для решения всех задач. Черт возьми, парни, вы же не будете забивать шуруп молотком, верно?
Пожалуй, стоит разобраться с этим зоопарком…
Как-то раз на меня вышли ребята из молодой инди-студии, которые планировали создание очередной мега-крутой браузерной игры. Реалистичное 3D, бесшовный мир, множество плюшек онлайнового типа и прочее, прочее, прочее. Увы, вопрос звучал так:
— Что будет круче, Unity или Unreal?
Стоп, народ, вам нужна крутизна или результативность? Ведь очень многое зависит от конкретных задач, возможностей команды и множества дополнительных условий. Я, честно говоря, не помню, что ответил добрым молодцам, но более чем уверен, что у них ничего не получилось.
Поэтому, постараюсь в небольшой статье суммировать некоторые свои мысли по этим технологиям. Конечно, это не относится к солидным студиям, которые могут самостоятельно провести нужные изыскания. Аудитория данного литературного «шедевра» — художники, фрилансеры, сочувствующие и просто лентяи.
Хочу 3D в веб-браузере
— Юнити! — взревет первая половина знающих.
— Анриал, — не менее зычно откликнутся пользователи Unreal.
А еще к матерым знатокам можно добавить пользователей Defold от любителей LUA, Blend4Web с его нативным JavaScript или Three.js от садомазохистов. Черт возьми, список движков расширяется, а если еще немного поднапрячься, то можно с лёгкостью его удвоить.
Фундаментальные проблемы не нативных движков — это массивность готового кода, ограниченная функциональность и сомнительная работоспособность в мобильной веб-среде. Тут нужно обязательно штудировать документацию претендента, а то получите ожидаемые вопли:
— WTF!?!
Грешно сказать, но на протяжении нескольких лет разработчики Unity так и не допилили экспортер под WebGL, а деятели от Unreal и вовсе забили на него. К тому же, готовое приложение от массивных игровых движков выглядит не менее массивно. И здесь счет уже идет на мегабайты, что критично для веба! Хм, полагаю, что уже этот момент должен отпугнуть всех желающих.
Ок, тогда может всё нормально с нативными движками?
Я не программер, но кульный художник
Предполагается, что тонко чувствующая натура неспособна разобраться с хитросплетениями логики. Вот только реальность оказывается куда правдивее этого предположения.
Современный 3D моделлер готов решать математические задачи (привет нодовому конвейеру Blender), отлично знает технические возможности видюхи и, при определенном пинке судьбы, готов быстро состряпать плагин для своего любимого редактора. В итоге, все можно списать на недостаток времени, да и банальную человеческую лень.
Поэтому, если вы относитесь к человеку ленивому, но утонченной натуры, то нужно искать технологии, облегчающие труд по переносу 3D в вожделенный веб.
С учетом этого требования и обязательной нативности у нас остаются четыре претендента: Sketchfab, Blend4Web, PlayCanvas и новичок Verge3D.
Sketchfab
![](https://habrastorage.org/webt/-q/no/xg/-qnoxgmdsyou__itg3c9udmtase.jpeg)
Плюньте в того, кто не знает Sketchfab, ибо эта технология — ветеран по переносу 3D в веб-браузер.
Основная задача сервиса – предоставить самым ленивым представителям от мира 3D возможность демонстрации своих работ на страницах сайтов. Для этого имеется несложный механизм, состоящий из:
- Аккаунта системы;
- Экспортирования моделей из любимого редактора. Есть плагины для всех 3D пакетов;
- Загрузки результата в сервис и получение долгожданного кода.
Основная фишка Sketchfab — это кульный плеер, который загружается из сервиса с вашей моделью по выданной ссылке. Он предлагает отличные возможности для просмотра сцены, проигрывания анимации, использования окружения, маткапов и прочего. Если личного сайта нет, то можно выслать электронной почтой ссылку на модель в Sketchfab. В общем, это отличный вариант для создания портфолио, размещенного в вебе. Но, отсюда вытекают и минусы:
1. Бесплатно только в мышеловке! Это и понятно, ну никто бесплатно работать не станет, поэтому стоит заранее знать об ограничениях пакета Free. Ограниченное количество анимации, нет приватного размещения моделей (все видят, что вы выкладываете), лимит размера для загрузки и т.п. Всего за 15 вечнозеленых в месяц можно снять некоторые ограничения, а также подсесть на «иглу» подписок.
2. Только плеер. Вы не можете сделать игру, не можете создать какую-либо логику работы, только продемонстрировать модель и все.
Если это ваш потолок, то милости просим сюда.
PlayCanvas
![](https://habrastorage.org/webt/j8/c1/cm/j8c1cmj3tyrohi9r1mwfclf1eyc.jpeg)
Вау! Вот здесь уже хочется воскликнуть: «Бинго!». Ибо это уже полноценная среда для создания программ, которые могут воспроизводить 3D на сайте. Хотя разработчики PlayCanvas и заявляют, что их детище годится для создания всевозможных 3D-презентаций, но это все же больше игровой движок.
Он «бесплатный» (ну, вы помните, что бесплатный сыр только в мышеловке), редактор сцен запускается прямиком в браузере, понимает множество форматов 3D, имеет неплохой функционал для программирования и достаточно скромный размер исполняемых файлов.
Опс, запретное слово «программирование», простите… Истинный художник уже сморщился, а курсор мыши пополз к крестику закрытия окна…
Увы, работа с PlayCanvas подразумевает знание JavaScript, листание документации и, соответственно, наличие навыков программирования. Я даже не знаю, зачем пишу о PlayCanvas. Просто имейте в виду, что есть неплохая нативная технология по созданию 3D игр для веба. Она здесь.
Blend4Web
![](https://habrastorage.org/webt/7z/hn/xt/7zhnxtatlxcrzsurbxtl3qfvxzm.jpeg)
Монстр отечественного программостроения, ориентированный исключительно на веб и… Blender. Необычайно мощный функционал, отличная документация и просто огромное портфолио программ, созданных с его помощью. На нем народ прекрасно клепает всякого рода 3D конфигураторы, презентации, создает портфолио (игр, правда, особо нет). Откуда такая популярность?
Дело в том, что Blend4Web предлагает прямой перенос сцены из Blender в веб всего одним нажатием клавиши. При этом пользователь получает готовый плеер, который достаточно залить на нужный сайт или подключить к веб-странице. А самое главное, в составе движка есть мощная система программирования логики, основанная на использовании нодовой системы Blender. Таким образом, простым перетаскиванием кирпичиков логики в Blender, вы можете создать свое приложение. Например, добавить кнопочки управления анимацией, смены текстур, да хоть создать мини-игру. При этом программные знания нужны минимальные. И эти возможности вы получаете бесплатно!
Круто, да? А теперь здоровенная ложка дегтя…
Если вы работаете в Blender и вас устраивает готовый плеер b4w, то пользуйтесь на здоровье. Но любой выход за пределы указанного, например, изменение внешнего вида плеера, добавление кода JavaScript и прочего, потребует открытия исходников всем желающим или придется заплатить очень солидную сумму за лицензию. Называть ее не стану, ибо грустно становится. А так, познакомиться с движком можно здесь.
Verge3D
![](https://habrastorage.org/webt/yi/w6/jf/yiw6jfhz6wr4gwtkmp-kngvr3-s.jpeg)
Молодой 3D движок для веб, но от старых, прожжённых программеров. Фишка в том, что часть разработчиков Blend4Web недавно «отпочковалась» от родительского древа и создала собственную компанию, со своей разработкой. При этом, они учли неудачные моменты в разработке Blend4Web и предложили нечто новое, которое выглядит гораздо привлекательнее.
Во-первых, нет привязанности к Blender. Поэтому пользователи 3ds Max не остались обделенными. Все основные действия по настройке сцены, анимации и прочего выполняются в редакторах Blender или Max, а затем одной кнопочкой перегоняются в веб. Отсюда и второе новшество…
Во-вторых, логика настраивается не в Blender с его нодами, а непосредственно в веб-браузере, с помощью специальных графических элементов-паззлов. Соединяете их в нужном порядке и вуаля. Разработчики хвастаются, что таким образом можно создавать программы любой сложности, даже не зная JavaScript (хотя последний использовать тоже можно).
В-третьих, разработчики предлагают свой собственный облачный сервис для хранения 3D сцен. В отличие от Sketchfab, он является приватным и это несомненный плюс. Причем перегнать проект в облако можно прямо из панели управления Verge. Никаких программных знаний здесь не требуется.
А теперь к минусам? О, да, как же без этого!
1. По сравнению с Blend4Web функционал движка достаточно скудный. Вы можете создать презентацию, конфигуратор, портфолио, но об играх забудьте. Хотя движок стремительно развивается, и кто его знает, что будет дальше. Ребята каждые две-три недели выкатывают обновления с новыми функциями. Буквально вчера вышел очередной релиз Verge3D для Blender с поддержкой Cycles и Principled BSDF. Любопытно, что нового будет для макса.
2. Нет бесплатной версии, т.е. любители «сыра в мышеловке» обломаются. Здесь честная система «триал → оплата». Правда триал бесконечный, а цена, достаточно щадящая и больше подходящая к отечественным реалиям.
3. Нет документации на русском, хотя разрабы люди русские. Но это, наверное, дело наживное.
Страница движка здесь.
P.S. Забыл еще о чем-то? Возможно. Я больше пишу для того, чтобы махом и по простому ответить на те вопросы, что задают пользователи. А чаще всего это не программеры с наивными вопросами: «Что круче?»