Нет простого способа получить эти данные.OpenGL в основном занимается рисованием, и вам обычно не нужны эти данные, он все равно будет хорошо рисоваться.Приложения, которым нужны эти данные, обычно выполняют математику самостоятельно.
Вам придется либо выполнить преобразование вручную для каждой вершины.Для этого умножьте каждую вершину на матрицу вида модели.Если вы не знаете матрицу вида модели (программа, которая должна выполнять эти вычисления, обычно кэширует это значение), вы можете запросить ее с помощью glGetFloatv(GL_MODELVIEW_MATRIX)
.
В качестве альтернативы, вы можете использовать обратную связь преобразования, если либо ваш OpenGLверсия по крайней мере 3.0 или EXT_transform_feedback поддерживается.Это потребует от вас создания и связывания буфера, установки позиций вершин как изменений обратной связи и вызова обратной связи начала / конца преобразования.Наконец, вам нужно сопоставить буфер, чтобы получить ваши данные обратно.
Преобразование обратной связи - это больше настроек, но избавляет вас от необходимости выполнять математику самостоятельно.