ВИДЕОМОНТАЖЁРDAVINCI RESOLVE · ВИДЕО · AI

FUSION · СПРАВОЧНИК НОД

StereoAlign

StereoAlign / Выравнивание стереопары

Studio-нода для disparity-aware выравнивания стереопары. StereoAlign принимает левый и правый eye streams (или packed stack), за один resampling исправляет vertical alignment, convergence и eye separation, управляет occlusion/depth ordering и выдаёт два eye outputs либо packed result. Для её disparity-зависимых операций upstream уже должен содержать Disparity, а после StereoAlign disparity нужно вычислять заново.

Стерео / VRПродвинутый

StereoAlign

Обзор

Что делает StereoAlign

StereoAlign [SA] относится к Stereo Nodes Fusion и доступна в Studio. Её задача — согласовать левый и правый глаз после того, как upstream уже подготовил корректную стереопару и disparity data.

Ключевой принцип: StereoAlign опирается на disparity, а не на произвольный optical-flow stream. Если на вход пришли только два обычных RGBA изображения без рассчитанной disparity, disparity-dependent interpolation/warp не имеет нужной технической основы.

Типичный порядок — Left/Right source → Disparity → StereoAlign. Если depth/disparity понадобится дальше по графу, ставьте ещё один Disparity после StereoAlign и считайте карту заново на уже выровненной паре.

Причина повторного расчёта принципиальная: StereoAlign геометрически меняет RGBA и при этом consumes/destroys исходные auxiliary disparity channels. Старые значения больше не описывают новые координаты пикселей.

В unstacked/separate-eye topology у StereoAlign два физических image inputs: Left Input и Right Input, и два image outputs: Left Output и Right Output. Это важное исправление относительно упрощённой схемы с одним Image Input/Output.

В packed stereo workflow Stack Mode меняет topology. В captured Resolve 21 UI перечислены None, Horiz, Vert и Layers. При packed Horiz/Vert/Layers весь stereo pair может идти через основной Left Input одним кабелем, поэтому отдельный Right cable не следует дублировать автоматически.

В документации Blackmagic для отдельной пары встречается термин Separate, тогда как сохранённый Resolve 21 Inspector показывает None для unstacked state. На этой странице мы сохраняем label из capture и отдельно объясняем смысл: None = неупакованная отдельная стереопара в проверенном UI-состоянии.

StereoAlign объединяет vertical alignment, convergence и eye separation в одном инструменте, что позволяет выполнить несколько геометрических stereo corrections за один resampling вместо каскада лишних transforms.

Vertical Alignment исправляет наиболее неприятную для зрения ошибку — vertical disparity. Её логично настраивать первой, потому что даже небольшой вертикальный рассинхрон затрудняет фузию глаз и загрязняет последующую оценку convergence.

Vertical Alignment / Apply to определяет, какой eye stream получает correction. Mode выбирает Global или Per Pixel: Global применяет общий сдвиг, Per Pixel использует disparity-aware локальную коррекцию там, где это предусмотрено инструментом.

Y Shift (pixels) — глобальный вертикальный offset. При целочисленной измеренной ошибке Snap to Whole Pixels помогает избежать лишней субпиксельной интерполяции; при реальной дробной ошибке snap может быть слишком грубым.

Vertical Sample относится к измерению/выборке в исходной stereo geometry. Не пытайтесь семплировать уже изменённый StereoAlign output как источник старой disparity: downstream geometry после ноды — другой набор координат.

Convergence Point управляет horizontal offset и тем, где оказывается zero-parallax plane. X Shift двигает соответствие между глазами по X, а Apply to позволяет двигать Left, Right или распределять correction через Split.

Split полезен как симметричная стратегия: требуемый convergence shift делится между глазами, поэтому каждый eye stream проходит меньшую абсолютную трансформацию. Left/Right полезны, если один глаз нужно оставить reference/master.

Convergence не равно Eye Separation. Convergence сдвигает zero-parallax plane, а Separation масштабирует stereo disparity/силу глубины. Эти два действия диагностируйте по отдельности.

Eye Separation / Apply to выбирает Left, Right или Both, а Separation является scale factor с нейтральной точкой 0. Умеренные изменения позволяют ослабить или усилить depth, но экстремальные значения быстро открывают occluded regions.

StereoAlign не может восстановить информацию, которой нет ни в одном eye view. При изменении separation или сильном warp могут появиться holes/transparent gaps: это ограничение исходной stereo coverage, а не обязательно ошибка настройки.

Для каждого глаза есть собственный Depth Ordering. Largest Disparity On Top и Smallest Disparity On Top определяют, какие disparity regions получают приоритет при конфликте warped surfaces. Выбирайте режим по реальной occlusion boundary, а не по названию.

Clamp Edges предназначен для небольших gaps у границы кадра. Он может растягивать edge pixels, поэтому не используйте его как способ скрыть крупную отсутствующую область. Документированный Edge Softness смягчает этот stretch и появляется условно вместе с соответствующей edge-обработкой.

Source Frame and Warp Direction позволяет комбинировать до четырёх вкладов: Left Forward, Right Forward, Left Backward и Right Backward. Они отличаются и color source, и направлением disparity warp.

Left Forward означает left source frame + forward disparity; Right Forward — right source + forward disparity; Left Backward — left source + back disparity; Right Backward — right source + back disparity. Это не четыре уровня качества, а четыре возможных reconstruction contributors.

Дополнительные contributors иногда закрывают holes, потому что в другом глазу может существовать нужная texture. Но если disparities на occlusion не согласуются, смешивание нескольких warps способно дать doubled contours/ghosting. Включайте их по одному и проверяйте конкретный проблемный край.

Refine Edges в captured Inspector подтверждён чекбоксом Enable. Не следует выдумывать Strength/Radius/HiQ как обязательный текущий inventory: дополнительные conditional controls нужно подтверждать в конкретной target build отдельно.

Stack Mode управляет представлением пары: None, Horiz, Vert или Layers в сохранённом UI. Horiz/Vert упаковывают два глаза в один raster layout; Layers хранит stereo representation слоями. Выбранный mode должен совпадать с upstream/downstream topology.

Swap Eyes меняет Left/Right местами. Это исправляет перепутанный eye order и инвертированное восприятие depth, но не лечит плохую disparity, vertical mismatch или неправильную convergence.

Качество оценивайте не только на одном still frame. Просматривайте playback, near/far objects и occlusion boundaries, а тонкие края проверяйте при Viewer 100%/High Quality: nearest-neighbor/low-quality preview может скрывать или, наоборот, подчёркивать interpolation artifacts.

Lens distortion и другие геометрические различия лучше нормализовать до расчёта disparity, если они мешают matching. StereoAlign — этап stereo alignment, а не универсальная замена camera calibration/undistort pipeline.

Production-проверка должна сохранять причинность: сначала валидная Left/Right + disparity, затем vertical alignment, потом convergence, затем eye separation, затем occlusion/edge options, и только в конце Stack Mode/Swap Eyes. После этого при необходимости пересчитайте Disparity downstream.

Когда применять

  • Исправление vertical mismatch между Left и Right eyes

  • Перенос zero-parallax plane через Convergence Point

  • Ослабление или усиление perceived stereo depth через Eye Separation

  • Разрешение occlusion conflicts через Depth Ordering

  • Заполнение небольших warp gaps через source-frame/warp contributors

  • Подготовка separate stereo pair к следующему Disparity stage

  • Работа с Horiz/Vert/Layers packed stereo topology

  • Исправление перепутанного eye order через Swap Eyes