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

«Игрушечная» картография

Около полутора лет назад на Хабре был размещен пост про уникальные карты китайского поисковика Baidu (для тех, кто не видел, вот он: http://habrahabr.ru/post/115107/ [1]). Я был поражен тем, насколько кропотливо, детально и красиво эти карты сделаны, поэтому однажды мы, вместе с группой товарищей, решили разобраться в процессе создания Baidu-карт и сделать собственные карты всего мира, которые выглядели бы так же круто. Под катом много картинок, раскрытие секрета Baidu-подобных карт и то, что получилось у нас.

«Игрушечная» картография

Поиски решения (как китайцы это сделали?)

Всем очевидно, что подобные вещи — что-то совсем новое для картографии. Они красивые, они интересные, их можно рассматривать часами. Они понятные, в конце концов, ведь наверняка легче найти здание, где у тебя назначена встреча, если на карте размещена его детальная копия, а не унылый серый прямоугольник. Похожие карты делают не только Baidu; вот навскидку несколько примеров: Edushi (shanghai.edushi.com [2]), город Керчь (http://gorodkerch.com/map/ [3]), даже Bing на некоторых уровнях зума показывает не аэрофотографии (http://binged.it/O3F5Ez [4])

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

Очень скоро стало ясно, что создание даже одного домика требует невероятных затрат времени и сил. Мы все больше убеждались, что Baidu — это 3d-карты, что они рендерятся, а не рисуются пиксель к пикселю старательными китайскими ребятами. На самом деле, о том, что карты были созданы в 3d, говорит многое: затенения между близстоящими зданиями, одинаковые детали и предметы, которые расположены к камере под разным углом. В конце концов, на сайте http://www.o.cn/ [5] (производитель карт для Baidu) мы нашли страницу, которая полностью подтвердила догадки: http://gis.o.cn/en/3d-process.html [6]. Итак, сомнений не оставалось, Baidu — это просто очень качественно отрендеренные 3d- карты.

Наши эксперименты

Но даже выявление технологии не решало всех проблем — оставался открытым вопрос, кто и каким образом станет наполнять подобные карты. Окей, каждый объект не нужно рисовать руками, одинаковые здания можно не перерисовывать с нуля, а лишь перерендерить… Тем не менее, где брать настолько детальные, красивые и подробные модели зданий?

Такие вопросы и поиски привели нас к решению сделать карту коллаборативной, то есть создавать ее вместе с пользователями. Только представьте себе: пользователи рисуют не линии и прямоугольники в OpenStreetMap или Викимапии, а красивые, почти игрушечные модели реально существующих домов!

В качестве тестового объекта был выбран кампус Стэнфордского университета. Чтобы понять, насколько крутые карты можно производить, и разобраться в процессе их создания, мы решили сперва смоделировать местность самостоятельно. За время работы над картой университета было выяснено, что получить картинку уровня Baidu абсолютно реально силами v-ray: «Игрушечная» картография

Мы можем рендерить не единственный взгляд на город с севера на юг, а все четыре его вида, а то и больше: «Игрушечная» картография

Меняя свет в сцене, легко получить ночной вид: «Игрушечная» картография

3d оставляет бешеный простор для детализации и задротства — можно рисовать разметку, фонари, кусты, скамейки, прочие вкусные штуки: «Игрушечная» картография

Итак, мы смоделировали на пробу Стэнфордский университет и перешли к созданию карты Сан-Франциско, решив дать доступ к этому процессу всем желающим. Теперь сборка карты происходит следующим образом: пользователи в приложении-3d-конструкторе (мы выбрали Unity 3d) создают модели домов, а на сервере в пакете v-ray standalone рендерятся и отправляются на общую карту красивые картинки.

В итоге, полный цикл работы приложения выглядит так:

  • Пользователь рисует периметр дома поверх спутниковых карт, как в OSM. Мы строим замкнутый контур и передаем его в Unity, а также запоминаем расположение дома на карте.
  • В конструкторе юзер создает модель дома: текстурирует её, размещает окна, двери, эркеры, карнизы, задает форму крыши — словом, превращает прямоугольник в высокодетализированную модель. Когда модель готова, она отправляется на карту. Unity экспортирует сцену в obj и пересылает на сервер.
  • Сервер принимает obj, вычисляет положение дома на карте, размещает его в сцене с картой города, где уже настроен свет и созданы v-ray материалы. Затем сервер высчитывает, какие тайлы карты изменились из-за постановки дома, потайлово рендерит его, рендерит SVG для хайлайтов и отправляет всё это на web-сервер.

Заключение

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

Посмотреть наши карты вы можете здесь:

  • cutetown.net [7] — сайт с картой Стэнфордского университета
  • cutetown.net/hires [8] — хайрез. На нем можно разглядеть все мелкие детали типа велостоянок, столиков в кафе, разметки и т.д.
  • cutetown.net/sf [9] — карта Сан-Франциско, для которой готовится релиз приложения

p.s. Предвосхищая холивары на тему “фу, карта лишь с четырьмя видами — это фигня, ничто и никогда не заменит real 3d”: просто взгляните на картинку. Здесь изображено одно и то же здание Стэнфордской церкви. Так оно выглядит на свежих 3d-картах от Apple и на нашей карте. Мы думаем, разница очевидна.

«Игрушечная» картография

Автор: Vatis


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

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

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

[1] http://habrahabr.ru/post/115107/: http://habrahabr.ru/post/115107/

[2] shanghai.edushi.com: http://shanghai.edushi.com

[3] http://gorodkerch.com/map/: http://gorodkerch.com/map/

[4] http://binged.it/O3F5Ez: http://binged.it/O3F5Ez

[5] http://www.o.cn/: http://www.o.cn/

[6] http://gis.o.cn/en/3d-process.html: http://gis.o.cn/en/3d-process.html

[7] cutetown.net: http://cutetown.net

[8] cutetown.net/hires: http://cutetown.net/hires

[9] cutetown.net/sf: http://cutetown.net/sf