NodeIcon StickToSurface

StickToSurface сохраняет положение вершин Деформируемой геометрии в тех же положениях относительно поверхности Геометрии источника деформации с деформацией Геометрия цели деформации.


Как это работает

StickToSurface для каждой вершины в Деформируемой геометрии находит ближайший треугольник в Геометрии источника деформации, используя его нормали, и сохраняет положение вершин относительно этих треугольников.

После этого алгоритм помещает все вершины Деформируемой геометрии в те же позиции относительно треугольников Геометрия цели деформации.

В основном он используется для быстрого преобразования блендшейпов или 4D-последовательности из одной топологии в другую. В этом случае заврапленная нейтральная модель в новой топологии подается на вход Деформируемой геометрии, нейтральная модель в старой топологии подается на вход Геометрия источника деформации, а смесь из старой топологии подается на вход Геометрия цели деформации. На выходе нода создает блендшейп в новой топологии.

../../_images/StickToSurfacePipeline.png

Поскольку нода сохраняет положение вершин Деформируемой геометрии относительно поверхности Геометрии источника деформации, он позволяет сохранять детали Деформируемой геометрии.

Совет

Если Геометрия деформации имеет более плотную сетку, чем Геометрия источника деформации, и содержит детали, которые необходимо сохранить после деформации, рекомендуется увеличить параметр Разбиение поверхности (работает только при условии, что Геометрия источника деформации и Геометрия цели деформации имеют манифолдную) топологию.

Это сгладит поверхности Геометрии источника деформации и Геометрия цели деформации таким образом, что все детали из Геометрии деформации будут более точно перенесены в выходную геометрию.

Кроме того, если площадь поверхности Деформируемая геометрия больше, чем площадь поверхности Геометрия источника деформации, нода сохраняет положение внешних вершин Деформируемая геометрия относительно ближайших треугольников Геометрии источника деформации (эти внешние вершины больше не будут размещаться на поверхности, если установлен параметр Разместить на поверхности).

Деформируемая геометрия с деталями и большей площадью поверхности
../../_images/StickToSurfaceDeformableGeomFlat.png
Геометрия источника деформации с меньшей площадью поверхности
../../_images/StickToSurfaceDeformationSourceFlat.png
Геометрия цели деформации с меньшей площадью поверхности
../../_images/StickToSurfaceDeformationTargetFlat.png
Вывод с параметрами по умолчанию
../../_images/StickToSurfaceOutputDefaultFlat.png
Вывод со значением параметра Разбиение поверхности равным 2
../../_images/StickToSurfaceOutputSubdividedFlat.png
Вывод с параметром PlaceOnSurface
../../_images/StickToSurfaceOutputPlaceOnSurfaceFlat.png

Внимание

Если в Деформируемой геометрии есть ротовая полость или глазницы, а в Геометрии источника деформации их нет, эти полости будут искажены после деформации.

Это связано с тем, что когда узел пытается найти ближайшие треугольники в Геометрии источника деформации для вершин полости Деформируемая геометрия, он находит их в разных местах на голове.

И когда треугольники в этих местах перемещаются или деформируются, это соответственно смещает или деформирует полость, тем самым нежелательно изменяя нашу требуемую полость.

Внимание

Если ваша Деформируемая геометрия или Геометрия источника деформации имеет самопересечения (например, между губами), рекомендуется сначала использовать ноду FixIntersections для Деформируемой геометрии и Геометрии источника деформации для удаления любых самопересечений.

Наличие самопересечений в Деформируемой геометрии или Геометрии источника деформации может привести к неправильному обнаружению ближайших треугольников. Например, когда верхняя губа пересекает нижнюю губу для вершин губ из Деформируемой геометрии, ближайший треугольник из Геометрии источника деформации можно найти как на верхней, так и на нижней губе, что приведет к слипанию губ на блендшейпах с открытым ртом.

Редактор

StickToSurface использует нормали для расчета положения вершин относительно поверхности Геометрии источника деформации.

Поэтому для его работы важно иметь нормали вершин, направленные в ту же сторону, что и нормали треугольника.

Для упрощения задачи поиска треугольников с нормалями вершин, направленными в противоположные стороны от нормалей треугольников, в ноде StickToSurface имеется визуальный редактор, в котором можно узнать количество «треугольников с плохими нормалями» и их расположение.

../../_images/StickToSurfaceVisualEditor.png

Совет

Наличие «треугольников с плохими нормалями»не обязательно приведет к проблемам в расчете, но если такие треугольники присутствуют в Геометрия источника деформации или Геометрия цели деформации, то не лишним будет проверить результат вычисления ноды в близлежащей области этих треугольников, чтобы убедиться, что все вершины расположены правильно.

Внимание

Если после расчета узла возникают проблемы в областях рядом с «треугольниками с плохими нормалями», то можно увеличить параметр Разбиение поверхности, что сгладит поверхность и уменьшит площадь таких треугольников или уменьшит их количество.

Чтобы параметр Разбиения поверхности работал, Геометрия источника деформации и Геометрия цели деформации должны иметь манифолдную топологию.

Входы

Деформируемая геометрия

Geometry Геометрия, которая будет деформироваться относительно поверхности Геометрии источника деформации (нейтральная геометрия, завраппленная в новую топологию)

../../_images/StickToSurfaceDeformableGeom.png
Геометрия источника деформации

Geometry Геометрия, которая будет использоваться в качестве базовой деформации для Деформируемой геометрии (Нейтральная геометрия в старой топологии).

../../_images/StickToSurfaceDeformationSource.png
Геометрия цели деформации

Geometry Геометрия, которая будет использоваться в качестве целевой деформации для Деформируемой геометрии, должна иметь ту же топологию, что и Геометрия источника деформации (Блендшейп со старой топологией)

../../_images/StickToSurfaceDeformationTarget.gif

Выход

Геометрия Деформированная с деформацией, как в Геометрии цели деформации относительно Геометрии источника деформации (Блендшейп с новой топологией)

../../_images/StickToSurfaceOutput.gif

Параметры

Разбиение поверхности:

количество разбиений, применяемых к Геометрии источника деформации и Геометрии цели деформации для дополнительной точности. Для использования Геометрия источника деформации и Геометрия цели деформации должны иметь манифолдную топологию.

Разместить на поверхности:

если установлено, вершины Деформируемой геометрии размещаются на поверхности Геометрии цели деформации, в противном случае вершины будут размещены на том же расстоянии, на котором они находились от поверхности Геометрии источника деформации.

Масштабировать расстояние:

если установлено, масштабирует расстояния до вершин результата от поверхности Геометрии цели деформации относительно масштаба треугольников от Геометрии источника деформации до Геометрии цели деформации