Уже было несколько хороших предложений о том, как оптимизировать комплектацию в GL. Это, вероятно, будет работать для вас.
Но если вам нужно больше производительности, чем вы можете выжать из gl-комплектования, тогда вы можете подумать о том, чтобы делать то, что делает большинство игровых движков. Поскольку большинство двигателей уже имеют какую-то форму системы обнаружения столкновений в 3D-формате, ее можно использовать гораздо быстрее. Отключите экранные координаты щелчка и запустите тест столкновения лучей с миром, чтобы увидеть, на что щелкнули. Вы не можете использовать GPU, но объем работы намного меньше. Даже меньше, чем работа по настройке на стороне процессора, которую требует gl-picking.
Выберите на основе более простых корпусов столкновений или даже просто ограничивающих рамок. Производительность масштабируется по количеству объектов / корпусов в сцене, а не по количеству геометрии плюс количество объектов.