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

时间:2011-01-31 01:39:13

标签: opengl

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

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

还有其他方法吗?

与OpenGL红皮书中的示例一样, 他们在某些调用中直接使用整数。 我必须使用一些小于1的浮点数。

2 个答案:

答案 0 :(得分:2)

使用适当的投影

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();)很慢并且已弃用。改为使用顶点阵列和顶点缓冲对象。

答案 1 :(得分:0)

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

OpenGL确实有一些位图功能(例如,glBitmapglDrawPixels),可让您直接在像素坐标中工作。在不知道你想要完成什么的情况下,很难猜测这对你是否有用。