2013-09-21 75 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