Coding question: reducing draw calls of multiple instanced objects

fyi: terrain is from here (PBR texture splatting (up to 64 textures)). I’ve moved away from pbrcustommaterial to custommaterial (pbr gains were marginal for use case). Around 24k verts total, largely square tiles.

30 types of flora assets: vertex count vary from 100 to max of 1200. total number of particles/instances is around 650 at the moment.

All flora assets share a single 1k diffuse texture with alpha only. As simple as it gets and non-final, so its png at the moment. On mesh import, all the flora assets are assigned the same material and then var SPS = new BABYLON.SolidParticleSystem('SPS', this.scene, {useModelMaterial:true});. Nothing complex and not using sps multimaterial. On my regular rig, I can get 60fps (instances or particles) without issue, tho my target is desktop only. Will have to keep monitoring as more meshes are introduced during gameplay.

Personally, I really would love to get all instances in 1 draw call as it would be tremendous down the pipeline. But we’ll see… Hope it helps.