I am working on a three js project which shows highly detailed 3d models. These models contain a lot of parts and are pretty much static.
After some research, I came accross the concept of instancing which seemed very interesting.
I have a system that removes duplicate geometries and figures out the relative transform matrix, effectively reducing the size of the model.
I have the InstanceBufferGeometry system working perfectly, however, there are still a lot of geometries (1500 roughly) which combined with the shader make up about 3000 draw calls.
It’s currently sitting at 30fps roughly on my desktop, however, I need this to be roughly the minimum fps on mobile too. It’s still early stages but I’m starting to wonder if this is the right approach or should I be doing things differently?
Is there a downside from having too many instanced objects?
In terms of performance, would it be best to continue this approach and reduce the triangle count of the geos (decimating for example) or instead reducing the draw calls by combining the geometries that will use similar materials (and avoiding instancing)?
I hope this makes sense… I only just started to get into realtime development a few months ago and still getting my head around several concepts. Happy to provide more info if it helps make more sense of this