Texture Transfer

Requirements

Input Streams: Mesh Stream with UVs (target) and Mesh Stream + Texture Stream (source)

Output Streams: New Texture Stream

Overview

Note

Usually, you’ll need to run Texture Transfer after a Stabilize Stage to produce textures for the new, Stabilized UV layout. Even if you aren’t Stabilizing, don’t forget you can also run this stage after Decimating with the Clean Stage.

The Texture Transfer Stage creates a new texture for the current mesh stream by projecting the texture data from an earlier point in the Track. This can be used to restore an original clip’s texture data after running a Stabilize or Clean Stage.

There are two methods for texture transfer:

  • Closest Point (Default)

  • Raycast

Important

This Stage should be performed on the final mesh and animation streams, and should not be placed above any clean, or stabilize Stages on the Track.

Parameters

  • Texture Source Stage: Click and drag a Stage from the current Track into this field to use as the Source for the texture transfer.

Note

If the particular Source Stage doesn’t contain mesh texture data, the Track Result at that position in the track will be used.

  • Texture Transfer Method: Using the drop down select the Texture Transfer method between Closest Point and Raycast

  • Auto Cage Extrusion: Automatically sets Cage Extrusion based on the Correspondence Error

  • Cage Extrusion: If autoCageExtrusion is disabled, this value sets the extrusion distance for the cage. One unit is one meter.

Important

It can be important to ensure the ideal Cage Extrusion size, especially if your Stabilized Mesh diverges significantly from the Source mesh. Read the “Working With Texture Transfer” stage below for more details.

Working with Texture Transfer

Closest Point: Closest Point is the default for the Texture Transfer stage. Texture Transfer using Closest point will transfer the textures from the closest point from the surface of the Source to the surface of the Target mesh.

Closest Point texture transfer allows for more surface variation from the surface of the source to the target than the Raycast method but runs the risk of losing detail when transferring from a high detail source mesh to lower detail target mesh.

Closest point reduces the risk of close inward facing surfaces cross contaminating each other during texture transfer.

There is a risk of poor texture transfer results using closest point if there are interior floating or layered mesh in the source mesh during the texture transfer.

Raycast: Texture Transfer using Raycast is based on a “Cage”, which is the result of extruding the surface of the target mesh outwards by a fixed distance. Each part of the source mesh within the cage will be checked against to transfer its texture.

The Cage must encompass all of the source surface in order to get good results, but it’s important to take care when increasing the Cage Extrusion value.

Too high and you might transfer textures from the wrong surface, such as texturing the side of an actor’s torso with the textures from their adjacent arm. Too low of a value might result in a “ray miss”, where incorrect data is placed into the texture.

Sometimes, on a very complex pose, it may not be possible to produce a good result from texture transfer with your Stabilized Mesh. You can try stabilizing those frames again with a lower Segment Max Error value to ensure less surface variation between the source and stabilized meshes.

The left side, closest point method, does not have the same cross contamination as the raycast method, right. Recessed details can be lost using the closest point method.