I want to animate foliage with vertex animation but I have wrong output because I can't correctrly transform from object space to clip space, and my foliage goes off the model. How Can I convert in corrent way the space?
fragmentInput vertexProgram(vertexInput data)
{
UNITY_SETUP_INSTANCE_ID(data);
fragmentInput output;
float3 positionWS = TransformObjectToWorld(data.positionOS);
output.positionCS = TransformWorldToHClip(positionWS);
output.positionWSAndFog = float4(positionWS, ComputeFogFactor(output.positionCS.z));
VertexNormalInputs normalInput = GetVertexNormalInputs(data.normalOS, data.tangentOS);
output.normalWS = normalInput.normalWS;
output.tangentWS = normalInput.tangentWS;
output.bitangentWS = normalInput.bitangentWS;
output.uv = TRANSFORM_TEX(data.uv, _BaseColor);
output.viewDirectionWS = GetWorldSpaceViewDir(positionWS);
#ifdef _MAIN_LIGHT_SHADOWS
output.shadowCoord = TransformWorldToShadowCoord(positionWS);
#endif
OUTPUT_LIGHTMAP_UV(input.staticLightmapUV, unity_LightmapST, output.staticLightmapUV);
OUTPUT_SH(output.normalWS, output.vertexSH);
// I'm starting my animation from here
float4 worldPos = mul(data.positionOS, unity_ObjectToWorld);
float2 samplePos = worldPos.xz / _WorldSize.xz;
samplePos += _Time.x * _WindSpeed.xy;
float windSample = tex2Dlod(_WindTex, float4(samplePos, 0, 0));
output.positionCS.x += sin(_WaveSpeed * windSample) * _WaveAmp;
output.positionCS.z += cos(_WaveSpeed * windSample) * _WaveAmp;
// then I sholud somehow convert to clip space if im not wrong
return output;
}

TransformWorldToHClip(positionWS);You can find its source code here. How have you tried using this so far and where did things go wrong? \$\endgroup\$