Создание дополнительного слоя информации для красивого рендеринга в 3D

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

Хочу создать некий язык разметки, или может быть набор инструментов для ручной разметки фотографий, совмещения их с реальными картами, и последующей процедурной генерации фотореалистичных изображений. Иначе говоря, хочу получать фотореалистичные изображения из карт (сделать рендерер), а для этого в карты нужно добавить какую-то информацию, чтобы получаемые картинки были натуральными и разнообразными. В принципе, задача решабельная, нейросети умеют такое делать: https://www.youtube.com/watch?v=0fhUJT21-bs - правда тут разметка идет в экранном пространстве, а не в пространстве карты. Еще один похожий проект от NVidia: https://www.youtube.com/watch?v=e3aXvYIWIq0 и https://www.youtube.com/watch?v=eUBiiBS1mj0 - посмотрите тут на ветки деревьев. У меня конечно нет таких ресурсов, потому планирую делать все руками, описывая сцены примерно так, как это сейчас происходит в OSM.

Как я себе такое представляю?
Заходим на гуглопанорамы (лицензионная чистота на данном этапе не нужна, так как изображения не будут использованы как есть, они будут использованы только для обучения и создания инструментов), выбираем панорамы покрасивше (https://www.businessinsider.nl/google-street-view-into-pro-level-landscape-with-ai-2017-7/ - как раз в тему), находим это же место на картах, подгружаем карту в некий 3D-редактор… И начинаем руками раскрашивать карту до тех пор, пока карта не превратится в нечто такое, что мы видим на панорамах. Эдакий sketchup, только наоборот.

Пока непонятно:

  1. Можно ли трогать геометрию объектов с карты? К примеру, расставлять деревья, не отмеченные на карте? OSM имеет специальные теги для этого, позволяя протегать каждое конкретное дерево
    1.1. Если мы тегаем каждое конкретное, то мы можем протегать даже толщину веточек, но это надо будет делать аналог speed tree
    1.2. Или мы не тегаем каждое дерево, а лишь задаем параметры полигона, к примеру “густоту растительности” и “типы растительности” - это существенно упростит рисование, позволит наши параметры кластеризовать в некие пресеты вида “лиственный лес густой”, “хвойный лес редкий” и т.д., т.е. получить некий аналог уже существующих тегов в OSM.

  2. Что делать с коровками и человеками? Первая мысль: натырить готовых моделек всего, чего только может попасть в кадр и расставлять… Но в африке должны быть чернокожие, в америке на дорогах должны быть пикапы, а в таиланде велорикши, причем они должны как-то кластеризоваться в тип транспорта, а уже потом в цвет кузова, иначе нельзя будет корректно расставить теги для дороги.

  3. Насколько точно можно расставлять объекты, о которых мы точно ничего не знаем? К примеру, вдоль дороги стоят фонари уличного освещения, на некотором стабильном друг от друга расстоянии. Можно было бы сделать указатель на модельку фонаря, частоту его расстановки, что позволит сгенерировать похожую картинку, но конкретные фонари будут не на своих местах. Может быть стоит указывать частоты вместе с указателем на координаты конкретных фонарей? Тогда надо городить новый тип полигонов и отношения.

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

Возможно, имеет смысл как-то изменить и порядок маппинга. К примеру, я считаю, что дома, по крайней мере такие, что были в СССР, проще мапить как некий скелет с толщиной линий, это позволит повысить точность и упростить отрисовку, а для возврата в OSM это всегда можно вернуть в полигон. К сожалению, такой подход не будет работать с современными небоскребами, особенно закрученными и с дырками в стенах - тут надо придумать или другие типы генераторов, или вытягивать скелет “вверх”, закручивая его растяжения от этажа к этажу.

У OSM тоже нет таких ресурсов, как и понятия сцена. С этим вот сюда. Фотореалестичность хромает на обе ноги, но как и требуется: работает с реальной картой и существует в этом слое реальности, в отличии от “некого языка разметки” к “некомоу 3D редактору” для “некой софтины” где “некая фотореалистичная 3Д карта” неким образом будет отображаться.
3D tagging и как это выглядит, в рамках возможностей OSM F4Map.

Дерево можно замапить, высоту его, род, вид и т.п… Веточки это перебор.
Фонари тоже можно.

Чем выше детализация, тем больше шансов, что кто-то начнёт возмущаться. И это в какой-то мере логично.
Сделать сотню деревьев - не так уж сложно. Но кто за этими объектами потом будет следить?
Однако, если есть шансы, что объект просуществует ещё долго, то его доработка в ОСМ очень важна.
Думаю, стоит точки привязки делать непосредственно в ОСМ (углы домов, канализационные люки), а всю мелочь уже дорисовывать локально.

веточки это конечно перебор, а вот крона площадным wood это реальность :slight_smile:

Дык в начале я своими руками делать буду, а уж если кому-то там интересно - милости просим.
Сцена - это конкретная панорама, как сделано скажем в Photomatch скетчапа или других сосалках панорам гугла/яндекса (их великое множество), где можно красиво обводить картинки и расставлять объекты, чтобы результат был почти как в реальности.
И я надеюсь, что процесс маппинга будет прост и интересен для всех, а потому создал этот тред.

Фотореалистичности тут почти нет. Но это можно приправить вот этим: https://www.youtube.com/watch?v=4pPTW8PJdJw - и фотореалистичность внезапно будет. Но есть одна проблема: эта штука не знает реальных данных, потому приправляет существующие меши хаосом, ведь реальных данных пока нет. И чтобы не был хаос, можно добавить эту информацию самим. Или хотя бы отредактировать “геном” местности, чтобы оно было максимально правдоподобно.

Отличный наезд, спасибо! Но должен огорчить: Москва не сразу строилась, но спустя какое-то время взяла и появилась на свет. И если ничего не делать, то ничего и не будет.