FUSION · СПРАВОЧНИК НОД
Disparity
Disparity
Disparity — стереоинструмент DaVinci Resolve Studio: сравнивает левый и правый ракурсы и записывает найденные X/Y-смещения в служебный канал Disparity AUX, сохраняя изображения обоих глаз.
Disparity
Обзор
Что делает Disparity
Disparity работает со стереопарой: находит соответствующие участки левого и правого изображения и оценивает их смещение. Нода доступна в DaVinci Resolve Studio и Fusion Studio; для обычного моноизображения задача стереосопоставления не определена.
Результат отличается от обычной карты глубины. RGB и Alpha обоих глаз сохраняются как изображения, а рассчитанные векторы помещаются в дополнительный канал Disparity AUX. Увидеть только привычный RGB — не значит увидеть или сохранить этот канал.
Векторы имеют компоненты X и Y и выражают сдвиг в пикселях, а не нормализованные экранные координаты или метры. X в основном отражает горизонтальное различие ракурсов, Y помогает выявить вертикальную рассинхронизацию.
Направление тоже важно: Left Output несёт соответствие left→right, Right Output — right→left. Эти поля не обязаны быть простыми копиями с обратным знаком, особенно возле закрытых другим объектом участков.
Начните с Stack Mode. На реальном снимке Inspector показаны None, Horiz, Vert и Layers. Здесь None означает два отдельных глаза; в старых руководствах Blackmagic тот же способ подключения называется Separate. None не выключает стереоанализ.
Для двух отдельных файлов подключите левый глаз в оранжевый Left Input, правый — в зелёный Right Input. В этом режиме используются соответствующие Left и Right Output; для корректного сопоставления кадры должны быть синхронизированы.
Для Horiz (рядом), Vert (друг над другом) или Layers оба глаза находятся внутри одного упакованного изображения. Подключайте этот поток через Left Input; отдельный Right Input/Output в упакованной конфигурации не нужен и может быть скрыт.
Swap Eyes меняет трактовку порядка глаз. Проверяйте его по реальной раскладке исходника: переключатель не усиливает объём и не исправляет шумное поле, если сами кадры плохо совпадают.
Сначала подготовьте материалы: выровняйте экспозицию, баланс белого и заметные различия цвета. Алгоритм ищет соответствия по видимым деталям, поэтому несогласованные цвета и градиенты увеличивают число ошибочных совпадений.
Уберите чёрные рамки и недействительные пиксели после трансформаций. Если у двух видов есть заметный общий сдвиг по вертикали, выполните грубое Y-выравнивание до Disparity, чтобы алгоритм не тратил ресурс на очевидную разницу положения.
Заранее определите, когда устраняется дисторсия объектива. Если после расчёта кардинально поменять геометрию изображения, прежние смещения могут перестать относиться к текущим пикселям.
Method переключает Classic и Advanced. Это два видимых варианта на вкладке Controls; не стоит приписывать им неподтверждённые внутренние алгоритмы. Для честного сравнения сначала зафиксируйте источник, кадр и метод.
В Advanced параметр Warp Count определяет количество этапов уточнения при сопоставлении. Увеличение иногда помогает сложной сцене, но после сходимости лишь замедляет расчёт. Сравнивайте результаты на одной и той же проблемной границе объекта.
Iteration Count регулирует количество итераций. Дополнительные итерации могут улучшить сходимость, но не создадут информацию внутри настоящей окклюзии и не компенсируют неверный порядок глаз.
Smoothness подавляет локальный шум поля. Чрезмерное сглаживание может съесть тонкие детали и размазать скачок глубины на волосах, листве или переднем плане; сравнивайте именно такие участки.
Half Resolution ускоряет подготовительный анализ за счёт уменьшенного разрешения. Для финального контроля отключите его и повторите просмотр при масштабе Viewer 100% и в движении.
На приложенном снимке Advanced установлены Warp Count 5, Iteration Count 10, Smoothness 10.0 и Half Resolution Off. Это зафиксированное состояние конкретной ноды, а не универсальные настройки для каждого клипа.
Для диагностики смотрите X и Y disparity отдельно. Сильная общая составляющая Y подсказывает проверить предварительное вертикальное совмещение; артефакты X вдоль контуров показывают проблемы поиска соответствий.
Не ждите идеального результата в отражениях, однородных областях, повторяющихся узорах и окклюзиях: часть видимой в одном глазу поверхности отсутствует в другом. Максимальные Warp/Iteration Count не устраняют эту физическую неоднозначность.
Disparity не поддерживает RoI/DoD как способ ограничить расчёт отдельной областью. Для контроля времени используйте правильную подготовку, умеренные Advanced-настройки, Half Resolution на черновом этапе и подходящий кэш.
Проверяйте не только стоп-кадр: ошибка может проявиться мерцанием на движении, бликах и границах объектов. Если пространственный расчёт уже качественный, для временного сглаживания AUX допустимо отдельно рассмотреть SmoothMotion.
StereoAlign использует Disparity для изменения геометрии и уничтожает прежние вспомогательные каналы смещения. Если после выравнивания нужна новая disparity, поставьте ещё одну Disparity на уже изменённые изображения.
DisparityToZ — отдельный этап, который преобразует стереосмещения в канал Z при корректных предпосылках о камере и стереогеометрии. Без этой геометрии сдвиг в пикселях нельзя честно называть метрической глубиной.
Для длинных проектов можно сохранить дорогостоящий расчёт в EXR или другом подходящем промежуточном формате, но только после проверки сохранения Disparity AUX при записи и повторном открытии. RGBA-only экспорт воссоздать это поле не сможет.
Когда применять
Рассчитать X/Y disparity для StereoAlign перед disparity-aware выравниванием глаз.
Подготовить auxiliary correspondence для DisparityToZ и дальнейшего Z-depth workflow.
Диагностировать horizontal и vertical mismatch между left/right views.
Обработать отдельные Left/Right eye streams в None/unstacked topology.
Рассчитать disparity из Horiz, Vert или Layers packed stereo representation одним primary cable.
Проверить правильность eye order через Swap Eyes без перестройки всего Flow.
Закэшировать дорогой stereo solve в intermediate с auxiliary channels для повторного использования.
Подготовить disparity к temporal stabilization через SmoothMotion, если correspondence мерцает во времени.
Disparity в контексте
Скриншоты из статьи. Откройте изображение, чтобы рассмотреть его крупнее.
Пример для Disparity.
Оригинальное изображение