Getting the vertex position of a skinnedmeshrenderer after blendshape?

Hi, I’m trying to make an app something like SnapChat’s face sticker.

Is there a way to obtain vertex position of a SkinnedMeshRenderer after changing blendshape’s weight?

I tried this https://forum.unity.com/threads/get-skinned-vertices-in-real-time.15685/

but it didn’t seem to calculate the blendshape’s weight.

I was using SkinedMeshRenderer.BakeMesh(), but the performance was too low to use this method on every update.

Is there any way to make this work?

Thank you.

I also encountered this problem, is there a solution?

I’m Trying the same, is there a solution?

It’s true that using SkinnedMeshRenderer.BakeMesh() on every frame is not recommended due to performance considerations. However, an alternative approach could be to use a shader to get the transformed vertex positions.

A potential method you could explore is as follows:

Create a copy of the skinned mesh.

Use a compute shader to update this copy every frame.

Use a material with the compute shader to render the copy.

This method uses the power of the GPU for the calculations, which should offer better performance than executing the calculations on the CPU every frame. However, the specific implementation will depend on the specifics of your project and your level of comfort with shaders.