В моей программе OpenGL я последовательно делаю следующее:
// Drawing filled polyhedrons
// Drawing points using GL_POINTS
// Displaying information for each above point beside it
Для отображения информации о точке (скажем, идентификатора/номера точки) я конвертирую 3D-координаты точки в 2D-координаты окна, используя gluProject(). Я пишу идентификатор точки в этом 2D-окне, используя glRasterPos< /strong>() и код рендеринга 2D-символов.
Когда визуализированная точка перекрывается другим примитивом, она автоматически не отображается из-за автоматической проверки перекрытия и проверки глубины, которая выполняется в конвейере OpenGL. Однако текст моего идентификатора точки отображается рядом с точкой, даже если она перекрыта, так как я не получаю эту информацию о перекрытии.
Как определить, перекрывается ли 3D (визуализированная) точка другими 3D (визуализированными) примитивами перед ней? Или есть лучший способ отобразить текст информации о точке рядом с ней только, когда она не закрыта?
Примечание. Мне известны методы, требующие дополнительного прохода рендеринга. Я чувствую, что это дорого для моей цели.