天天看點

OpenGL/GLUT+VS2008配置

    OpenGL程式設計一般需要OpenGL的開發包和輔助工具。對于前者,windows現已提供了相應的支援。32系統中,這些相關動态連結庫被安放在系統檔案夾下,C:\Windows\System32目錄;靜态連結庫放在C:\Program Files\Microsoft SDKs的子目錄中。由于windows的環境變量已經添加,我們在Visual Studio中可以直接使用OpenGL的相關函數了。

    而對于後者,一些開源的工具包可以幫助我們進行圖形開發,比如在windows中使用視窗體系來顯示運作結果。其中,GLUT(OpenGL Utility Tookit)是最早的輔助開發工具之一。可以從OpenGL官網上下載下傳各種版本的輔助工具,我們依照OpenGL紅包書,配置了一個較早的GLUT版本

http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

    解壓後按照如下的步驟依次配置:

1)将glut.h頭檔案放在visual studio的C++包含目錄中,比如我的是G:\軟體\VS2008\VC\include。在這個目錄中,我們可以看到我們熟悉的iostream、cstdlib等,是以我們可以直接在項目代碼中包含glut.h頭檔案。

2)将glut.lib和glut32.lib放在靜态連結庫目錄中,與1)同級的lib目錄。同理,這樣就我們可以将這兩個庫添加到項目中了。

3)将glut.dll和glut32.dll放在系統目錄中C:\Windows\System32,原理一開始我們介紹過了。

    可以從網上copy一份代碼來檢驗是否配置成功,下面代碼的運作結果是在視窗中顯示一個三角形。

#include<gl/glut.h>

void renderScene(void)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();
	glBegin(GL_TRIANGLES);
	glVertex3f(-0.5,-0.5,0.0);
	glVertex3f(0.5,0.0,0.0);
	glVertex3f(0.0,0.5,0.0);
	glEnd();
	glutSwapBuffers();
}

int main(int argc, char* argv[])
{
	glutInit(&argc, (char**) argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(320,320);
	glutCreateWindow("Hello OpenGL");
	glutDisplayFunc(renderScene);
	glutMainLoop();//enters the GLUT event processing loop.

	return 0;
}
           

這裡要說明的是,頭檔案隻需要包含glut.h即可,因為它會自動包含glu.h和gl.h。如果不使用glut.h,則要包含這兩個頭檔案。

    最後說說配置中的一個意外。由于之前配置CEGUI的時候給VS2008工程配置了相關目錄,其中就包含了freeglut.dll,它與這裡的glut.dll有沖突,是以在第一次運作的時候出現了系統缺少freeglut.dll的bug。以前在配置OGRE的時候就出現了許多類似的問題,這裡可以猜想如果運作時提醒出現一些連結庫的缺失,特别是當這些庫不是目前配置需要的時候,一個可能的原因就是由于之前有沖突的配置,編譯器錯誤地找到了它,而沒有按照我們的配置來運作。

參考資料 《OpenGL程式設計指南》

部落格 http://blog.csdn.net/genganpeng/article/details/6882048

繼續閱讀