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 нужно вычислять заново.
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
StereoAlign в контексте
Скриншоты из статьи. Откройте изображение, чтобы рассмотреть его крупнее.
Пример для StereoAlign.
Оригинальное изображениеПример для StereoAlign.
Оригинальное изображениеПример для StereoAlign.
Оригинальное изображение