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

ReplaceNormals3D

ReplaceNormals3D пересчитывает per-vertex normals и tangents входящей 3D-геометрии, управляет smoothing/flip и tangent basis, не меняя position topology и не превращая scene3d в изображение.

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

ReplaceNormals3D

Обзор

Что делает ReplaceNormals3D

ReplaceNormals3D принимает обязательный SceneInput с classic Fusion scene3d и отдаёт тот же data domain через Output. Это geometry/shading processor: pixels появляются только после Renderer3D.

Blackmagic описывает ReplaceNormals3D как средство замены normals/tangents на входящей geometry. Все polygon meshes внутри входной сцены затрагиваются, а lights, cameras, point clouds, locators, materials и другие non-mesh scene objects проходят через ноду без изменения.

Работа идёт с per-vertex normals/tangents, а не с per-face vectors. Это важно: нода не создаёт отдельную normal-карту и не заменяет material shader; она изменяет surface vectors, которыми пользуются lighting и bump-dependent shading.

Pre-Weld Position Vertices — вычислительный helper, а не полноценная сварка mesh. Он временно учитывает совпадающие position vertices как сваренные во время normal/tangent calculation, после чего результат pre-weld отбрасывается. Position topology выходной geometry от этого control не должна меняться.

Если нужно реально объединить position vertices и изменить adjacency/topology на выходе, используйте Weld3D отдельным upstream-этапом. Pre-Weld внутри ReplaceNormals3D не заменяет Weld3D.

Normals / Recompute выбирает policy: Always пересчитывает normals всегда, If Not Present — только когда normals отсутствуют, Never — не создаёт новые normals. Historical tool reference отдельно отмечает Never как полезный вариант в animation workflows, где постоянный recompute не нужен.

Smoothing Angle определяет, через какие соседние faces пересчитанные normals могут сглаживаться. Blackmagic приводит 20–60° как типичный рабочий диапазон, но это не preset: правильный threshold зависит от формы mesh и задуманных hard edges.

Для Smoothing Angle = 0° документация задаёт special case: получаются faceted normals. Это удобный diagnostic mode — он помогает отделить проблему geometry/shading от материала и сразу показывает face-level структуру поверхности.

Ignore Smooth Groups меняет роль imported smooth-group boundaries. Когда опция выключена, faces из разных smooth groups не сглаживаются друг с другом даже при подходящем угле; когда включена, решение может определяться главным образом Smoothing Angle.

Flip Normals меняет направление normals. Это полезно для диагностирования вывернутой surface orientation, но не должно использоваться как универсальный fix: при ошибочной topology/culling проблема может находиться upstream.

Tangents / Recompute имеет ту же policy Always / If Not Present / Never, но tangent vectors предъявляют дополнительное требование: input geometry должна иметь texture coordinates. Без usable UV/UVW корректный tangent basis вычислить нельзя.

Flip Tangents U и Flip Tangents V меняют ориентацию tangent basis по соответствующим texture directions. Эти controls имеют смысл прежде всего в bump mapping и других material workflows, которые реально используют tangents.

Blackmagic отдельно предупреждает, что большинство Fusion primitives не хранят tangents заранее: Renderer3D может создать их on demand и закэшировать, если material требует bump mapping. ReplaceNormals3D нужен, когда tangent generation требуется контролировать явно до Renderer3D.

Из-за этого Flip U/V иногда визуально кажется 'неработающим': если tangents ещё не существовали и никакой material их не использует, beauty image может не измениться. Проверять tangent controls нужно на geometry с UV и реальным bump-dependent material.

Не пересчитывайте normals автоматически только потому, что lighting кажется непривычным. Historical Blackmagic reference предупреждает, что baked high-poly → low-poly bump workflows могут быть связаны с исходными authored normals; их recompute способен ухудшить задуманный shading.

Порядок относительно transforms важен. Blackmagic отмечает, что вычисления ReplaceNormals3D выполняются в local coordinates каждой geometry, а не в coordinate system самой ноды; non-uniform scale, применённый upstream, может дать неправильный результат. Надёжный baseline — recompute normals/tangents до non-uniform Transform3D.

ReplaceNormals3D не меняет UV coordinates. Если проблема в texture placement, seam или отсутствующих UV, используйте UVMap3D или исправьте source mesh; tangent recompute не заменяет UV generation.

Нода также не является remesh, triangulate или decimation tool. Для face topology используйте Triangulate3D/Weld3D или внешний DCC в зависимости от задачи; ReplaceNormals3D оставляет positions/faces как отдельный слой данных.

Поскольку все meshes входной scene могут быть затронуты, selective repair лучше строить на отдельной 3D-ветке до Merge3D. Иначе normal policy, нужная одному object, может неожиданно изменить shading другого mesh в той же scene stream.

Для диагностики полезно разделять четыре причины: topology/position continuity, normals/smooth groups, UV/tangents и material. Меняйте по одному уровню и сравнивайте bypass под простым направленным светом.

Bundled Resolve screenshots подтверждают current captured Inspector: Pre-Weld Position Vertices, Normals Recompute, Smoothing Angle, Ignore Smooth Groups, Flip Normals, Tangents Recompute и Flip Tangents U/V. Точные live-results на production mesh в Resolve 21/21.1 в этом проходе не выполнялись и остаются target-build verification.

Renderer3D остаётся границей данных. ReplaceNormals3D.Output можно вести в Transform3D, Merge3D, ReplaceMaterial3D, UVMap3D и другие compatible 3D processors; MediaOut и обычные 2D effects получают только Renderer3D.Image.

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

  • Пересчитать normals на импортированной FBX/Alembic geometry, если shading явно сломан.

  • Создать faceted normals через Smoothing Angle = 0° для диагностики или стилизации.

  • Контролировать smooth transitions через Smoothing Angle и smooth-group boundaries.

  • Исправить orientation через Flip Normals после проверки topology/culling.

  • Создать explicit tangents до Renderer3D для bump-dependent material workflow.

  • Перевернуть U/V tangent direction при доказанной ошибке tangent basis.

  • Пересчитать surface vectors до downstream non-uniform Transform3D.

  • Разделить positional seam, normals issue, UV issue и material issue в диагностике.