Лаборатория Б3 | Большая Тройка

Умный город

Показываем свой опыт реализации интерактивной визуализации модели города. Подобный тип сцен весьма распространен и в самых разных вариантах делался до нас, но всё же этот опыт трудно назвать «изобретением велосипеда», так как в процессе разработки возникло довольно много непростых моментов.

Итак, живой интерактивный город: по заданным маршрутам ездят самосвал, ассенизатор, мусоровоз, автоцистерна и специалист по опасным отходам.

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

Из основных технических аспектов в модели города: продвинутая работа с камерой — реализовано целых три способа избегания «столкновений» камеры с объектами — прозрачностью, трансформами и морфингом.

Ездят поезда, работают краны, летают вертолеты, реализован простой рендеринг воды и течения. Разработан фукнкционал кривых для изображения маршрутов и выкачивания жидкостей, реализованных с помощью растягивания цилиндров в вертексном шейдере и пост-эффект блюм, который выделяет эти кривые.

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

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

Смотрите полный обзор

Мы используем cookie-файлы. Больше информации на сайте в Политике использования файлов cookie.