Very slow physics generation in complex scene

I’ve got a very complex scene that’s trying to visualise data from an external source using multiple highly-overlapping spheres (in the order of 25,000). The idea is that collections of these spheres can then be dragged around by the user to see what effect that has on the data, meaning there needs to be some form of scene picking from the mouse cursor. The spheres do not need to collide with each other as the scene calculations are taken care of by an external process.

However, the physx broadphase really doesn’t like this - taking ~60 seconds to generate initial scene data.

  • Calling SetCollisionEnabled( ECollisionEnabled::NoCollision ) makes the scene generation almost instant (but breaks mouse tracing)
  • Calling SetCollisionResponseToAllChannels( ECR_Ignore ) makes no appreciable difference to the physics init speed.

What can be done to remove the stall on the gamethread while maintaining the ability to pick objects in the scene with the mouse?