1
在給出窗口像素座標的情況下,可以在繪圖場景中的OpenGL中繪製一些東西嗎?如何設置像素座標?
例如,我想在400x400窗口中繪製單個點(例如,在該窗口的中間)。有沒有什麼快速的方法來設置一切,所以我只能輸入:
glVertex3f(200.0 , 200.0 , 1.0);?
在給出窗口像素座標的情況下,可以在繪圖場景中的OpenGL中繪製一些東西嗎?如何設置像素座標?
例如,我想在400x400窗口中繪製單個點(例如,在該窗口的中間)。有沒有什麼快速的方法來設置一切,所以我只能輸入:
glVertex3f(200.0 , 200.0 , 1.0);?
您需要爲此設置一個正交投影矩陣。
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之類的,但它仍然適合測試。
請注意,比設置像這樣的投影,像100.0f,100.0f整數座標實際映射到像素邊界,而不是像素中心。 – derhass