breezeshaman
Интеграция 3D объектов в панорамы 360° от Google
breezeshaman 2413

Привет всем. Сегодня мы рассмотрим возможность интеграции 3д модели в панорамы 360° от Google, с последующей визуализацией в них, и выкладыванием на ресурсы с их просмотром.

Итог того о чём будет здесь идти речь, можно посмотреть тут:

https://kuula.co/post/7Y1fb

Заранее прошу прощения если что то не так, ибо это мой первый опыт в написании чего то подобного.

Не для кого не секрет что вписывание в фото, это менее затратная техника, чем моделирование всего пространства. Плюс ко всему, панорамы найти в наше время не стало проблемой. Порой заказчикам нужен просто эскиз, и вписывание в фото лучшее средство. Ну и не забываем про невысоко бюджетные проекты.В данном уроке попытаюсь объяснить методику работы с панорамами. Качество и фотореалистичность зависит уже от навыков архитектурной визуализации. Но некоторые нюансы будут оговорены здесь.

Итак, начнём. Для начала гуглим "street view download 360" и находим ссылку https://svd360.istreetview.com/. Заходим туда и скачиваем программку "Street View Download 360". Устанавливаем её и запускаем. Там всё просто. Там же на странице загрузки идём по ссылке iStreetView.com, там жмякаем кнопку "Continue to the website" и мы попадаем в просмотр карт и панорам. На карте выбираем панораму интересующую нас. Выбираем её и находим её ID. 

Открываем программу Street View Download 360.

1. Прописываем путь куда сохраниться панорама.

2. Вставляем её ID

3. Выставляем максимальное разрешение.

4. Скачиваем её.

!!!Теперь сделаю небольшое пояснение по по поводу этих панорам. Панорамы сделанные гугломобилем имеют много недостатков: Есть логотипы гугла, кривые сшивки автоматические и прочие недостатки. Лучшие панорамы с гугла заливаются обычными людьми. Разница в них думаю понята. Обозначение их на карте можно увидеть на скрине.

По поводу панорам от Google Street View. При просмотре улиц, существует возможность смотреть более ранние снимки.

Допустим вы выбрав место, недовольны качеством и освещением последней съёмки. Но просмотрев более ранние фото нашли то что вас устраивает. Как узнать их ID? Всё просто. ID всегда можно достать у "уличных панорам" прямо из ссылки. ID пишется после символов "!1s" и до символа "!" . Выбрав нужное время, всегда можно брать ID и скачивать через программу любую панораму. 

Вернёмся к нашей панораме. Разберёмся с масштабом. Открываем вид карты в браузере. Находим точку съёмки панорамы и проводим линейкой с целыми значениями для масштаба.Сохраняем её как текстуру скриншотом.  

Далее открываем нашу сцену. Ставим бокс размером исходя из размера нашей линейке со скриншота. В моём случае это 200 метров. Далее создаём плоскость с размером нашего скриншота. У меня он 843х1041 пикселей. Я создаю плоскость 84300 х 104100 в миллиметрах. В общем, главное сохранить пропорции с текстурой. Далее создаём материал и цепляем на него наш скриншот-текстуру и масштабируем плоскость по нашему боксу и линейки. Материалу делаем прозрачность, что бы в дальнейшем видеть наш фон во вьюпортах. Для удобства масштабирования, можно пивот поставить в начало линейки на текстуре.

Тут на GIFках показано подробнее

https://i.gifer.com/3Nrxy.gif

https://i.gifer.com/3Nrxz.gif

Создаём камеру в центре координат и на высоте примерно человеческого роста. !!!Внимание. Камера никогда не должна выходить из центра координат. Далее создаём текстуру с нашей панорамой для Environment Map в редакторе материалов. Зеркалим её (Tiling U: -1). Помещаем в слот для фона в Environments и устанавливаем её фоном во вюьпорте (Views - Viewport background - Environment background). Выставляем значения угла обзора камеры, для большего обхвата вида и смещение отображения по вертикали.

Далее уже начинается шаманство небольшое:

Уточняем расположение нашей камеры:

Делаем это направляя Target камеры (Камера должна быть начале координат) на объекты на плане-текстуре, и смотрим на вид из камеры с панорамой. Двигаем положение нашего плэйна если нужно. Абсолютной точности не получится. Кстати не забываем о том, что панорама и текстура "карта" может отличаться из за разницы во времени. Например у меня уровень воды в озере.

Тут на GIFках показано подробнее:

https://i.gifer.com/3Nry2.gif

Теперь можно располагать модели. Вот тут уже чистый шаманизм. Точных объяснений уже дать не получится, ибо всё индивидуально. В помощь есть текстура карта. Не забываем о высоте камеры объектов относительно её. Передвигаем Target камеры и "подбиваем" модели. Тут уже играем воображением. Для примера я полез на 3ddd и купил когда то пару хороших моделек от concept61 и 3d-andrew и разместил их. 

Подробно о настройках архитектурной визуализации не буду, благо в интернетах полно информации. Остановлюсь лишь на моменте освещения сцены HDRI. Для начала находим хдрку с похожим небом и высотой расположения солнца. Ещё нужно иметь превью этой HDRI который мы вставим взамен нашему фону панораме. Для этого вначале мы отметим расположение солнца на нашей панораме. Из вида камеры направим её Target на место где солнце.

Тут на GIFках показано подробнее:

https://i.gifer.com/3Nrxx.gif

Далее в редакторе материалов открываем превью нашей HDRI и заменяем им нашу панораму, поместив в слот для фона в Environments. В редакторе материалов меняем параметры карты значения Offset U, двигая солнце как можно ближе к "точке солнца панорамы", которая отмечена у нас Target-ом. После этого уже назначаем на фон уже HDRI карту и ставим ей значение Offset U от предыдущей карты. Итак, у нас теперь солнце HDRI на том же месте что и солнце на панораме. По желанию можно назначить на отражения материалов стекла карту с панорамой.

Тут на GIFках показано подробнее:

https://i.gifer.com/3Nrxw.gif

Так как HDRI внизу "земля" скорей всего не будут похожи на землю нашей панорамы (у меня вообще чёрный цвет), создаю фэйковую поверхность цветом нашей "земли", что бы падающий свет от неё дал нужный тон моделям. В моём случае я создал плоскость ниже модели белого цвета, имитирующую снег, и исключил её в Proprietis - visible to camera. Но всё же лучше находить HDRI максимально похожую с панорамой по цветовым тонам. Я специально не стал подбирать, дабы показать принцип. 

Ещё у меня есть объекты попадающие в воду. Я создал модель воды с волнами и расставил в нужных местах соприкосновения. В дальнейшем в постобработке можно будет слить её с существующим изображением. Отражение на данном материале я назначил картой панорамой. 

Далее настраиваем камеру: Переводим камеру в режим Spherical 360. Ставим Target камеры так, что бы он по Y был равен 0, а по Z (высота) был равен высоте, на которой стоит наша камера. Y выставляем в ноль для того, что бы рендер наших объектов совпадал с нашей панорамой при слиянии их в слоях при постобработке. Иначе придётся накладывать фрагментами.

Ставим разрешение рендера такое же как и наша панорама. Не забываем в обязательном порядке сохранять наш альфа-канал. Ну и собственно рендерим. После уже собираем всё в фотошопе. Добавляем тени... ну вы знаете думаю что и как. Ну и собственно получаем результат.

Если рендер идёт очень тяжко, или вовсе не начинается (например в связи с малым объёмом оперативы), то можно рендерить частями с помощью Crop или Region. 

Результат после объединения в Фотошопе нашего рендера и панорамы выходит таким:

Назначая на фон нашу готовую панораму в пустую сцену 3ds Max-а, можно вытаскивать за пару минуту такие рендеры

Далее загружаем уже полученную панораму для её просмотра, на различные сайты по вашему усмотрению.

Я для примера залил на kuula.co

Ну и повторю результат https://kuula.co/post/7Y1fb

Всем Спасибо!. Надеюсь кому нибудь пригодиться. Понимаю что много ещё нюансов, но тема достаточно широкая, и я постарался затронуть основные.

Постараюсь ответить на все ваши вопросы. 

panorama, 360, урок, exterior, google, street

Комментарии (21)

+3
Mu$limu$
Mu$limu$
Еще и девок на мороз выгнал загорать)))
+4
kirillotron
kirillotron
Все здорово, но не забывайте у авторов панорам сперва разрешение на коммерческое использование спрашивать, если делаете работу за деньги. А то может прецедент случиться)
+13
V.Dolgalev
V.Dolgalev
зануда)))
0
breezeshaman
breezeshaman
Это да. Но никто не запрещает панорамки самим делать и от заказчиков просить. Тут выложил в целях ознакомления.
Вообще у меня вся эта тема поднялась, когда зак не мог предоставить простое фото с объекта. Были шторма и он находился не рядом. Потом он чётко начал настаивать на конкретной точки съёмки. Вот тут я и воспользовался гуглом. В дальнейшем он просто с моими корректировками места, выслал всю информацию. Там кстати как раз проект на согласование был в муниципалитете. Как раз гугл фото было нельзя.
+7
Puss_in_boots
Puss_in_boots
спасибо за труд но ничего не понял :D
+4
breezeshaman
breezeshaman
Просто нужно взять и делать) Я тут и половины статей не понимаю, пока не берусь)
+1
Ruma2a
Ruma2a
Полезная статья!
+1
Delper_ID
Delper_ID
Огромное спасибо, очень полезная статья!!
+1
Dimitred
Dimitred
Пожимаю руку.
+1
DaNPride
DaNPride
Нарушительницу обнаружил, купается в озере, хотя стоит табличка "купаться запрещено"!
Я тоже предпочитаю куулу

Урок годный поставил 5*
0
breezeshaman
breezeshaman
Спасибо)
0
apx_56
apx_56
действительно, там и без неё бревен достаточно!))
0
pifagor3d
pifagor3d
Вот что выдает этот сервис по панорамам когда на него заходишь .
The pricing rates for displaying Google Maps were increased by 3000%.
Yes, you read that right. And as a high school student I'm absolutely not able to pay for that myself.
Since the free quota covers approximately the first two weeks of each month,
the website will still work but it might show a watermark and things like search won't be available.
+2
breezeshaman
breezeshaman
Ну а дальше читать? Там кнопочка есть Continue to website. Жмякайте и вперёд.

Ну и далее я описал как прямо из ссылки доставать ID. Сайт нужен лишь для нахождения ID
0
pifagor3d
pifagor3d
Спасибо, пропустил этот момент. Отличный способ, проверил все работает. Правда не все панорамы вытаскиваются на максимуме, наверно некоторых панорам просто нет в высоком разрешении.
+1
3dcg_artist
3dcg_artist
Большая вам благодарность, очень полезная информация! Теперь отмазок перед самим собой стало еще меньше, чтобы не использовать свои ХДРки =)
0
delavera
delavera
Спасибо!
0
ashes63
ashes63
Отличный урок! Спасибо, буду пробовать
0
chepkajura
chepkajura
СУПЕР!!!
0
a...rt
a...rt
круто! спасибо за тему, хотелось бы уметь но лень углубляться))) а есть что-то по проще? без привязки к карте а просто залить 360 панораму интерьера ,допустим, и скинуть ссылку заказчику чтоб юзал и радовался
0
breezeshaman
breezeshaman
Вы имеет ввиду обычный рендер панорамы интерьера делать? Так тут не про это немного. Делаете рендер и заливаете на сайты для просмотра, и скидываете. Тут рассматривается вопрос не привязки к карте, а именно вписывание чего угодно в панораму так, "что бы смотрелось". Привязка тут нужна именно для правильного отображения предметов.