2013-09-21 43 views
1

在给出窗口像素坐标的情况下,可以在绘图场景中的OpenGL中绘制一些东西吗?如何设置像素坐标?

例如,我想在400x400窗口中绘制单个点(例如,在该窗口的中间)。有没有什么快速的方法来设置一切,所以我只能输入:

glVertex3f(200.0 , 200.0 , 1.0);? 

回答

1

您需要为此设置一个正交投影矩阵。

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrthof(0.0f, WindowWidth, WindowHeight, 0.0f, 0.0f, 10.0f); 
glMatrixMode(GL_MODELVIEW); 

然后,您可以在窗口坐标中呈现。

glPointSize(5.0f); 
glBegin(GL_POINTS); 
    glVertex3f(100.0f, 100.0f, 1.0f); 
glEnd(); 

应该呈现点与窗口坐标直径为5个像素[100,100]

请注意,呈现的这种旧方法已经过时,你应该使用VBOs之类的,但它仍然适合测试。

+0

请注意,比设置像这样的投影,像100.0f,100.0f整数坐标实际映射到像素边界,而不是像素中心。 – derhass