The source code is here.

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:

A screenshot follows: Marquee selection