Opengl glVertex:如何使用此调用的其他版本

Opengl glVertex:如何使用此调用的其他版本,opengl,Opengl,我只能在电脑中使用glVertex3f, 它通过x、y、z轴的比率指定顶点的位置。 有没有办法通过给出像素数来指定顶点的位置? 然后我可以使用整数 我知道我可以缩放视图,然后我可以使用glVertex3i 还有别的办法吗 就像OpenGL红皮书中的例子一样, 他们在某些通话中直接使用整数。 我必须使用一些小于1的浮点数。对于法线坐标,尝试从输入数字到像素坐标的1:1映射没有多大意义。特别是,所有三个坐标都与投影矩阵交互,以从坐标映射到屏幕上的像素位置 OpenGL确实有一些位图函数(例如),可以

我只能在电脑中使用glVertex3f, 它通过x、y、z轴的比率指定顶点的位置。 有没有办法通过给出像素数来指定顶点的位置? 然后我可以使用整数

我知道我可以缩放视图,然后我可以使用glVertex3i

还有别的办法吗

就像OpenGL红皮书中的例子一样, 他们在某些通话中直接使用整数。
我必须使用一些小于1的浮点数。

对于法线坐标,尝试从输入数字到像素坐标的1:1映射没有多大意义。特别是,所有三个坐标都与投影矩阵交互,以从坐标映射到屏幕上的像素位置


OpenGL确实有一些位图函数(例如),可以让您直接在像素坐标中工作。如果不知道你想完成什么,很难猜测这是否对你有用。

使用适当的投影

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();
)速度慢,不推荐使用。改用顶点数组和顶点缓冲区对象。

我只是想看看红皮书。我的机器上有一些不正常的呼叫。谢谢你的帮助。我知道顶点数组和缓冲区更快。