# StickToSurface

StickToSurface keeps the position of the vertices of **Deformable Geometry** at the same positions relative to the surface of **Deformation Source Geometry** with **Deformation Target Geometry** deformation.

**How it works**StickToSurface for each vertex in a

**Deformable Geometry**finds closest triangle in a**Deformation Source Geometry**using its normals and stores vertices position relative to that triangles.After that it places all

**Deformable Geometry**vertices at the same positions realtive to**Deformation Target Geometry**triangles.

It is mainly used to quickly convert blendshapes or 4d sequence from one topology to another.
In this case, the wrapped neutral model in the new topology is fed into the **Deformable Geometry** input, the neutral model in the old topology is fed into the **Deformation Source Geometry** input, and the blend from the old topology is fed into the **Deformation Target Geometry** input.
At the output, the node produces a blend in the new topology.

Since the node saves the position of the vertices of **Deformable Geometry** relative to the surface of the **Deformation Source Geometry**, it allows you to keep the details of the **Deformable Geometry**.

Tip

If **Deformation Geometry** has a denser mesh than **Deformation Source Geometry** and contains details that need to be preserved after deformation, it is recommended to increase the **Surface Subdivisions** parameter (only works when **Deformation Source Geometry** and **Deformation Target Geometry** has manifold topology).

This will smooth out the surfaces of **Deformation Source Geometry** and **Deformation Target Geometry** so that all details from **Deformation Geometry** are more accurately transferred to the output geometry.

Also, if the **Deformable Geometry** surface area is larger than the **Deformation Source Geometry** surface area, the node keeps the position of the **Deformable Geometry** outer vertices relative to the nearest **Deformation Source Geometry** triangles (And these outer vertices will no longer be placed on surface if **Place on Surface** set).

**Deformable Geometry**with details and larger surface area**Deformation Source Geometry**with a smaller surface area**Deformation Target Geometry**with a smaller surface area**Output**with default params**Output**with**Surface Subdivisions**is set to 2**Output**with**PlaceOnSurface**set

Attention

If **Deformable Geometry** has mouth socket or eye sockets, but **Deformation Source Geometry** doesn’t, these sockets will be corrupted after deformation.

This is because when the node tries to find the closest triangles in **Deformation Source Geometry** for **Deformable Geometry** socket’s vertices, it will find them in different places on the head.

And when triangles in these places move or deform, that will move or deform the socket accordingly, thereby undesirably changing our socket.

Attention

If your **Deformable Geometry** or **Deformation Source Geometry** has self-intersections (e.g. between lips) it is recommended to first use the FixIntersections node to **Deformable Geometry** and **Deformation Source Geometry** for removing any self-intersections.

The presence of self-intersections in **Deformable Geometry** or **Deformation Source Geometry** may cause incorrect finding of nearest triangles. For example, when upper lip intersect lower lip for lips vertices from **Deformable Geometry** the closest triangle from **Deformation Source Geometry** can be found on both the upper and lower lip, which will lead to lip sticking on blends with an open mouth.

## Editor

StickToSurface uses normals to calculate vertices position relative to the surface of **Deformation Source Geometry**.

Therefore, for its work, it is important to have vertex normals that directs into same direction as triangle normals.

In order to simplify the task of finding triangles with vertex normals directed in the opposite directions from the normals of triangles StickToSurface node has a visual editor in which you can find out the number of “triangles with bad normals” and their location.

Tip

The presence of “triangles with bad normals” will not necessarily lead to problems in the calculation, but if such triangles are present in **Deformation Source Geometry** or **Deformation Target Geometry**, then it will not be superfluous to check the result of the node computation in the nearby area of these triangles to make shure that every vertices are positioned correctly.

Attention

If after computing the node there are problems in the areas next to “triangles with bad normals”, then you can increase the **Surface Subdivisions** parameter, which will smooth the surface and reduce the area of such triangles or reduce their count.

For the **Surface Subdivisions** parameter to work, **Deformation Source Geometry** and **Deformation Target Geometry** must have manifold topology.

## Inputs

- Deformable Geometry
`Geometry`

Geometry that will be deformed relative to surface of**Deformation Source Geometry**(Wrapped neutral geometry in the new topology)- Deformation Source Geometry
`Geometry`

Geometry that will be used as base deformation for**Deformable Geometry**(Neutral geometry in the old topology)- Deformation Target Geometry
`Geometry`

Geometry that will be used as target deformation for**Deformable Geometry**, must have the same topology as**Deformation Source Geometry**(Blend in the old topology)

## Output

## Parameters

- Surface Subdivisions:
number of subdivisions applying to

**Deformation Source Geometry**and**Deformation Target Geometry**for additional accuracy. For usage,**Deformation Source Geometry**and**Deformation Target Geometry**must have manifold topology- Place on Surface:
if set, the vertices of

**Deformable Geometry**are placed on the surface of**Deformation Target Geometry**, otherwise the vertices will be placed at the same distance they were placed from the**Deformation Source Geometry**surface- Scale Distance:
if set, scales distances of result vertices from

**Deformation Target Geometry**surface in relative of triangles scale from**Deformation Source Geometry**to**Deformation Target Geometry**