OpenGL - это API рисования / рендеринга, а не какой-то игровой / графический движок. Вы говорите ему, чтобы рисовать вещи, и это то, что он делает.
Тесты, подобные тем, которые вы намереваетесь, не охватываются OpenGL, вы должны реализовать их самостоятельно или использовать библиотеку, предназначенную для этого. В вашем случае вы хотите проверить мир на усмотрение просмотра. Точный блок, на который смотрит игрок, можно найти, выполнив тест на пересечение геометрии луча, то есть вы отбрасываете луч из позиции игрока в направлении, куда смотрит игрок, и проверяете, какие объекты пересекаются с этим лучом. Использование пространственной структуры подразделения помогает ускорить процесс. В случае мира, созданного из кубов, самая простая и эффективная структура - это окто-дерево, то есть один большой куб, который подразделяется на 8 субкубов с половиной длины ребра содержащего куба. Затем эти субкубы делятся и так далее.
Обход такой структуры легко реализуется с помощью рекурсивных функций - не беспокойтесь о переполнении стека, так как уже 10 маленьких подразделений дадут 2 ^ 10 ^ 3 = 2 ^ 30 sub-sub -...- sub- кубы с требованием по меньшей мере 8 ГБ данных для построения из них полной детализированной сетки. Но 10 функциональных уровней рекурсии не очень глубоки.