FUSION · СПРАВОЧНИК НОД
dHoldout
dHoldout / Deep Holdout
Studio-only Deep-нода с двумя входами: Foreground Deep Image окклюдирует samples Background Deep Image по их реальной глубине, а Output остаётся Deep для дальнейшего depth-aware compositing.
dHoldout
Обзор
Что делает dHoldout
dHoldout [dHld] — инструмент Deep Image Compositing в DaVinci Resolve Studio. Обычное RGBA-изображение хранит один итоговый цвет на пиксель; Deep Image может хранить несколько samples с разной глубиной в одном пикселе. Поэтому dHoldout решает задачу перекрытия по Z, а не просто по плоской маске.
У ноды два обязательных по смыслу входа. Оранжевый Background принимает Deep-изображение, из которого нужно убрать скрытую часть. Белый Foreground принимает Deep-изображение объекта-окклюдера — того, кто находится перед Background и закрывает его.
Название Foreground не означает, что нода автоматически добавляет передний объект в готовый beauty-кадр. Она использует Foreground для вычисления holdout в Background. Чтобы отдельно собрать видимый foreground и background, продолжайте работу средствами Deep-композитинга, например dMerge.
Выход dHoldout остаётся Deep Image. Нода не выдаёт готовую 2D-картинку и не является генератором matte для обычного Merge. Для просмотра и последующей 2D-сборки поставьте DeepToImage после завершения операций с глубиной.
Базовая проверка — два согласованных Deep-источника с простым непрозрачным пересечением. При Compute Occluded Samples = Off и Holdout Z Offset около 0 Foreground должен скрывать только Background samples, находящиеся за ним по глубине.
Compute Occluded Samples нужен для отдельного случая — полупрозрачного Foreground. По руководству Resolve этот флажок позволяет удалить скрытые samples и пересчитать видимые background pixels так, словно они рассматриваются через частично прозрачный объект. Это не кнопка «улучшить качество» для любого шота.
Проверяйте Compute Occluded Samples на стекле, дыме или тонком объёме с читаемой текстурой позади: сделайте A/B Off/On на одном кадре и затем в движении. На полностью непрозрачном Foreground визуальная разница может быть неочевидна и не доказывает работоспособность опции.
Holdout Z Offset смещает depth boundary окклюдера. Руководство задаёт направление: уменьшение значения двигает holdout вперёд, увеличение — назад. Начинайте с нуля, затем сравнивайте небольшое отрицательное и положительное смещения, не меняя одновременно другие параметры.
Z Offset — поправка границы, а не конвертер единиц глубины. Если нужен огромный offset, сцена окклюдируется в обратном порядке или края разъезжаются, прежде всего проверьте камеру, масштаб Z, направление depth и синхронизацию исходных слоёв.
Кнопка Sample предназначена для интерактивного выбора значения в Viewer: её перетаскивают в окно просмотра. Точный внутренний алгоритм связи выбранного значения с прочими настройками здесь не утверждается: в доступном описании руководства такой формулы нет.
Holdout Center имеет координаты X и Y и позволяет перемещать центр настройки. На сохранённом скриншоте обе координаты равны 0.5; это удобная нейтральная отправная точка, а не обязательное значение для всех сцен. Center не рисует Polygon и не заменяет второй Deep-вход.
Для надёжного результата Background и Foreground должны совпадать по кадру, camera transform, разрешению, framing и conventions глубины. Перепутанные камеры или один кадр задержки могут проявляться как ложная вырезка, двойные границы или нестабильные пересечения.
Deep-композитинг следует выполнять в линейном цветовом пространстве. Если источники пришли из разных рендереров или прошли разную цветовую обработку, отдельно проверьте интерпретацию RGB/alpha и Z, прежде чем делать вывод об ошибке самого dHoldout.
Некоторые Deep-ноды Resolve допускают автоматическое преобразование плоского изображения во входной Deep-поток. Но обычный RGB/alpha не превращается от этого в полноценный согласованный набор depth samples: тип данных и физический смысл глубины нужно проверять отдельно.
Для контроля создайте диагностическую ветку dHoldout → DeepToImage → Viewer и сравните её с исходным Background. Так можно проверить результат в 2D, не разрушая основной Deep-граф; сам вывод dHoldout продолжит оставаться многослойным по глубине.
Если результат выглядит как обычная чёрно-белая маска с грубыми краями, сначала убедитесь, что на обоих входах действительно Deep data. Плоский Polygon, маска Effect Mask и геометрический Deep Foreground не являются взаимозаменяемыми источниками окклюзии.
Для движущихся объектов смотрите серию кадров: popping на границе чаще связан с несогласованными sample depths, движением камеры или рендерами разных моментов времени. Случайные ключи Z Offset обычно скрывают симптом, но не решают причину.
На стекле, дыме и волосах оценивайте flattened preview сразу по RGB и альфе на реальном фоне. Один идеально выглядящий кадр не гарантирует стабильных прозрачных пересечений на всём фрагменте.
Если задача не зависит от нескольких глубин в одном пикселе, обычная 2D-маска может быть проще и дешевле. dHoldout полезен именно тогда, когда положение samples по глубине важнее плоского силуэта.
В типовой схеме Deep Background и Deep Occluder входят в dHoldout; результат поступает в последующие Deep-ноды (например, dMerge), а DeepToImage ставится на конечной границе перехода к 2D. Порядок должен соответствовать задаче конкретного шота.
Сохранённый в проекте PNG показывает реальные Controls: Compute Occluded Samples, Holdout Z Offset, Sample и Holdout Center X/Y. Скриншот подтверждает названия элементов Inspector, но не подтверждает поведение конкретной версии Resolve при рендере.
Для автоматической сборки .comp/.setting имена портов и идентификаторы параметров требуется сверять экспортом из целевой установленной версии Resolve. Эта страница описывает подтверждённый пользовательский смысл элементов, но не объявляет live-сертификацию графа завершённой.
Когда применять
Скрыть CG/background Deep samples за foreground geometry без ручной 2D roto.
Сделать корректный holdout для стекла, дыма и других semi-transparent Deep элементов.
Удалить samples, физически находящиеся за depth-aware foreground.
Подготовить Deep-ветку перед dMerge и другими Deep operations.
Подстроить близкие depth intersections небольшим Holdout Z Offset.
Сохранить Deep structure до финального DeepToImage flatten.
dHoldout в контексте
Скриншоты из статьи. Откройте изображение, чтобы рассмотреть его крупнее.
Пример для dHoldout.
Оригинальное изображение