Windows平台下Qt中glut庫的使用
用Qt中的QGLWidget窗體類中是不包括glut工具庫的,難怪在myGLWidget(在我的程序中是QGLWidget的派生類)中繪制實心球體是說“glutSolidSphere”: 找不到標識符,就是說沒有這個函數的聲明。接下來就來安裝glut庫:
1.先下載glut庫http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip。
2.將下載下來的文件解壓,將glut32.lib和glut.lib兩個lib文件移到qt目錄下的./lib文件夾中。
3.將glut.dll和glut32.dll兩個動態鏈接庫移到C:\windows\system32中。
4.將glut.h文件移到qt目錄下的\include\QtOpenGL中,並建立glut文件(不要后綴),這樣就將glut安裝好了,切換到在自己的程序中,在myGLWidget.cpp(QGLWidget派生類的cpp)加入“#include<glut>”,這樣就可以使用glut中的函數了。
方法步驟4中,建立glut文件的過程,是這樣的:在qt目錄下的\include\QtOpenGL目錄下,新建一個txt文件,里面輸入代碼:#include “glut.h”,然后把該txt文件的名字重命名為glut,注意這個地方不需要加后綴。另外需要特別注意的是,雖然我們把glut.h文件放入在qt目錄下的\include\QtOpenGL下,且我們也在GLWidget.cpp中也加入了頭文件#include<QtOpenGL>,但是因為QtSDK庫編譯的原因,我們在GLWidget.cpp中仍然需要添加#include<glut>語句才行。
既然上面提到了gluPerspective()對結果的影響很大,那么就很有必要了解該函數。在NeHe等人的教程中,該函數使用其各個參數設置為如下:
gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 );
該函數是設置場景的透視效果的,所謂透視,可以簡單的理解為越遠處的物體看起來越小。所以這里的參數1,2,3表示的是透視是按照基於窗口寬度和高度的45度視角來計算的,參數0.1和參數100是我們場景中所能繪制深度的起點和終點值。