My instancing system does no deal with asset loading at all. I have a relatively small number of assets, so I don’t defer loading them, at least not the meshes, so I don’t think what we’re doing is similar in that respect.
In that example only the camera frustum is used for culling, not sure which other clipping planes other than those of the camera itself you mean.
I do not use any LOD system in my engine, there is no need for that in my usecase.
With respect to performance, what you see is all done in a single main thread, so querying all objects and updating the instanced mesh takes about 2.3ms on my hardware. Render takes about 0.7ms.
I’m not sure what you mean when you talk about your bounding boxes, I use AABBs, and they are created using geometry AABB, said AABB is then transformed using rotation,scale,translation to get AABB for each instance, those AABBs are stored in a Bounding Volume Hierarchy. The hierarchy itself is unoptimized in this demo, I do have an pretty advanced incremental optimizer for it, it runs somewhat slowly though, so I didn’t include it, but running it should improve the performance by ~30% based on my experience, so querying and building might drop to ~1.6ms.
Then again, this is a technical demo, there is only 1 kind of mesh being used here and the generated scene is purely random, so it’s not necessarily a good representation of how this system would work on a concrete real-life example. It does run well in my game, so you might want to check that out for comparison, but I believe your usecase is quite different.
hope that answers your questions