Как мы меняли облик квартала

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

Короткая версия создания одного из шотов.

Расширенная версия процесса создания для сравнения различий между оригинальным видео и финальным.

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

  • Захват движения камеры и объектов (Matchmoving, object tracking);
  • Очистка кадров от лишних элементов (clean up);
  • Правка модели ЖК;
  • Моделирование леса на заднем плане;
  • Визуализация анимации;
  • Композитинг и вывод на монтаж;

Захват движения камеры был выполнен с помощью лидирующего в индустрии приложения 3DEqualizer 4. Особенностью создания захвата движения камеры является то, что перед съемкой необходимо обследовать место съемки, а в нашем случае это была территория рынка и АТК. Не всегда удается забраться в нужное место, иногда «сложные» люди — охранники, значительно мешают работе, и приходится ждать разрешений. В то же время когда будет определено положение и расстояния между всеми ключевыми точками, с помощью 3DE будет гораздо легче выполнять реконструкцию и получить геометрию основных элементов, например зданий, деревьев, машин и т.п.

3DE_tracking.png

Высокой точности легче достичь с помощью обработки движения вручную, когда камера и объекты правильно оценены и их движение не нарушено лишними трансформациями. Но это условие хорошо действует при трекинге камеры в студии или на коротких секвенциях (до 200 кадров, и то это даже лишко будет :) ). В нашем же случае, было 4 секвенции по 300 — 400 кадров, и охват большой территории с большими равномерными областями и движущимися объектами.
Для трекинга я создал маски, ограничивающие области которые могут дать недостоверный результат и создать точки в бесконечном пространстве, и использовал автоматическую сиcтему трекинга, реализованную в 3DE, это позволило сократить работу руками и время производства, но, для точности, необходимо было заранее подготовить данные об объективах дрона, что оказалось не так просто, тот дрон, которым снимали, уже продали, что не дало возможности полноценно заснять Distrotion Grids, мне же пришлось пойти на определенные хитрости в моделировании Lens Distrtion и перемещения элементов изображения на этапе композитинга.
По воссозданным точкам, и согласованию движения камеры, были добавлены несколько дополнительных маркеров вручную, так как необходимо было определить границы объектов и тротуаров. Таким образом, были получены все необходимые данные для создания реконструкции территории и воссоздания отдельных объектов. Зачастую, при последующем расположении объектов в сцене, использовались простые примитивы и полученные в процессе обработки захвата движения камеры маркеры, расположеные в трехмерном пространстве.
Территория будущего ЖК была также размечена полигональной геометрией, которая помогла точнее расположить объекты в сцене Maya.

3De_3D_reconstruct.png

В приведенном ниже видео, вы можете заметить, какие модели были созданы с помощью 3DE. Особое внимание было уделено области на которой будет воссоздана территория будущего леса.

maya_bg_layout.png

Хотя модель ЖК и была заранее подготовлена архитекторами и специалистами по визуализации, она все же содержала в себе множество огрехов, не позволявших ее интегрировать в подготовленную сцену с анимацией камер. Это не было связано с масштабом сцены или размерами, а наоборот, большое количество вопросов вызывала сама полигональная модель, которая обладала не оптимизированной и некорректно расположенной геометрией. При этом, то что хорошо для 3ds max, совершенно непригодно для работы в Maya. В отличие от 3ds max, ядро пакета Maya значительно лучше обрабатывает большое количество объектов, т. е. художникам нет необходимости объединять геометрию в единое целое. Полученная мною модель была создана из множества отдельных объектов, но представлена единым целым объектом. Есть такая особенность у 3ds max, что из-за большого количества объектов, создается много элементов в Track View и он просто перестает нормально открывать и работать со сценой. Это добавило дополнительный этап по коррекции и исправлению всех неточностей, при этом, детализация модели была настолько высока, что лишние элементы, которые не видны на среднем и тем-более на дальнем плане, были исключены и убраны из нее, что значительно облегчило работу.

3dsmax_planing_of_shots.png

Отдельным этапом стала подготовка модели к визуализации с помощью V-Ray. В архитектурной визуализации популярен Corona Renderer, но мой рабочий процесс полностью ориентируется на Maya и V-Ray for Maya, для этого, потребовалось преобразовать материалы и текстуры Corona Renderer в материалы и текстуры V-Ray, а некоторые элементы, которые не могут быть визуализированы средствами V-Ray for Maya, были запечены в виде отдельных текстурных карт и добавлены в основу новых материалов на основе VRayMtl.

Один из тестов визуализации обновленной модели ЖК и материалов с IBL освещением.
Мы собрали сравнительную статистику, в которой модель с ЖК при визуализации с помощью Corona renderer требовала порядка 27 Гб ОЗУ, а после оптимизации, и после внесения корректировок, модель созданная для V-Ray требовала уже 18 Гб ОЗУ, но эти сэкономленные 10 Гб мне помогли в дальнейшем использовать их для моделирования леса, который на самом деле был спонтанным желанием заказчика.
- «А почему бы нам не разместить там лес?! Добавь пожалуйста лес...»
- «Да, сделаем…» - а в голове уже мелькает мысль что придется напрячься с созданием массивов и как растиражировать кучу деревьев.
Конечно хочется сделать некоторое замечание, модель созданная для визуализации с Corona была создана коллегами из 3DCLUB (это ребята которые обучают 3ds max и визуализации в нем), я же со своей колокольни VFX и анимации, смотрю на этот процесс иначе, и для меня важно было экономить вычислительные ресурсы. При этом, на расстоянии более 500 метров от объекта съемки, совершенно нет необходимости в создании травы с высокой точностью, ее можно замаскировать и на этапе композитинга добавить определенные детали или поиграться с оттенками, при этом, даже в отснятом материале, мы не видим каждую травинку из-за специфического шума, формируемого матрицей камеры дрона и просто, огромного расстояния до объекта съемки.
Определенной целью было достижение визуального стиля, который был продиктован моим желанием воплотить образ компьютерной игры SimCity 4, в которую я много играл в детстве… Лааадно, и сейчас играю, друзья, то в грузовички, то города строю :) .

Screen Shot 2019-04-06 at 12.28.53.png

colour_palette_02.bmp

Цветовая палитра сформированная на основе цветов из игры SimCity 4. Далее, в процессе создания ролика и композитинге, я придерживался цветов с оранжевым, и фиолетовыми оттенками, уменьшая зеленый и голубой/синий.

Screen Shot 2019-04-06 at 12.27.22.png

Весь проект выполнялся на V-Ray 3.6, и мы не могли мигрировать при выходе на V-Ray Next. Но после завершения проекта, я провел ряд тестов, которые показали, что V-Ray Next на 25% быстрее и мы можем получить более качественный результат визуализации за то же время. Поэтому следующий проект, будет выполняться уже с применением V-Ray Next, и целого ряда собственных наработок, как в виде скриптов, так и в виде конфигураций Maya и многими другими.
Следующим этапом стал Layout всей сцены и создание модели леса. Было создано несколько вариантов модели. Первая модель была копией оптимизированной модели экспортированной в FBX, и она использовалась для создания определенных опорных элементов в новой сцене Maya. Другая копия модели — полностью экспортированная с помощью V-Ray for 3ds max сцена в формате V-Ray Scene (*.vrscene).

Один из самых первых тестов с захватом движения камеры и сборкой первой сцены.
Зачем собирать модель заново и создавать материалы и придумывать костыли, если можно просто экспортировать сцену и загрузить ее в Maya? Конечно! Без проблем.
Потренировавшись на чайнике Юты (https://en.wikipedia.org/wiki/Utah_teapot), я экспортировал всю модель ЖК из 3ds max с заранее переопределенными на сетевые пути текстурами, процедурным шейдерами и т. п. в файл в формате V-Ray Scene.

maya_vray_scene_mngr.png

Maya как никто лучше подошла для создания модели леса. В 3ds max мы достаточно часто пользуемся различными модулями расширения, которые очень функциональны и могут решать большое количество задач, но это костыль. С точки зрения пользователя Maya, в программе реализовано два мощнейших инструмента, которые могут быть скомбинированы между собой и крайне оптимально использовать ресурсы системы. Я говорю про системы XGen и MASH.
В то время, как с помощью XGen удобно создавать модели растительности и волос, то с помощью MASH удается превосходно создавать копии геометрии, управляемые определенными правилами и паттернами. Что нам стоит нарисовать текстурки для плотностей и трансформации? Конечно, так и сделаем.
После трекинга камеры и реконструкции территории, была получена геометрия, которая покрывала площадь АТК.

maya_mash_building_01.png

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

maya_mash_building_02.png

Учитывая особенности создания клонов одного объекта, необходимо было правильно распределить инстанс-геометрию по поверхности. Для создания копий деревьев и рандомизации трансформаций, был использован набор инструментов MASH. При работе с MASH и V-Ray Proxy стоит обратить внимание на то, что MASH должен создавать именно Instance геометрию, которая будет копировать Input Gparh. Для этого в окне Create MASH Network выберите тип Instancer, и далее данные, которые заложены в узле VRayMesh будут корректно перенесены на каждый из образцов дерева.

maya_mash_building_04.png

В сцене было использовано три различных модели дерева. Но так как на общем плане все детали модели не будут заметны, а скорость визуализации значительно снизится, то было принято решение об изменении материала листвы, в пользу отказа от использования карты прозрачности.
Создав модель леса и импортировав в сцену Maya специально созданную сцену в формате V-Ray Scene, я занялся разработкой освещения.
С освещением все веселее, на раннем проекте, о котором я расскажу отдельно, мы снимали HDRI карту, с помощью широкоугольного объектива и нескольких снимков с различной экспозицией. Здесь же, у нас не было заранее подготовленной карты HDRI, это и являлось большой проблемой при моделировании освещения в сцене. А подобрать день, с подходящей погодой оказалось очень сложно, но доснять фоны для отражений, пришлось, и я забравшись на стройку наснимал необходимые материалы.
Для освещения сцены было решено использовать освещение на основе двух карт HDRI, это позволяет быстро получить приближенное к естественному освещению. Одна карта формирует освещение от окружения от небосвода, а вторая, от солнца, и созданы маски, которые формируют переход от одной модели освещения к другой.
Сами текстурные карты были подготовлены на основе HDR карты с портала hdrihaven.com, что позволило сэкономить финансы и при этом получить высококачественный продукт, в виде текстуры с высоким разрешением.

BG_hdri_map_for_light.png

Визуализация сцены выполнялась в формат V-Ray Image, данный формат превосходно поддерживает различные типы данных и может сохранять все элементы, который выбираются в глобальных параметрах системы визуализации.
В основном для последующей обработки изображений, я использовал следующие элементы: Beauty, Reflection, Specular, Object ID, Material ID, . Для решения технических задач, были созданы специальные сцены, которые были использованы для создания масок определенных типов.

vray_fb.png

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

BG_compositing_shot_nodegraph_2.png

Вообще процесс композитинга мне очень нравится, он достаточно требователен к логическим действиям и вниманию к деталям, и может быть использован для устранения огромного количества косяков. :)
В данном проекте я работал с цветом на основе стандарта ACES (https://www.oscars.org/science-technology/sci-tech-projects/aces), и применении возможностей библиотеки OCIO (разработанной в Sony ImageWorks) (http://opencolorio.org/). Maya, V-ray for Maya, NUKE, DaVinci Resolve и Krita поддерживают OCIO и могут быть сконфигурированы для правильной трансформации цвета между приложениями и дисплеями.
Операции по зачистке кадров, в которых необходимо было вычислить ныне снесенную телевизионную башню, которая находилась в центре Екатеринбурга, людей, которые перемещались под 3D модель и из под нее, а также машины, которые находились не там где нужно, выполнялись как в NUKE, так и в бесплатном приложении Natron, но так как Natron временно прекратил свое развитие, они ищут мейнтейнера, стабильность бесплатного пакета, по сравнению с NUKE конечно же оставляет желать лучшего. Сам же процесс очистки кадров достаточно трудоемок, я поэтому говорил, что удобней работать с шотами длинной до 200 кадров, иногда, необходимо отслеживать движение людей или птиц, или машин, которые могут изменять свое положение за 1 — 2 кадра, а расстояние между этими кадрами, может составлять до 3-х метров (в пикселях это 3 — 5 пикселей), на самом деле это очень много.

BG_compositing_shot_result_before_after.png

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

BG_compositing_shot_result_2.png

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

История разработки нескольких версий одного из шотов.

Один из не утверждённых заказчиком вариантов перехода и формирования образа ЖК — черновик.

В завершении хочется отметить, что многие этапы создания данного проекта позволили гораздо лучше разобраться в комплексном подходе к применению различных аппаратных и программных решений. Например в ходе работы над трекингом, анимацией и визуализацией, очень активно использовалась операционная система семейства Linux (CentOS 7 (1804)), а файловая система XFS (https://xfs.wiki.kernel.org/) продемонстрировала высочайшую скорость работы с секвенциями EXR файлов. Но об этом, я расскажу в отдельном посте, когда закончу более развернутое исследование.

Клиенты:

АСН Инжиниринг (http://asn-i.ru/)

ТЭН | Девелопмент, строительство, управление (http://ten-stroy.ru/)

Создание:

Архитектура ЖК и основная CAD-модель: АСН Инжиниринг

3D модель ЖК и Layout: 3DCLUB (https://vk.com/club3ds)

Съемка с дрона: AERO_KINO (Yekaterinburg) (https://vk.com/aero_kino66)

Matchmove, Look Development, Lighting & Rendering: Дмитрий «dimson3d» Чехлов (http://dimson3d.blogspot.com/)

Маски и ротоскопинг: Анастасия Моисеева

716 0 850 8
4
2019-05-07
Подскажите пожалуйста как делали трекинг модели. Коптер пишет координаты полета и углы поворота камеры или вручную?
2019-05-07
Мощный проект и как всегда качественный материал, тут мне кажется задел на еще как минимум пару статей в блоге.

* Присоединюсь к вопросу Евгения.
2019-05-07
Евгений ШвалёвПодскажите пожалуйста как делали трекинг модели. Коптер пишет координаты полета и углы поворота камеры или вручную?
Да, мы брали данные о камере и работе затвора с записи. Но трекинг самостоятельно определяет положение камеры в пространстве, и далее вручную выполняется коррекция. При правильной информации, о размере матрицы, о фокусном расстоянии, и корректно определенных базовых точках, алгоритм трекинга сам выстраивает траекторию движения камеры или объекта, с минимальным искажением. При этом, коррекция масштаба выполнялась по двум точкам, с заранее промеренным лазерным метром расстоянием. В данном проекте этого было достаточно, но если говорить о студийном материале, то трекеру лучше подать максимальный максимум информации о павильоне и даже расстоянии между маркерами.
2019-05-07
Скоро будет много интересного по этой теме Ром, и создание моделей линз, и коррекция искажений оптических и многое другое ))))
Роман ЦапикМощный проект и как всегда качественный материал, тут мне кажется задел на еще как минимум пару статей в блоге.

* Присоединюсь к вопросу Евгения.
RENDER.RU