我只能在我的电脑上使用glVertex3f, 它通过x,y,z轴的比率指定顶点的位置。 有没有办法通过给出像素数来指定顶点的位置? 然后我可以使用整数。
我知道我可以缩放视图然后我可以使用glVertex3i。
还有其他方法吗?
与OpenGL红皮书中的示例一样, 他们在某些调用中直接使用整数。 我必须使用一些小于1的浮点数。
答案 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确实有一些位图功能(例如,glBitmap
,glDrawPixels
),可让您直接在像素坐标中工作。在不知道你想要完成什么的情况下,很难猜测这对你是否有用。