I tried out 3 different approaches to get this working fast and accurate:
- Subfrustum selection is fast, but inaccurate.
- Projecting unit bounding boxes onto screen is slow.
- Project unit bounding spheres onto screen is fast and accurate.
Check out these links and Stack Overflow questions for more details:
- Marquee Selection with Threejs
- StackOverflow: Three.js: How to detect the intersection of a 2D square and 3D object
- StackOverflow: Three.js: How to pick all objects in area