ВИДЕОМОНТАЖЁРDAVINCI RESOLVE · ВИДЕО · AI
ОбработкаFUSION

Replicate3D

Replicate3D размещает одну или несколько входных 3D-сцен в позициях вершин или 3D-particle positions Destination, позволяя прореживать точки, выбирать source по Loop/Random, ориентировать копии и добавлять воспроизводимый Jitter.

Нода в работе
Иллюстрация нодыReplicate3D
РезультатСцена 3D

Replicate3D

Обзор

Что делает Replicate3D

Главная модель Replicate3D состоит из двух разных ролей входа. Обязательный Destination содержит 3D scene/geometry с vertex positions или 3D particle positions. Input[#] содержит 3D geometry/scene, которую нужно разместить в этих позициях. Путать эти роли нельзя: Destination не является копируемым объектом, а source Input не создаёт distribution сам.

После подключения первого source Input нода создаёт следующий Input[#], поэтому несколько разных source scenes можно чередовать или выбирать случайно. Blackmagic прямо описывает этот вход как dynamic alternating input sequence; по крайней мере один source Input должен быть подключён вместе с Destination.

Step не выбирает 'текущую копию' и не редактирует instance index. Он прореживает positions Destination. Step = 1 использует все позиции, Step = 3 — каждую третью. Это один из первых controls, которые стоит трогать на плотных meshes: меньше positions означает меньше replicated geometry и обычно меньшую нагрузку.

На parametric geometry Step можно использовать не только как performance control, но и как грубый pattern selector: разные значения берут разные подмножества ordered vertices. Однако это не замена mask/selection system и результат зависит от vertex order Destination.

Blackmagic отдельно отмечает historical PointCloud3D edge case: renderable point cloud внутренне может представляться несколькими points на один визуальный point. Поэтому Step и небольшие translation offsets иногда нужны для получения ожидаемого одного replicated object на visual point. Такие exact offsets зависят от object type/scale и должны проверяться в target build.

Input Mode имеет смысл только при нескольких Input[#]. Loop идёт по source scenes последовательно и повторяет sequence, когда destination positions больше, чем sources. Random выбирает source для каждой позиции детерминированно от Random Seed в Jitter tab. С одним source Input визуальной разницы между Loop и Random быть не должно.

Для particle destinations нужно помнить, что particle IDs могут меняться при death/rebirth. Manual предупреждает: если ID меняется, Random source assignment/order тоже может измениться. Поэтому не стройте критически важную последовательность на предположении, что particle ordering вечен.

Controls / Time Offset смещает анимацию source geometry на фиксированную величину per copy. Это не random jitter: при анимированном source последовательные copies могут брать разные временные состояния, например соседние frames texture/animation.

Jitter / Time Offset — отдельный control с другим смыслом: он добавляет random time variation на основе Random Seed. Для диагностики сначала поставьте Jitter Time Offset в 0 и проверьте deterministic Controls Time Offset, затем включайте random stage.

Alignment определяет orientation copied geometry относительно Destination normal или particle rotation. Not aligned сохраняет orientation source mesh и только размещает его в positions. Это лучший baseline, когда нужно сначала проверить distribution без вмешательства surface orientation.

Aligned использует normal точки и пытается восстановить up-vector. Manual отмечает, что режим хорошо работает на некоторых organic/unwelded meshes, но на planar geometric meshes может появляться постепенный rotation shift. Также Blackmagic рекомендует использовать такой alignment до лишних transforms, ближе к origin, и проверять результат на конкретной topology.

TBN Aligned строит orientation из tangent, binormal и normal Destination point. Это более устойчивый вариант для particles и geometric shapes, но на coincident unwelded vertices отдельные points могут иметь разные normals/TBN и поэтому давать разные orientations. Это topology/shading data issue, а не обязательно ошибка Replicate3D.

Color относится прежде всего к particle color. Use Object Color игнорирует destination particle color. Combine Particle Color сохраняет shader source mesh и модифицирует diffuse color по particle color. Use Particle Color заменяет shader source mesh default shader'ом, diffuse которого берётся из destination particle color.

На mesh-only Destination без meaningful particle color Color modes не нужно выдавать за универсальную vertex-color remapping систему. Для baseline оставляйте Use Object Color; particle color workflow проверяйте на настоящем 3D particle destination.

Translation, Rotation, Pivot и Scale — базовые transforms replicated copies. Rotation Order задаёт порядок Euler rotations. Lock X/Y/Z у Scale переключает uniform scale на независимые X/Y/Z values. Эти transforms применяются после placement logic и должны настраиваться отдельно от Alignment, чтобы не маскировать orientation problems.

Jitter tab добавляет seed-driven variation. Random Seed делает pattern воспроизводимым; Reseed/Randomize создаёт новый seed. Translation/Rotation/Pivot/Scale Jitter меняют variation соответствующих transforms, а Jitter Probability из текущего Inspector ограничивает долю copies, на которые применяется jitter.

Pivot Jitter действует на additional jitter rotation и не заменяет базовый Pivot/Rotation в Controls. Если объект 'гуляет' по орбите вместо локального поворота, проверяйте source origin и оба pivot уровня по отдельности.

Scale Jitter с Lock X/Y/Z даёт uniform size variation; после снятия lock появляются independent-axis variations. Сильный non-uniform jitter быстро превращает одинаковую source geometry в сильно искажённые copies, поэтому для production обычно лучше начинать с малых значений.

Replicate3D не является Duplicate3D. Duplicate3D создаёт series copies на основе собственной copy/transform logic; Replicate3D использует уже существующие destination positions из mesh/particle scene. Если нужен простой линейный массив без destination field, Duplicate3D обычно проще.

Replicate3D также не является particle generator. pEmitter/pRender или другая particle chain создаёт/преобразует particles; Replicate3D лишь использует 3D particle positions как Destination, когда такой scene3d уже существует.

Output остаётся classic Fusion scene3d. Его можно вести в Merge3D, Transform3D, Renderer3D и другие compatible 3D nodes. Напрямую в MediaOut или обычный 2D effect Output вести нельзя — scene3d превращается в image только на Renderer3D.Image.

Bundled screenshots подтверждают текущий captured Inspector: Step, Loop/Random, Time Offset, Not aligned/Aligned/TBN Aligned, три Color modes, базовые transforms, Random Seed/Reseed, Jitter Probability и transform jitters. Live execution этих controls в Resolve 21/21.1 в этом авторском проходе не выполнялся и остаётся отдельным target-build verification gate.

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

  • Разложить Shape3D/FBX/Alembic geometry по вершинам другого mesh.

  • Заменить 3D particle cells на полноценную geometry после 3D particle render path.

  • Чередовать несколько source meshes по одному Destination через Input Mode = Loop.

  • Получить воспроизводимую случайную смесь нескольких source meshes через Random + Seed.

  • Проредить тяжёлый destination field через Step.

  • Ориентировать copies по normal или TBN frame destination points.

  • Передать particle color в diffuse/shader strategy source geometry.

  • Разнести source animation во времени per copy и добавить random time jitter.

  • Добавить контролируемую вариативность position/rotation/pivot/scale без изменения Destination topology.