Есть несколько способов сделать это. Наиболее практичные варианты:
a) Используйте буфер трафарета, который вы записываете при рендеринге вашей модели, и glReadPixels (...), чтобы увидеть, установлен ли буфер трафарета для конкретной (x, y) точки на экране.
b) Преобразовать точку (x, y) в линию в трехмерном пространстве из положения камеры. Затем проведите тест пересечения линии с вашей моделью (простой, но медленный способ - это тестирование каждого полигона, вы можете получить более быстрые результаты, используя ограничивающие объемы и т. Д.)
в) Используйте glReadPixels (...), чтобы прочитать цвет точки (x, y) на экране. Очевидно, это будет работать только в том случае, если вы сможете точно определить, какие цвета являются частью модели или нет.
Если вы можете установить и использовать трафаретный буфер для этой цели, то a), вероятно, проще всего реализовать. В противном случае б), вероятно, является наиболее полезным общим решением.