Нововведения в R19

Справка Cinema 4D Cinema 4D Visualize, Broadcast, Studio Трекер движения Трекер движения
Функция доступна в CINEMA 4D Studio
Трекер движения

Общие Координаты Футаж 2D трекинг Реконструкция 3D Реконструкция

Реконструкция

Реконструкция сцены — это следующий этап развития реконструкции камеры (которая создаёт лишь множество 3D треков). Она пытается реконструировать видео при помощи трёхмерного облака точек. К тому же, точки или каркас будут окрашены соответственно футажу с помощью цветов вершин.

Результатом этого типа реконструкции сцены может, при идеальных условиях (смотрите также раздел «Оптимальный футаж» ниже), может стать плотное облако точек или когерентный каркас. Реальные результаты реконструкции часто отличаются, так как в большинстве случаев идеальный футаж недоступен. Результатом может стать продырявленное или изолированное облако точек или каркасы.

Серия изображений, изменяющихся по часовой стрелке, и реконструированное облако точек.

Реконструкция сцены не заменяет собою 3D сканер! Создаваемые облака точек или каркасы могут служить, к примеру, в качестве лучшей ориентации в 3D пространстве для воссоздания объектов или для других целей.

Предпосылки реконструкции сцены

Для того, чтобы успешно реконструировать сцену, необходимо всегда сначала выполнить успешную реконструкцию камеры, то есть произвести 2D трекинг и затем нажать на кнопку 3D реконструкция во вкладке «Реконструкция 3D» (или же всё можно сделать автоматически, выбрав команду Полная реконструкция в основной вкладке объекта Трекер движения). Полезной может быть также калибровка камеры и 3D треков при помощи тегов Принуждения, которые корректно определят масштаб и ориентацию сцены и облака точек.

В каких случаях реконструкция камеры будет удачной? В случае, когда все вышеописанные шаги были выполнены и в качестве дочерних объектов Трекера движения расположены авто-треки или треки пользователя. Эти 3D треки важны, так как они позже будут использованы для реконструкции сцены в качестве исходных точек.

После этого, существующие 2D треки уже не будут играть роли в реконструкции сцены.

Оптимальный футаж

Оптимальный футаж, с которым реконструкция сцены будет работать правильно, имеет следующие характеристики:

Полезная информация

Ограничения

Как это работает?

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

Что происходит после нажатия кнопки «Произвести реконструкцию сцены»?


  1. Из множества кадров автоматически выбирается их некоторое количество (как минимум каждый десятый, если камера движется быстро).
  2. В каждом кадре есть определённая позиция камеры, просчитанная ранее из при 3D реконструкции камеры.
  3. Каждый из кадров будет «разбит» сеткой квадратных клеток.
  4. 3D точка в сцене, которая видима из различных позиций камеры, обладает 2D позицией в каждом соответственном кадре. Эта точка расположена в одной клетке.
  5. Предварительно выполненная 3D реконструкция камеры уже создала 3D точки (3D треки). Они используются для создания исходного патча. Патчи — это точки в пространстве, из которых позже будет создано облако точек. Каждый патч представляет собою маленькую, область поверхности.
  6. Для каждого кадра определяется какой патч соответствует какой клетка .
  7. Далее начнётся итеративный процесс расширения, на протяжении которого будут созданы дополнительные патчи на основе уже существующих патчей (они будут находится на трёхмерной поверхности, которая должна быть реконструирована).
  8. Новые патчи будут назначены клеткам и сеть клеток будет постепенно заполняться. В идеале, в каждой клетке должен быть патч (что в реальности случается довольно редко).
  9. Расширение и создание новых патчей будет происходить в направлении пустых клеток.
  10. Процесс расширения будет продолжаться, пока не будут созданы все соответствующие различным внутренним фильтрам патчи (каждый созданный патч проходит ряд проверок; если он не проходит их, он будет удалён) или пока во всех клетках не будет минимум одного патча.

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

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

Предустановки

Тут можно найти различные предустановки, которые определяют настройки, расположенные ниже, в зависимости от уровней качества. Если вы не можете достигнуть желаемых результатов с помощью этих предустановок, тогда можно с уверенностью сказать, что используемых футаж не оптимален (смотрите также Оптимальный футаж).

 Расширенные настройки

Только облако точек

Если эта опция активна, будет создано лишь одно облако точек под названием «Облако точек сцены» (полигональный объект без полигонов, но с точками, которые окрашены в цвета, установленные из футажа, при помощи тега Цвет вершин). Точки полигонального объекта соответствуют реконструированным 3D точкам в пространстве.

Если же она неактивна, будет сделана попытка дополнительно создать полигональный каркас под названием «Каркас сцены». Детали о нём можно найти в Создание каркаса.

Рекомендуется для начала создать облако точек и если вы останетесь довольны его плотностью и размерами, создать каркас.

Итерации [1..3]

Обратите внимание на уменьшающееся количество пробелов при каждой последующей Итерации. Её значения слева на право: 1, 2 и 3.

Если вы обратите внимание на то, как работают внутренние процессы этой опции, вы заметите, что при этом выполняется целый ряд итеративных заданий. В основном это создание новых патчей в пустых регионах, оптимизация и фильтрование «плохих» патчей и повторение этих процессов. Эта опция задаёт, сколько же раз этот процесс должен повториться.

Чем выше это значением, тем плотнее будет облако точек и тем больше времени займёт просчёт сцены.

Дискретизация футажа [0..8]

Для 3D реконструкции камеры (Ресамплинг) и для реконструкции сцены существуют две независимые друг от друга опции, которые определяют разрешение используемого для реконструкции футажа. Опция Дискретизация футажа применяется для реконструкции сцены.

Если футаж для реконструкции сцены должен быть обработан внутренне с меньшим разрешением, увеличьте это значение. Разрешение при значении 0 будет соответствовать оригинальному (смотрите также следующий раздел), 1 — половине разрешения (в обоих измерениях, то есть квадратная пиксельная область будет соединенна вместе из четырёх пикселей) и т.  д. Реконструкция сцены будет выполняться быстрее по мере увеличивающегося разрешения, но плотность облака точек будет уменьшаться.

Вы можете использовать эту опцию (со значениями больше 1), если загружен футаж с очень высоким разрешением. Это поможет уменьшить время просчёта.

Обратите внимание, что значение 0 для оригинального разрешения не всегда даст лучшие результаты, чем 1. В зависимости от расстояния от камеры до патча, внутренне будет использовано другое разрешение. Задаваемое разрешение действительно лишь для определённого расстояния от камеры до патча (оно задаётся при помощи так называемой «контрольной камеры»). Заданное разрешение будет использоваться для всех расстояний. Если же расстояние от камеры до патчей будет сильно отличаться, применяется меньшее или более высокое разрешение соответственно. Если же значение 0, то более высокое разрешение применить невозможно.

Этот механизм облегчает сравнение патчей на различных расстояниях.

Плотность точек [1..8]

Значения опции Плотность точек слева на право: 3, 5 и 7.

Как уже упоминалось в разделе Как это работает, на каждом кадре футажа создаётся сетка. Алгоритм пытается рассчитать 3D точку для облака точек в каждой клетке сетки. В идеальном случае (при наличии оптимального футажа), в каждой клетке будет просчитана точка (в большинстве случаев промежутки всё же останутся).

В любом случае, значение опции Плотность точек задаёт индивидуальный размер клеток сетки. Чем больше это значение, тем меньше будут клетки и тем плотнее будет облако точек. Максимальным значением является 8 — размер клетки будет соответствовать размеру пикселя и, в идеальном случае, в каждом пикселе футажа будет расположена точка облака точек. Естественно, время на визуализацию будет увеличиваться соответственно увеличению этого значения.

Размер патча [3..2147483647]

Значения опции Размер патча слева на право: 5, 10, 20, 50, 100. Обратите внимание на улучшение качества с увеличением значений.

Алгоритм пытается распознать маленькие области в футаже в различное время, чтобы определить и оптимизировать позицию и вращение патчей. Размер патча задаёт квадратный размер этих регионов в пикселях. Это значение по принципу похоже уже известную опцию Размер образца во вкладке 2D трекинг и выполняет туже функцию для реконструкции сцены.

И вновь повторяем: каждый патч будет позже представлен в виде 3D точки облака точек.

Увеличение значения этой опции увеличит качество облака точек соответственно и, конечно же, время просчёта. Обратите внимание как, к примеру, на изображение выше с увеличением значения исчезает искривление оконной рамы и решётки в нём.

Мин. детали текстуры [0..100%]

Эта опция контролирует порог, который проверяет вариации пикселей патча. Если в пределах патча не происходит никаких изменений, то есть он монотонный без резкого контраста, то заданное тут высокое значение предотвратит создание патча (реконструкция не будет выполнена в этом месте).

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

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

Начальное значение 0.5% должно быть подходящим для большинства футажей.

Фильтровать маленькие группы

Слева неактивная и справа активная опция Фильтровать маленькие группы.

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

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

Мин. угол [0..180°]

О каком угле речь? Представьте себе прямую линию между первой камерой и патчем, а также между второй камерой и патчем: обе линии пересекутся на патче. Об угле между этими линия и пойдёт речь.

Патчи обрабатываются относительно различных позиций камеры (из реконструкции камеры). Эта опция задаёт минимальный угол между камерами и предотвращает обработку патча двумя соседними камерами, которые возможно даже не сдвинулись (патч относительно каждой из этих камер в итоге будет идентичным). Значение опции по умолчанию подходит для большинства футажей. Для видео, в которых камера движется очень мало, имеет смысл слегка понизить значение опции. Однако, это может уменьшить точность реконструкции. Не обманывайтесь количеством патчей и реконструированных точек после понижения значения этой опции — количество не всегда равняется качеству.

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

Различные значения опции Мин. угол приведут к показанному выше эффекту. Значения растут по часовой стрелке: 2°, 5°, 10° и 15°

 Создание каркаса

Если все опции раздела «Расширенные настройки» касались создания облака точек, то здесь пойдёт речь о создании каркаса из этих точек.

Вес поверхности [0..100%]
Вес фотометрики [0..100%]

Обе опции имеют похожие эффекты.

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

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

Вес фотометрики работает немного хитрее, чем Вес поверхности, так как использует также информацию футажа.

Создать каркас

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

Каркас использует точки облака точек. Если вы внимательно посмотрите на облако точек, то увидите, что даже реконструированные на плоской поверхности футажа точки не будут на ней лежать. Каркас воспроизводит плоские поверхности с трудом и всегда будет выглядеть на них слегка неровным. Таким образом, реконструкция сцены не может успешно конкурировать с 3D сканерами.

На заметку: для сглаживания каркаса, задайте ему тег Фонг.

Слева, созданный при помощи облака точек, каркас. Каркасу внизу справа были назначены шейдер Вершин и тег Цвета вершин (в качестве альтернативы, его можно текстурировать прямо с футажом при помощи проецирования камеры).

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

Произвести реконструкцию сцены

Нажатие этой кнопки начнёт реконструкцию сцены. Результатом станет облако точек сцены с тегом Цвет вершин (в котором сохранён каждый цвет каждой точки футажа). Если опция Только облако точек неактивна, также будет создан полигональный объект под названием Каркас сцены. Этот объект будет также обладать тегом Цвет вершин с соответственными цветами.

В зависимости от футажа и настроек, просчёт может занять до нескольких минут.

Эта кнопка будет неактивна если некоторые необходимые шаги для реконструкции не были выполнены, например: