1. 程式人生 > >【Qt OpenGL教程】01:建立一個OpenGL視窗

【Qt OpenGL教程】01:建立一個OpenGL視窗

void MyGLWidget::resizeGL(int w, int h)                 //重置OpenGL視窗的大小
{
    glViewport(0, 0, (GLint)w, (GLint)h);               //重置當前的視口
    glMatrixMode(GL_PROJECTION);                        //選擇投影矩陣
    glLoadIdentity();                                   //重置投影矩陣
    //設定視口的大小
    gluPerspective(45.0, (GLfloat)w/(GLfloat)h, 0.1, 100.0);
    glMatrixMode(GL_MODELVIEW);                         //選擇模型觀察矩陣
    glLoadIdentity();                                   //重置模型觀察矩陣
}
glViewport()函式用來設定視口的大小。使用glMatrixMode()設定了投影矩陣,投影矩陣用來為場景增加透視,後面使用了glLoadIdentity()重置投影矩陣,這樣可以將投影矩陣恢復到初始狀態。gluPerspective()用來設定透視投影矩陣,這裡設定視角為45°,縱橫比為視窗的縱橫比,最近的位置為0.1,最遠的位置為100,這兩個值是場景中所能繪製的深度的臨界值。可以想象,離我們眼睛比較近的東西看起來比較大,而比較遠的東西看起來就比較小。最後設定並重置了模型檢視矩陣。