Виртуальный двойник реновации: как разрабатывают 3D-туры целых районов

Не секрет, что человек воспринимает информацию намного лучше с помощью зрительного контакта. Как бы красиво человеку не описывали информацию, например, о будущем доме, пока он не увидит это собственными глазами, будет с подозрением относиться к таким рассказам. Поэтому застройщики тратят немало сил, времени и денег на красочную визуализацию будущих жилых комплексов и домов. А что, если перевести в цифру целый квартал? В Москве этим занимаются немногие. Например, управление цифровизации ГБУ «Мосстройинформ». Мы решили поделиться своим опытом и рассказать о разработке.

С чего всё началось

Государственное бюджетное учреждение «Мосстройинформ» напрямую связано с градостроительной деятельностью города Москвы. Успешно пропилотировав проект по QR-кодам, мы начали собирать обратную связь от жителей через портал «Активный гражданин». Отзывов было много, и, в целом, горожане хотели не только посмотреть сам объект, который будет построен, но свой будущий район в понятном формате. Так мы начали работать с масштабной Программой реновации жилищного фонда столицы, которая предполагает переселение жителей старых домов, в большинстве случаев «хрущевок», реже «сталинок», в многоквартирные дома новых типов.

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

Виртуальный двойник реновации: как разрабатывают 3D-туры целых районов

Недостаток информации

Узнать, как будет выглядеть район через 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 или информационные стенды

Виртуальный двойник реновации: как разрабатывают 3D-туры целых районов

· база данных – содержит в себе информацию о зданиях района и позволяет пользователю получать эти данные.

8) Фотосъемка района для реализации функции панорамы прошлого

· выезд на район с последующим фотографированием местности в 360;

· обработка фотографий и добавление их в Unity-сцену;

· программирование функции панорамы прошлого.

Виртуальный двойник реновации: как разрабатывают 3D-туры целых районов

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/, выбрав интересующий вас район. Сейчас у нас есть семь виртуальных туров по кварталам района Фили-Давыдково, района Нижегородский, Пресненский и Богородский. В ближайшее время мы готовим новый релиз по району Перово.

13 комментариев