* **Description**: Efficiently render many copies of the same mesh (e.g., trees, grass, crowds, particles) using GPU instancing to reduce draw calls. * **Acceptance Criteria**: * Must support `glDrawElementsInstanced` for rendering multiple instances in a single draw call * Must provide an instance buffer to store per-instance data (transforms, colors, etc.) * Must allow users to specify instance count and per-instance attributes * Must integrate with the Material System to pass instance data to shaders * Must provide factory methods or helpers for common use cases (particle systems, foliage)
glDrawElementsInstancedfor rendering multiple instances in a single draw call