Неигровое применение Unity3D и Oculus Rift

в 11:38, , рубрики: Oculus Rift, unity3d, Блог компании «Кельник», виртуальная реальность, дополненная реальность, интерактивность, планировщик помещений, метки: , , , ,

На Хабре очень мало статей, посвящённых неигровым применениям Unity3D. Мы решили исправить эту досадную ситуацию и рассказать о том, как мы делали (и продолжаем делать) онлайн-планировщик квартир (да-да, очередной!) с рендерингом качественных изображений на серверной стороне и интеграцией с Oculus Rift.

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

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

Неигровое применение Unity3D и Oculus Rift

Как мы много лет занимались другим

Длинная предыстория для любопытных

От TurnTool к Unity3D

3D-интерактивом мы занимались давно, до 2006 года используя Flash и TurnTool. Например, ещё в 2006 мы руками собрали квартиру с интерактивом для петербургского ТЦ «Грэйт» (до сих пор работает, но только в IE). Для того времени — крутейшая штука, с раскладывающимся диваном и меняющимися текстурами.

Интерактивная квартира на TurnTool, 2006 год

После TurnTool мы начали мучить VirTools, на которой разработали онлайн-гонки: сначала на грузовиках, а потом на трековых автомобилях. Критическим ограничением технологии оказалось полное отсутствие серверной части, которую пришлось писать самостоятельно.

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Игра на Unity3D

Поэтому, наконец, в 2009 году мы приступили к освоению Unity3D, тогда ещё версии 2.0, и через некоторое время окончательно перешли на него и полностью перенесли на новый движок нашу онлайн-гонку, TurboDrive.

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Игра имела разные трассы, раскраску машинок, обработку коллизий и отваливающиеся от ударов бампера. Она до сих пор работает как приложение ВКонтакте (запускать строго по http, не https!), но уже не развивается. Про TurboDrive можно складывать отдельную эпическую историю шишек, фэйлов и открытий.

История показала, что окончательный переход на Unity3D был правильным решением: TurnTool и VirTools умерли совсем, Flash потерял рынок как инструмент для 3D-интерактива.

От гонок к онлайн-планировкам

Работая над клиентскими проектами, в 2010 году мы сделали первую интерактивную прогулку по квартире на Unity3D для шведского застройщика NCC. В ней можно побродить по квартире, посмотреть на реальный вид из окна и поменять варианты отделки.

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

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

Планоплан

За два года с 2011-го мы создали онлайн-планировщик квартир. И не «просто планировщик», а первый планировщик на Unity3D с рендерингом высококачественных изображений на серверной стороне.

Для обычных частных пользователей он работает по freemium-модели — вы можете зарегистрироваться и пользоваться им бесплатно.

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

Качество картинки в браузере

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

Если раньше в треугольнике «скорость — качество — возможность свободных углов просмотра» можно было выбрать в лучшем случае любые два пункта, то в «Планоплане» можно выбрать все три.

Неигровое применение Unity3D и Oculus Rift

Видны, например, полупрозрачные занавеси. В хромированной ноге кресла отражается вся комната. Есть возможность располагать много оживляющих интерьер аксессуаров: книги, безделушки, апельсины. На одном и том же компьютере приложение Unity3D работает значительно быстрее, чем решения на Flash с тем же качеством картинки. И даёт значительно более высокое качество картинки, чем решения на Flash с той же скоростью работы.

Видео ниже показывает качество картинки (лучше смотреть в HD, fullscreen, с настройкой «Scaling is Off»).

Как другие планировщики выглядят в браузере

Неигровое применение Unity3D и Oculus Rift
Apartama. Unity3D, быстро, малокачественно, 8 углов обзора с прогулкой.

Неигровое применение Unity3D и Oculus Rift
AutoDesk Homestyler. Flash, медленно, среднекачественно, 8 углов обзора без прогулки.

Неигровое применение Unity3D и Oculus Rift
FloorPlanner. Flash, медленно, среднекачественно, свободно без прогулки.

Неигровое применение Unity3D и Oculus Rift
IKEA Planner. Собственный плагин, медленно, малокачественно, дискретные углы обзора.

Неигровое применение Unity3D и Oculus Rift
Outline3D. Собственный плагин, медленно, малокачественно, свободно с прогулкой.

Неигровое применение Unity3D и Oculus Rift
Planner5D. Flash, среднебыстро, среднекачественно, свободно с прогулкой.

Неигровое применение Unity3D и Oculus Rift
Realaxy. Flash, медленно, суперкачественно, свободно с прогулкой.

Интерактивные элементы

Ровно по той же причине (Unity заточен под производительную 3D-графику) мы смогли сделать так, чтобы в камине горел огонь, радио шуршало, а часы показывали текущее время. Диваны раскладываются, двери открываются и закрываются… В общем, широкое поле для геймификации дизайна интерьеров.

Неигровое применение Unity3D и Oculus Rift
Скриншот из браузера, сполохи камина дают живое «играющее» освещение.

Быстрая математика

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

Неигровое применение Unity3D и Oculus Rift
Правильные пересечения всех поверхностей.

Неигровое применение Unity3D и Oculus Rift
Пример процедурно генерируемого потолочного плинтуса со сложным профилем.

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

Неигровое применение Unity3D и Oculus Rift

Серверный рендеринг

Пока что подобный функционал есть только в AutoDesk. Мы сделали связку «Unity Web Player → Custom Server → Unity Standalone → Render Server», и теперь нажав в любом месте кнопку можно получить высококачественную картинку. По сути, большинство начинающих и средней руки дизайнеров теперь не нуждаются в услугах специалистов по 3D-графике.

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

И куча примеров картинок от наших обычных пользователей

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Неигровое применение Unity3D и Oculus Rift

Чтобы протестировать ограничения технологии, мы отрендерили изображение 15 360 × 8 640 пикселей (картинка ниже кликабельна, ведёт на Яндекс.Диск с JPG на 10 МБ). Не бог весть что с точки зрения интерьера, но видно, как во вросшем в столешницу чайнике отражается вся кухня.

Огромная картинка с чайником

Кроссплатформенность и мобильные устройства

В отличие от Flash-планировщиков, «Планоплан» работает везде, где в браузер ставится плагин. То есть, на Windows и MacOS. В Linux пока что работает только standalone-сборка.

Кроме того, мы можем быстро и легко делать из готовых проектов, созданных в онлайне, сборки для мобильных устройств как на iOS, так и на Android (на видео ниже — с 04:00). Это позволяет добавлять интерактивную демонстрацию планировок и интерьеров в мобильные приложения при том же качестве картинки и скорости работы.

Виртуальная реальность

Разработчики Unity3D — люди, достойные памятника при жизни и недвижимости на Гавайях. Они очень быстро начали давать возможности вывода картинки в 3D. Сначала это был 3D-монитор с очками. Было круто, но не сверхкруто.

Неигровое применение Unity3D и Oculus Rift
Это не руки у фотографа дрожат, это включен 3D-режим на мониторе.

А потом появился он — шлем Oculus Rift (на видео ниже — с 00:30). С его помощью мы можем погрузить человека в пространство его будущей квартиры (если он покупает квартиру) или интерьера (если он пользуется услугами дизайнера интерьера, покупает мебель или отделочные материалы).

Технология сносит крышу нам самим и 98,5% посетителей наших стендов на выставках. Остальные 1,5% — зануды, которым не нравится зерно и низкое разрешение.

Кстати, любой желающий сможет увидеть это своими глазами 18–22 ноября в Экспоцентре на выставке «Мебель ’2013» и 30 ноября — 1 декабря в Сокольниках на CG Event.

Ограничения

Полного счастья в жизни нет, конечно. И технология Unity3D, кроме широких возможностей, даёт всего несколько капель дёгтя. Вот полный список того, что мы не смогли победить за полтора года разработки.

  • Ограничение памяти в 32-битной версии под Windows и падение 64-битной сборки. Сейчас девелоперы над этим активно работают и обещают скоро исправить, мы держим с ними связь.
  • Для мобильных устройств и под Linux нужны отдельные сборки, в браузере это великолепие пока не работает. Остаётся только верить в девелоперов, но пока что обещаний изменить эту ситуацию не звучало.
  • К веб-версии нельзя привинтить Oculus Rift, потому что она не позволяет подключать сторонние библиотеки. Верим, что парни из Unity и Oculus как-нибудь договорятся.

И многое другое

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

Автор: Heath

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js