How passes the Instanced static mesh all transforms to the shader?

Hi all,

I´m currently lack of information and really hope that somebody can help me out with his knowledge :slight_smile:

At the moment my goal is to understand how the ISMC is rendering the mesh with different transforms.
What i already found out from the code and debugging:

  • You add an Instance to the ISMC
  • The FStaticMeshInstanceBuffer will be called with InitRHI
  • The SMIBuffer grabs the FResourceArrayInterface were all transforms are saved in
  • A new FVertexBufferRHIRef is created

On top i´ve found out which shader is used, it is located in LocalVertexFactory.usf.
But i don´t see how all the transforms are applied one by one on the mesh to render it

My Questions:

  • Where is the magic happening that renders all transforms of the ISMC one by one?
  • Is there a place where the transforms are passed to the shader?

I´m currently lost in this missing point of rendering ISMC that i´m able to implement my feature.

Background
I need this knowledge in order to get the approaches of Spline meshes and InstancedStaticMesh together at runtime to have lower draw calls

Thank you very much!

Cheers,
Maik