I'm wondering how to implement ray picking in the most efficient way for scenes with very large meshes ( > 1 million faces)? Right now I'm using BulletSharp physics wrapper with TriangleMesh which kind of works but isn't very fast... sometimes bulletsharp crashes because the allocator cant malloc a big enough contiguous block of memory in a 32bit process.
I'm looking for alternatives to BulletSharp in C#. I've seen that Helix Toolkit uses Octrees per mesh internally to perform ray picking, but it doesnt provide mesh vs mesh collision testing, which I also would need at some point.
My conclusion right now is that its best to use the helix toolkit method for ray picking and a custom method for per mesh collision testing, as I don't need rigidbody simulations.