VertexShaderTexturedOutput VertexShaderTrailFunction(float4 Position : SV_POSITION, float2 TexCoord : TEXCOORD0, float Visibility : TExCOORD1)
float4 worldPosition = mul(Position, WorldViewProjection);
float vis = saturate(Visibility * 3 – 1);
output.Color = GlobalColor * vis * float4(0.65f,0.65f,0.65f,0.5f);
output.TexCoord = float2(vis, TexCoord.y);
this will fade out to other colors as it fades out.
Otherwise you just have to change the texCoord.y of the vertices depending on distance from teh beginning, you have to do that in c# code.