That is my main concern yes.
The position1 would be from the source mesh, and position2 would be the target mesh.
In DirectX I could just set up a vertex declaration like this:
D3DVERTEXELEMENT9 MorphMeshDecl[] =
{
// 1st stream is for source mesh
{ 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
{ 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 },
{ 0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
// 2nd stream is for target mesh
{ 1, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 1 },
{ 1, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 1 },
{ 1, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 },
D3DDECL_END()
};
and then just do SetStreamSource(0, &VBSource, …), SetStreamSource(1, &VBTarget, …).
And render the scene, and the shader would get both the source and target position and then I could easily interpolate between the two.
What i’m asking. Is there a way to duplicate this functionality in Unity?