關於的glut 的配置

OpenGL 是一套 用於三維作圖的API。與Direct3D 相比, OpenGL比較容易學,網上的教程與代碼也比較多。如果高手們也能貢獻一些教程出來就更好!首先確定我們的程序框架。我們打算用 glut,因爲它是跟系統無關的,它可以代替win32 api 中那些建立窗口,消息循環的繁瑣的代碼,能夠讓我們把注意力集中到真正跟3D圖形相關的內容上去。

glut 是一個win32 dynamic lib,先下載 http://reality.sgi.com/opengl/glut3/glutdlls37beta.zip把glut32.dll放到 windows system目錄下,另外建個目錄,比如說 c:\glut,再在c:\glut下面建c:\glut\gl,把頭文件glut.h放到c:\glut\gl下面,把 glut32.lib放在c:\glut下面。我們要用 VC5或者 VC6。 運行VC, 選擇菜單 Tools/Options/Directories,把c:\glut加入include和lib路徑。

好了,準備就緒,可以用 glut編程了。

最簡單的程序是彈出一個窗口。

#include <gl/glut.h>
void display()
{
}
int main(int argc, char** argv)
{
        glutInit(&argc, argv);
        glutInitDisplayMode (GLUT_SINGLE | GLUT_RGBA);           //設置顯示模式:單緩衝區, RGBA顏色模式
        glutInitWindowSize (200, 200);           //設置窗口寬度、高度
        glutCreateWindow (argv[0]);           //彈出窗口
        glutDisplayFunc (display);           //設置窗口刷新的回調函數其中display 是函數指針,是屏幕刷新是會調用的函數 所以我的大部分工作將在這個函數裏完成
        glutMainLoop();           //開始主循環
        return 0;
}

在這個程序中 我們的display 函數爲空 也就是什麼都不幹那麼windows 將不會去更新窗口的區域 所以我們這裏看到的是桌面背景,如果我們要在窗口中填充自己喜歡的顏色 我們可以在display 中添加如下語句:

void display()
{
    glClearColor(1,1,1,1);    // 設置刷新背景色
    glClear(GL_COLOR_BUFFER_BIT);    // 刷新背景
    glFlush();    // 更新窗口
}

這裏我們看到了三個以gl 開頭的函數,他們都屬於opengl 的基本庫 都可以在 gl.h 裏找到

所以當程序裏有 gl 開頭的函數是切記不要忘了加上 #include <gl/gl.h>        這裏可能有點問題,明明是一個功能卻要三個函數,其實這裏牽涉到 opengl 的一個重要機理 含有狀態變量的自動機

可以理解爲在系統中始終有一個變量存放着窗口的背景顏色 glclearcolor 僅僅相當於給這個變量復值,而 glclear 和他的參數看上去有點棘手 我們可以暫時把它看成是設置填充背景的方式,而在這裏真正使這些功能起作用的是 glflush 他通知系統重畫窗口,在重畫中系統將把背景色變成我們剛剛提及的那個變量的顏色 於是乎 就發生了你電腦屏幕上的一切
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章