Экранные координаты для вершины - это просто результат умножения такой вершины на ее проекцию и матрицу вида модели:
screen_coordinates = projection_matrix * modelview_matrix * world_coordinates
Вы можете сделать это вручную (особенно если выВы используете некоторую библиотеку математики для выполнения операций над матрицами) или используйте gluProject, например:
std::array<GLfloat, 16> projection;
std::array<GLfloat, 16> modelview;
std::array<GLfloat, 3> screen_coords;
glGetFloatv(GL_PROJECTION_MATRIX, projection.data());
glGetFloatv(GL_MODELVIEW_MATRIX, modelview.data());
gluProject(world_coords[0], world_coords[1], world_coords[2],
modelview.data(), projection.data(),
screen_coords.data(), screen_coords.data() + 1, screen_coords.data() + 2);