Exploring per-instance data
When rendering a large crowd, each actor in the crowd has certain properties. In this section, you will explore what that per-instance data is and how to pass it to the shader. This will greatly reduce the amount of data that is uploaded to the GPU as uniform arrays every frame.
Moving the skinning pipeline to a vertex shader does not completely remove needing to pass crowd-related uniform to the shader. Every actor in a crowd will need some data uploaded to the GPU. The per-instance data is much smaller than what would be uploaded if pose palette matrices were being used.
Each actor in the crowd will need a position, rotation, and scale to build a model matrix. Actors will need to know the current frame to sample and the time between the current and next frames to blend.
The total size of each actor's instance data is 11 floats and 2 integers. That's only 52 bytes per instance. Per-instance data will always be passed using uniform arrays...