Виртуальный двойник реновации: как разрабатывают 3D-туры целых районов
Не секрет, что человек воспринимает информацию намного лучше с помощью зрительного контакта. Как бы красиво человеку не описывали информацию, например, о будущем доме, пока он не увидит это собственными глазами, будет с подозрением относиться к таким рассказам. Поэтому застройщики тратят немало сил, времени и денег на красочную визуализацию будущих жилых комплексов и домов. А что, если перевести в цифру целый квартал? В Москве этим занимаются немногие. Например, управление цифровизации ГБУ «Мосстройинформ». Мы решили поделиться своим опытом и рассказать о разработке.
С чего всё началось
Государственное бюджетное учреждение «Мосстройинформ» напрямую связано с градостроительной деятельностью города Москвы. Успешно пропилотировав проект по QR-кодам, мы начали собирать обратную связь от жителей через портал «Активный гражданин». Отзывов было много, и, в целом, горожане хотели не только посмотреть сам объект, который будет построен, но свой будущий район в понятном формате. Так мы начали работать с масштабной Программой реновации жилищного фонда столицы, которая предполагает переселение жителей старых домов, в большинстве случаев «хрущевок», реже «сталинок», в многоквартирные дома новых типов.
Органы власти через разные информационные ресурсы предоставляют сведения для жителей районов, вошедших в программу реновации, но часто ее недостаточно. Не все способны «читать» схемы и чертежи таким образом, чтобы представить, как будет выглядеть их район. Несколько рендеров и частичных визуализаций района не подходит для оценки полной картины будущей застройки. Также нет единого источника достоверных данных, где бы жители могли всё посмотреть.
Недостаток информации
Узнать, как будет выглядеть район через 10 лет можно в документе под названием «Проект планировки территории», но для этого нужно уметь читать и разбираться в такой документации, а обычным горожанам это просто не нужно. Разъяснения по документации можно получить на публичных слушаниях, но ведь далеко не у всех есть время и возможность в них участвовать. И понять, что же будет на этом месте спустя десятилетие, — это и проблема, и интерес для жителей.
Мы начали анализировать, каким образом можно решить эту проблему. В ходе встреч и дискуссий было принято решение визуализировать в 3D-формате будущие кварталы по программе реновации в соответствии с разработанными и утвержденными Правительством Москвы документами. Мы стали воссоздавать будущую застройку района с возможностью перейти в режим 360 текущей застройки, чтобы житель мог прогуляться по своим родным местам и увидеть изменения в формате «как сейчас – как будет».
Каким получился наш проект, можете увидеть по ссылке и пройти все виртуальные туры самостоятельно: https://stroimprosto-msk.ru/virtualnye-tury/
Выбор среды разработки
Прежде чем выбрать среду разработки, мы изучили технологии, которые подойдут для реализации проекта. Главная цель проекта заключается в том, чтобы максимальное количество жителей смогли без проблем запустить приложение на любом девайсе.
Почти идеально реализовать нашу цель может технология WebGL — любой человек сможет запустить приложение через браузер на ПК, смартфоне и планшете, не закачивая очередное приложение в свой гаджет. Есть только один минус в том, что у пользователя должно быть постоянное соединение с интернетом, хотя для 21 века это уже стало нормой.
Единственное, что мы так и не смогли победить – это WebGL на iPhone (на iPad все работает). Если у кого-то в практике есть кейс успешной реализации – поделитесь им, пожалуйста, в комментариях.
Среди различных игровых движков наш выбор пал на Unity. Почему именно Unity? Данный движок является межплатформенным игровым движком, в котором хорошо реализована технология WebGL, а также имеется возможность компиляции под различные технические решения. Например, создание приложения не только под WebGL, а также и под VR или AR.
Структура разработки
Главные этапы разработки:
1) Подготовка к разработке. То есть сбор доступной информации о районе и зданиях района (проекты планировки территорий, архитектурно-градостроительные решения и другая градостроительныя документация). Для создания 3D-моделей по старым или не сносимым зданиям мы выезжали в район для проведения фото- и видеофиксации.
2) Создание 3D-моделей. На данном этапе производится создание трехмерных копий зданий, объектов и территорий района, которые включают в себя:
· новые здания района;
· несносимые здания района;
· озеленение и малые архитектурные формы (деревья/кустарники, скамейки, детские площадки, памятники и т.п.);
· дорожные объекты (дорожные знаки, дорожная разметка, остановки и т.п.)
· муниципальные здания (школы, детские сады, больницы и т.п.).
3) Импорт 3D-моделей в среду разработки Unity, настройка материалов, необходимых компонентов и создание заготовок.
4) Сборка района на виртуальной сцене из заготовок на основе схем, проектов планировки территорий, архитектурно-градостроительных решений и фотографий.
5) Настройка визуализации, эффектов и освещения.
6) Оптимизация виртуальной сцены (запекание света, occlusion culling и т.п.).
7) Программирование основных элементов приложения:
· интерфейс – позволяет пользователю получить информацию, сменить режим работы приложения, отобразить карту с местоположением пользователя;
· пользователь – отображает виртуальную сцену района, позволяет пользователю перемещаться по сцене, взаимодействовать с окружающими объектами;
· окружение – включают в себя интерактивные объекты, которые привлекают внимание пользователя и реагируют на взаимодействие с ним, такие как точки для просмотра фотографий 360 или информационные стенды
· база данных – содержит в себе информацию о зданиях района и позволяет пользователю получать эти данные.
8) Фотосъемка района для реализации функции панорамы прошлого
· выезд на район с последующим фотографированием местности в 360;
· обработка фотографий и добавление их в Unity-сцену;
· программирование функции панорамы прошлого.
9) Сбор информации по объектам строительства и расставление информационных стендов в приложении;
10) Отрисовка карты района, расстановка и программирование точек для телепортации;
11) Компиляция программы и тестирование. После выполнения всех предыдущих этапов создается новый исполнительный файл решения, который в последствии размещается на локальной сети, где проходит тестирование. Для оптимизации работы приложения, фотографии размещаются не внутри приложения, а на сервере. Если тестирование проходит успешно, то данная версия решения размещается на основном сайте.
3D-моделирование объектов и территорий
Мы используем проекты планировки территорий и рендеры для моделирования территории, а для новых зданий руководствуемся АГР (архитектурно-градостроительные решения) – это документ, который представляет собой комплект документации и графических материалов, предусматривающих будущий облик возводимого или реконструируемого здания. Существующая застройка моделируется с помощью фотографий зданий, если на них нет документации.
Для того, чтобы приложение было максимально быстродействующим и не теряло качество изображения, проводится оптимизация. Она включает в себя:
✔Текстуры и материалы: в одном материале используется только 2 текстуры: альбедо, включающая в себя запечённые тени (Ambient Occlusion) и нормали (Normal Map); металлик, включающая в себя отражение окон и блеск элементов.
✔ Материалы используются упрощённые, низкополигональные и если есть повторяющиеся, то ставится обработка GPU, что уменьшает нагрузку на CPU.
✔ Деревья, заборы и все повторяющиеся многократно элементы придомовой территории расставляются в Unity отдельно для экономии оперативной памяти.
После оптимизации моделей, мы занимаемся их текстурированием.
Сборка всех объектов в Unity-сцене
В существующей Unity-сцене расставляются все смоделированные объекты. Инструменты оптимизации:
✔ Запеченный свет, Occlusion culling, запечка отражения (Reflection probe). Также используется, в основном, BoxColliders и в редких случаях MeshColliders с convex, если геометрия объекта сложная.
✔ Запеченный свет. Свет запекается для того, чтобы сократить нагрузку при работе приложения на процессор и видеоадаптер устройства.
✔ Коллайдеры (BoxColliders, MeshColliders). Данный компонент создает виртуальную стену на объекте и необходим для того, чтобы пользователь, например, не мог провалиться внутрь трехмерного объекта или упасть сквозь землю.
✔ Occlusion calling– запекание Occlusion culling позволяет не отрисовывать объекты, которые не находятся в поле зрения пользователя, что сокращает нагрузку при работе приложения на процессор и видеоадаптер устройства.
✔ Запечка отражения (Reflection probe) – запекание отражения позволяет добавить отражения на все металлические и стеклянные объекты, что делает картинку более реалистичной и красивой без высокой нагрузки на процессор и видеоадаптер устройства.
Программирование приложения
После сборки моделей и оптимизации в Unity-сцене создается программная часть приложения. Программный код выполнен на языке C#. Он используется для передвижения персонажа по району, открытия и мгновенного перемещения по карте. Создается база данных для хранения информации об объектах, которые в процессе прохождение тура можно просмотреть. Также прописываются дополнительные режимы внутри приложения, которые можно переключить, находясь в туре. После происходит полное тестирование приложения и по итогам выводится в прод.
Познакомится со всеми возможностями решения вы можете на нашем сайте https://stroimprosto-msk.ru/virtualnye-tury/, выбрав интересующий вас район. Сейчас у нас есть семь виртуальных туров по кварталам района Фили-Давыдково, района Нижегородский, Пресненский и Богородский. В ближайшее время мы готовим новый релиз по району Перово.
Какой классный проект. Очень интересно попробовать 👌
Прикольный проект!
Ребята, молодцы! Супер проект! Спасибо!
Молодцы!
Отличная идея, будем ждать разработок!
👍🏼👍🏼👍🏼
Круто! Молодцы ребята!
Отличная визуализация!
Необычный проект. Очень круто!
Супер! Отличный проект!
Очень классный проект!
Супер проект! Спасибо! Очень интересно попасть в будущее.
Отличная идея и в ногу со временем, зачёт 👍