Making of Rumyantsevo Park - перевод, часть 1

Коллеги, 

Около месяца назад мы пообщались с Ronen Bekerman - c человеком, сделавшим очень много для развития визуализации в целом и обмена знаниями в этой области. Результатом этого общения стала статья в его блоге - Making of Rumyantsevo Park , переводом которой мы бы и хотели поделится. 

С уважением,

Команда Biganto Visual

1. Вступление

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

Наш опыт - это опыт создания виртуальных туров и сопутствующих услуг для заказчиков, которым нужно что то более интерактивное чем статичные изображения. “Biganto Visual” началось с идеи и нескольких скриптов пару лет назад и сегодня мы работаем как студия визуализации и и как поставщик VR решений для архитекторов, дизайнеров и визуализаторов. Здесь мы хотели бы поделится некоторыми наработками из нашего последнего проекта - “Румянцево парк”.

2. Проект

“Румянцево” это жилой комплекс к востоку от Москвы. Это наш крупнейший проект на данный момент с более чем 1700 квартирами, внутренним двором и ландшафтным парком.

Лучшая часть проекта - каждый экстерьер и интерьер, включая квартиры, лобби, площадки этажей, все они доступны в виде 3D тура. Вы можете пройти по двору, войти в любую парадную, зайти в любую квартиру на любом этаже (в каждую из 1700!), что и рекомендую сделать по ссылке ниже. Также туры работают на современных мобильных устройствах.

Начать просмотр

3. Обзор технологии

Чтобы понять наш подход, необходимо понять технологию в его основе. Наше решение основано на наборе 360-градусных панорам отрендеренных из обычной сцены с использованием VRay или Corona render. Далее эти панорамы обрабатываются нашим движком и собираются в тур с помощью низкополигональной модели сцены.

Работа с панорамами обеспечивает качество картинки и простоту производства на уровне статичных изображений. Мы можем работать с любыми 3d сценами, включая сцены наших заказчиков, с минимальными трудозатратами не меняя обычный пайплайн визуализации. Движок в свою очередь дает нам необходимые 3d свойства тура: стерео эффект, относительную свободу перемещения, поддержку VR устройств.

Данный подход позволяет нам реализовать основные свойства полноценных realtime движков, таких как Unreal or Unity, со всеми их преимуществами, но без сопутствующих недостатков и связанных с ними затрат.

4. Производство тура

Наша технология требует наличия нескольких панорам для демонстрации пространства. Больше панорам дают большую свободу перемещения, т.е. для плавных переходов по туру мы считаем определенной минимальное количество панорам.

Чтобы сделать эти кадры мы используем анимированную камеру в сочетании с определенными маркерами - объектами, для позиционирования камеры. Маркер это выставленный вручную объект типа ”helper”, например “point”. Мы вручную насыщаем сцену такими объектами в местах где мы хотим пройти в туре и используем простой скрипт для создания анимированной камеры и записи ее координат.

Мы рендерим панорамы как в VRay так и в Corona render. Стоит упомянуть, что мы используем кубмапы, а не сферические панорамы. Кубмапы имеют несколько преимуществ: они не требуют конвертации для использования в нашем движке; они проще в постобработке; наконец, исходя из нашего опыта их рендер происходит быстрее (хотя это верно не для всех случаев).

Для обычной однокомнатной квартиры мы просчитываем 15-20 рендеров, в то же время для экстерьеров в проекте “Румянцево” мы достигли цифр в 250-350 панорам на тур. Как вы можете представить, это весьма требовательный к “железу” процесс, поэтому наличие мощных рендер ферм для нас - необходимость. Когда дело касается рендера сотен изображений, уменьшение времени рендера даже на несколько минут в конечном счете оказывает огромное влияние, так что любая оптимизация сцены окупается многократно.

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

Когда подготовлены ключевые элементы тура, мы используем простой web-интерфейс чтобы загрузить их на сервер, посмотреть тур и создать дополнительные элементы (например, всплывающие подсказки, ссылки на другие туры и т.д.).

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

5. Экстерьер – обзор

Для экстерьеров мы в основном используем Corona render, вот так построена сцена на которой мы в итоге остановились:

Любую крупную сцену требуется оптимизировать с самого старта работ, а учитывая что эта же сцена должна использоваться для рендера панорам для 3d тура, оптимизация еще важнее. Максимально возможное использование инстансных объектов, proxу и XRef-ов это необходимость. Также чрезвычайно важно придерживаться структуры слоев и четко следовать чертежам. Обнаружить что объекты разбросаны по слоям и есть проблемы с их позиционированием, это последнее, что хочется увидеть при подготовке сцены к рендеру. Мы всегда начинаем с подготовки чертежей для импорта в 3d max, и как только это сделано, начинаем формировать сцену элемент за элементом, здание за зданием.

Чтобы добавить большинство повторяющихся деталей мы использовали RailClone (дорожные знаки, столбы с освещением, разметка и т.д.). Для добавления дополнительных деревьев, машин и людей незаменим такой инструмент как ObjectPainter. Большинство высокополигональных объектов это, разумеется, прокси. Настройки света стандартные:HDRI/Corona sky + Corona sun.

6. Экстерьер - детали и материалы

Большая часть сцены выстроена достаточно стандартно, но вот несколько интересных деталей:

Окна и шторы:

Для основного здания у нас было всего шесть типов оконных рам и, как только соответствующие полигоны были отделены от фасада, распределить окна с помощью RailClone было простой задачей. Для штор и жалюзи мы использовали эти же полигоны и модификатор “MaterialByElement”. “MaterialByElement” распределяет ID материалов в случайным образом, так что мы можем использовать Multi/sub материал для создания множества шаблонов штор в Sub Material. Сами Sub materials представляют собой просто изображение штор в слоте diffuse и маску в слоте Opacity.

Материал фасада:

Другой интересный элемент - материал плитки на некоторых фасадах и эркерах. С одной сторону нам требовались просматривающиеся детали для вида “с улицы” в туре, с другой стороны плитка не должна существенно влиять на производительность. Использовать геометрию было бы неоправданно “дорого” с точки зрения количества полигонов, поэтому мы решили использовать нарисованные в Photoshop карты для достижения желаемого эффекта. Карты нарисованы и разложены по чертежам, таким образом на фасаде нет разрезанных плиток между этажами.

Неравномерный свет из окон на ночных кадрах:

Для вечерних кадров неравномерный свет в окнах это неотъемлемая часть реалистичного изображения. Есть несколько способов сделать это, но мы предпочитаем использовать CoronaMultiMap. Шаг один - распределить где необходимо CoronaLight в режиме instance. Шаг два - добавить CoronaMultiMap в слот текстуры в CoronaLight (instance mode в карте). Если необходимо выключить случайным образом часть источников освещения, достаточно просто добавить черный цвет в MultiMap.

На этом пока всё! Объем получился достаточно большой, поэтому продолжение перевода опубликуем несколько позже.

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

+7
vladimir.drobzhev90
это интересно! Еще не работал с многоэтажками и не знал детально про свет в окнах, а было всегда интересно как столько окон подсветить!
0
c3dm
делаю текстуру для такого и ставлю в ИС - более подконтрольно
+3
Shershov
Только сегодня наткнулся на эту статью, а тут уже и перевод подоспел) Спасибо, ждём продолжение!
+16
biganto
Нам не сложно - мы авторы оригинала как никак) Продолжение планируем где нибудь через недельку, как руки дойдут до этого.
+1
Alex_39
Ребята , очень интересная статья. Не подскажите, где вы брали текстуры занавесок и штор?
+4
zedb
IKEA. У них шторы в хорошем разрешении и на белом фоне, что существенно упрощает работу над масками.
0
Alex_39
Дружище, спасибо, поищу у них
-13
gavrilinmichail
Комментарий удален
+1
Yarka_Doyarka
интересно как много людей перейдут по этой ссылке ? Мне кажется там вход в НАРНИЮ ))))
0
salat
меня одного больше интересуют интерьеры за окнами? 1700 штук... КАК?!
есть кончено подозрения что там боксы разных размеров с текстурами интерьеров на стенах..
+3
albatr0s
сомневаюсь, что там в экстерьерной сцене за каждым окном была квартира, это неразумно, скорее всего интерьеры вставляли только в те окна, где это реально видно, например на крупных планах на фасад, да и сомневаюсь, что каждая из 1700 квартир уникальна, скорее всего было сделано от 20 до 30 типов квартир для тура, которые просто рандомно рапределили в движке вирт тура
+5
biganto
Вы в правильном направлении мыслите, за исключением части "рандомно распределили в движке вирт тура". Мы действительно заморочились и сделали уникальный вид из окон в каждой квартире, и он правильный: если квартира с окнами во двор на 8 этаже - такой вид там и будет, случайного там нет ничего.
Уникальных квартир было 80+ т.к. дом с изгибом.
В принципе можно об этом подробнее почитать в оригинале статьи, ну или подождать пока выложим перевод оставшейся части - там как раз интерьеры будут.
0
Mitya87
Спасибо, успокоили) Но остался открытым вопрос - при рендере экстерьера в каждом из окон оставалась настоящая 3д-квартира?
0
biganto
Нет, не осталась, да и зачем? Загружать и так немаленькую сцену деталями, которые будут не видно 99,9% времени это нерационально.
Для тех кадров где нужно чтобы был виден интерьер - лучше сделать отдельную сцену, а в ней уже исходить из того, какая нужна детализация.
0
Predator84
правильные подозрения, реальных интерьеров там нет
+1
slavland
Блин, это просто мега круто! Большое спасибо за то что делитесь такими знаниями!
+6
Valentin_K
Статья и рекомендации на вашем сайте выше всяких похвал.
Вы умудрились сделать рекламу на англоязычном ресурсе, а также на русскоязычном (здесь) под видом перевода с английского, хотя сами из России. Тега "на правах рекламы" я здесь почему-то не увидел, но она присутствует.
+7
biganto
Хмм, вы возможно удивитесь, но в России достаточно много людей, хорошо знающих язык и кому комфортно писать сразу на Английском, тем более когда речь идет о технических терминах, аналогам которых на Русском нет. Так что да, это действительно перевод, который делается в свободное от основной работы время. Не занимайся я им - возможно ушел бы с работы на пару часов пораньше, но т.к. людям нравится - то эту "рекламу" мы пожалуй продолжим. Искать тут какой то подтекст или полезную информацию - это уже личное дело каждого.
+3
KSABA
Рекламу по визуалке среди визуальщиков? Для чего?)) Молодцы! "Птички" особенно понравились. +5
+1
Peter_Stone
Читал оригинальную статью! Очень много полезных вещей рассказали. Из самого простого, что мне запомнилось это разнообразный свет в окнах - сразу же после статьи побежал испытывать на своих работах) Огромная вам благодарность за то, что делитесь опытом!
+1
denyskozakov
Плюсую, фишка с рандомным светом очень помогла, спасибо автору.
0
Quasar
В туре много багов. К примеру у меня не получилось выйтиина балкон в первой же квартире. При переходе подгружалась та же точка из которой я пытался переместиться.
0
biganto
Технически - это не один тур, поэтому вполне возможно что из полутора+ тысяч где-то мог закрасться баг, вам "повезло". Если есть возможность и помните где это было - напишите в личку, поправим.
+1
Tumeneff
Делал в одиночку что-то подобное в 2014 г. (360-тур ЖК на 11 домов). Конечно, он рядом не стоял по масштабу, качеству и уровню детализации вашего. Вы ребята просто молодцы.
0
YanCodename
Сколько времени ушло на такую работу? И сколько человек было задействовано?
0
biganto
Сложно сказать, т.к. часто упираешься в согласования/наличие материалов от заказчика. Ну и помимо туров мы делали еще и анимацию и материалы на печать и много чего еще. Собрать сами туры и сделать виз это не долго, но под этот проект делалось много инструментов "на вырост", вроде улучшений в движке. По людям тоже не скажу, на этом проекте у нас все успели поработать в разное время))
0
YanCodename
Ну точные цифры не так важны, просто для понимания объема работ интересно
0
Be11eR0Font
Здорово! Где вы берете такие текстуры полей для плоскости земли?
0
biganto
Google Maps для птички, возможно что то еще было, уже не вспомню с ходу.
+2
Bats13
Начинал этот проект делать я) помню помню да и некоторые рендеры нынешные мои. Жаль так вышло что пришлось уйти, хотел вернуться, но уже было поздно! Огромная работа, парк изначально был другой, это второй вариант!
+2
biganto
Антон, мы с тобой не знакомы - не пересеклись, но от остальной команды тебе Привет!
0
fisart
Прочитал английскую версию. Правильно ли я понял, что у вас после композа интерьеров с заоконной панорамой получилось 87*X= 700+ отдельных туров?.
0
biganto
Да, всё верно. Реальные цифры чуть побольше - 1500+ туров с мебелью и столько же без по квартирам. Холлы, площадки этажей и т.п. это уже мелочи. Идея была в том чтобы на сайте застройщика при выборе квартиры сразу был интерактив.
0
fisart
Вы не рассматривали вариант вставлять в тур панораму за окном и панораму комнаты по отдельности.
Как тутhttp://test.visco.no/360Panorama/ 
0
biganto
Рассматривали, такой подход имеет место быть если в окне ничего нет. Если есть отражения или тюль - уже не подойдет.
PS. Приятно что с 2014 мы первые кому вы написали на форуме))
0
fisart
Как вариант, добавить альфа канал в шейдер. Хотя понятно что размер сцены немного увеличится, но как мне кажется текстура с альфой должна бы хорошо ужаться.
Написал потому что мы сами игрались с такими турами пару раз за последний год . (Как узнал про Matterport, понял что тема перспективная). Вы конечно молодцы что поставили это на рельсы раньше всех среди визуальщиков.
0
biganto
Спасибо, стараемся! Про альфу - у нас пока другие приоритеты в разработке, но подумаем.
0
Banderos
Почти каждый день проезжаю мимо стройки - утром и вечером! =)
0
///ARTVIZLAB
Спасибо, узнал много нового!