VS2010配置OpenGL開發環境


OpenGL(Open Graphics Library)是一個跨編程語言、跨平台的專業圖形程序接口。OpenGL是SGI公司開發的一套計算機圖形處理系統,是圖形硬件的軟件接口,任何一個OpenGL應用程序無須考慮其運行環境所在平台與操作系統,在任何一個遵循OpenGL標准的環境下都會產生相同的可視效果。

基於OpenGL標准開發的應用程序運行時需有動態鏈接庫OpenGL32.DLLGlu32.DLL,這兩個文件在安裝Windows NT時已自動裝載到C:\WINDOWS\SYSTEM32目錄下(這里假定用戶將Windows NT安裝在C盤上)OpenGL的圖形庫函數封裝在動態鏈接庫OpenGL32.DLL中,開發基於OpenGL的應用程序,必須先了解OpenGL的庫函數。OpenGL函數命令方式十分有規律,每個庫函數均有前綴glgluaux,分別表示該函數屬於OpenGL基本庫、實用庫或輔助庫

VS2010配置OpenGL開發環境:

1、安裝GLUT工具包:

  GLUT代表OpenGL應用工具包,英文全稱為OpenGL Utility Toolkit,是一個和窗口系統無關的軟件包,它由Mark KilgardSGI時寫的。作為AUX庫的功能更強大的替代品,用於隱藏不同窗口系統API的復雜性。

Windows環境下的GLUT下載地址http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

將下載的壓縮包解開,將得到5個文件(glut.dll, glut32.dll, glut.lib, glut32.lib,glut.h

1)把glut.h復制到x:\Program Files\Microsoft\Visual Studio 10.0\VC\include\gl文件夾中,如果沒有gl這個文件夾則可以自己新建一個

2)把解壓得到的glut.libglut32.lib放到靜態函數庫所在文件夾(即與include並排的lib文件夾下)

3)把解壓得到的glut.dllglut32.dll放到操作系統目錄下面的system32文件夾內。(典型的位置為:C:\Windows\System32

注:如在開發應用程序時用到OpenGL輔助庫函數,則還需下載相應動態鏈接庫,包含glaux.dll, glaux.lib, glaux.h,相應步驟同上

2、創建OpenGL程序:

1)創建一個Win32 Console Application

2)鏈接OpenGL libraries。在Visual C++中先右擊項目,選擇屬性,找到連接器標簽,最后在輸入中的附加依賴庫加上opengl32.lib glut32.lib glu32.lib.

    現在你可以把下面的例子拷貝到工程中去,編譯運行,你可以看到一個三角形。

#include<gl/glut.h>
//#include<gl/glu.h>  //glut.h自動包含了glu.h 和 gl.h
//#include<gl/gl.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();
/*
         glClear(GL_COLOR_BUFFER_BIT);
         glRectf(-0.5f,-0.5f,0.5f,0.5f);
         glFlush();
         */
}
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;
}

main函數中以glut開頭的函數都包含在glut.h中。GLUT庫的函數主要執行如處理多窗口繪制、處理回調驅動事件、生成層疊式彈出菜單、繪制位圖字體和筆畫字體,以及各種窗口管理等任務。

glutInit用來初始化GLUT庫並同窗口系統對話協商

glutInitDisplayMode用來確定所創建窗口的顯示模式。參數GLUT_SINGLE 指定單緩存窗口,這也是缺省模式,對應的模式為GLUT_DOUBLE 雙緩存窗口。參數GLUT_RGB指定顏色RGBA模式,這也是缺省模式,對應的模式為GLUT_INDEX 顏色索引模式窗口

glutInitWindowSize 初始化窗口的大小,第一個參數為窗口的寬度,第二個參數為窗口的高度,以像素為單位

glutInitWindowPosition 設置初始窗口的位置,第一個參數為窗口左上角x的坐標,第二個參數為窗口左上角y的坐標,以像素為單位。屏幕的左上角的坐標為(00),橫坐標向右逐漸增加,縱坐標向下逐漸增加

glutCreateWindow 創建頂層窗口,窗口的名字為擴號中的參數

glutDisplayFunc 注冊當前窗口的顯示回調函數。當一個窗口的圖像層需要重新繪制時,GLUT將調用該窗口的的顯示回調函數。在此例中的mydisplay就是顯示回調函數,顯示回調函數不帶任何參數,它負責整個圖像層的繪制。我們的大部分工作將集中在這個函數中

glutMainLoop 進入GLUT事件處理循環。glutMainLoop函數在GLUT程序中最多只能調用一次,它一旦被調用就不再返回,並且調用注冊過的回調函數。所以這個函數必須放在注冊回調函數的后面,此例中為glutDisplayFunc

參考資料:http://www.cnblogs.com/longdouhzt/archive/2012/02/13/2350094.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM