- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

От TurnTool к Unity3D

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

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

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

Неигровое применение 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

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

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

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

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

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

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

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

Планоплан

За два года с 2011-го мы создали онлайн-планировщик квартир [6]. И не «просто планировщик», а первый планировщик на 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
Скриншот из браузера, сполохи камина дают живое «играющее» освещение.

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

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

Неигровое применение 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 МБ). Не бог весть что с точки зрения интерьера, но видно, как во вросшем в столешницу чайнике отражается вся кухня.

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

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

В отличие от 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» [9] и 30 ноября — 1 декабря в Сокольниках на CG Event [10].

Ограничения

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

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

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

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

Автор: Heath

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/unity3d/46307

Ссылки в тексте:

[1] TurnTool: http://www.turntool.com/

[2] квартиру с интерактивом: http://kelnik.ru/turntool/greatmebel/

[3] VirTools: http://www.3ds.com/products-services/3dvia/3dvia-virtools/showcase/

[4] приложение ВКонтакте: http://vk.com/turbodrivelite

[5] интерактивную прогулку по квартире: http://swedishkrona.ru/apartments/tri_d/#four-room

[6] онлайн-планировщик квартир: http://planoplan.com/

[7] процедурная генерация мешей: http://habrahabr.ru/post/194620/

[8] Image: http://yadi.sk/d/Li6uIQzQBNpjP

[9] «Мебель ’2013»: http://www.meb-expo.ru/

[10] CG Event: http://www.cgevent.ru/

[11] Источник: http://habrahabr.ru/post/198572/