glVertex: как использовать другую версию этого вызова - PullRequest
2 голосов
/ 31 января 2011

Я могу использовать только glVertex3f на моем компьютере, который определяет положение вершины в соотношении осей x, y, z. Есть ли способ указать положение вершины, указав номера пикселей? Тогда я могу использовать целые числа.

Я знаю, что могу масштабировать вид, а затем я могу использовать glVertex3i.

Есть ли другой способ?

Как пример в Redbook OpenGL, они напрямую используют целые числа в некоторых вызовах. Я должен использовать число с плавающей запятой меньше 1.

Ответы [ 2 ]

2 голосов
/ 31 января 2011

Используя соответствующую проекцию

glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, window_width, 0, window_height, -1, 1)

glMatrixMode(GL_MODELVIEW)
glLoadIdentity()

# world XY coordinates now map to viewport XY

Имейте в виду, что немедленный режим (glBegin(...); for(...){ glVertex(...); } glEnd();) медленный и не рекомендуется. Вместо этого используйте Vertex Arrays и Vertex Buffer Objects.

0 голосов
/ 31 января 2011

Для нормальных координат попытка получить отображение 1: 1 от входных чисел к координатам пикселей не имеет особого смысла.В частности, все три координаты взаимодействуют с матрицей проекции, чтобы отобразить координату в положение пикселя на экране.

OpenGL имеет некоторые функции растрового изображения (например, glBitmap, glDrawPixels), которые позволяют работать непосредственно в пиксельных координатах.Не зная, чего вы пытаетесь достичь, трудно догадаться, будет ли это полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...