windows下安裝opengl的glut庫

來源:互聯網
上載者:User
GLUT不是OpenGL所必須的,但它會給我們的學習帶來一定的方便,推薦安裝。
Windows環境下的GLUT:(大小約為150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
無法從以上地址下載的話請使用下面的串連:
http://upload.programfan.com/upfile/200607311626279.zip
Windows環境下安裝GLUT的步驟:
1、將下載的壓縮包解開,將得到5個檔案
2、在“我的電腦”中搜尋“gl.h”,並找到其所在檔案夾(如果是VisualStudio2005,則應該是其安裝目錄下面的“VC/PlatformSDK/include/gl檔案夾”)。把解壓得到的glut.h放到這個檔案夾。
3、把解壓得到的glut.lib和glut32.lib放到靜態函數庫所在檔案夾(如果是VisualStudio2005,則應該是其安裝目錄下面的“VC/lib”檔案夾)。
4、把解壓得到的glut.dll和glut32.dll放到作業系統目錄下面的system32檔案夾內。(典型的位置為:C:/Windows/System32)

OpenGL study

你可以在OpenGL的官方網站http://www.OpenGL.org的Documentation中下載到官方教程和例子程式:
The OpenGL Programming Guide,這就是著名的red book(“紅皮書”)

如果你英語不好,那麼推薦你閱讀:
《OpenGL超級寶典》是一本相當不錯的中文教程。可以在http://www.vrforum.cn/forumdisplay.php?fid=29找到它的例子代碼
《OpenGL編程權威指南》他是red book的中文譯本,它的例子也就是red book的例子。

*Nate Robin的例子對你理解OpenGL很有協助。http://www.gamedev.net/reference/articles/article839.asp

*The OpenGL Reference Manual(blue book)並不是一本入門教材,而是一本函數參考手冊,可以從http://www.OpenGL.org的Documentation中下載下來,在實際學習中查詢用

*NeHe的例子也是大家所喜愛的初學者例子。http://nehe.gamedev.net,在http://www.chinagamedev.net還有一部分的中文譯文

***nehe的簡單視窗例子(第二課)幾乎含蓋世界上的所有語言,如果想用自己喜歡的獨特語言,可以參考http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=02最下方的聯結,並結合C++的例子學習(大多數教材都是基於C++的,不過幸好我們真正關注的是OpenGL本身)

OpenGL的例子大都需要用到OpenGL應用工具包:GLUT庫,下面講講怎樣安裝它

Visual C++ 6.0 HOWTO:
1。下載GLUT庫:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2。將壓縮包內的glut.h放到.../Microsoft Visual Studio/VC98/Include/GL目錄下
    將glut32.lib放到.../Microsoft Visual Studio/VC98/Lib目錄下
    將glut32.dll放到X:/windows/systom32目錄下(win98使用者放到X:/windows/systom目錄下)
3。建立一個控制台工程Win32 Console Application,加入hello.c並運行:
#i nclude <GL/glut.h>

void display(void)
{
    glClear (GL_COLOR_BUFFER_BIT);/* clear all pixels   */
    glColor3f (1.0, 1.0, 1.0);
    glBegin(GL_POLYGON);/* draw white polygon with corners at(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)*/
       glVertex3f (0.25, 0.25, 0.0);
       glVertex3f (0.75, 0.25, 0.0);
       glVertex3f (0.75, 0.75, 0.0);
       glVertex3f (0.25, 0.75, 0.0);
    glEnd();
    glFlush ();/* start processing buffered OpenGL routines   */
}

void init (void)
{
    glClearColor (0.0, 0.0, 0.0, 0.0);/* select clearing color   */
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);/* initialize viewing values   */
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);/*Declare initial display mode(single buffer and RGBA).*/
    glutInitWindowSize (250, 250); /*Declare initial window size.*/
    glutInitWindowPosition (100, 100);/*Declare initial window position.*/
    glutCreateWindow ("hello");/*Open window with "hello"in its title bar.*/  
    init ();/*Call initialization routines.*/
    glutDisplayFunc(display); /*Register callback function to display graphics.*/
    glutMainLoop();/*Enter main loop and process events.*/
    return 0;    /* ANSI C requires main to return int. */
}

OpenGL是目前用於開發可移植的、可互動的2D和3D圖形應用程式的首選環境,也是目前應用最廣泛的電腦圖形標準。OpenGL是SGI公司開發的一套的電腦圖形處理系統,是圖形硬體的軟體介面,GL代表圖形庫(Graphics Library)。OpenGL具有可移植性,任何一個OpenGL應用程式無須考慮其運行環境所在平台與作業系統,在任何一個遵循OpenGL標準的環境下都會產生相同的可視效果。

OpenGL不是一種程式設計語言,而是一種API(Application Programming Interface,API)。當我們說某個程式是基於OpenGL的或者說它是個OpenGL程式是,意思是說它是用某種程式設計語言如C或C++編寫的,其中調用了一個或多個OpenGL庫函數。作為一種API,OpenGL遵循C語言的呼叫慣例。

OpenGL主要包括三個函數庫,它們是核心庫、實用函數庫和編程輔助庫。核心庫中包含了OpenGL最基本的命令函數。核心庫提供了一百多個函數,這些函數都以”gl”為首碼,用來建立各種各樣的幾何模型、進行座標變換、產生光照效果、進行紋理映射、產生霧化效果等所有的二維和三維圖形操作。實用函數庫是比核心庫更高一層的函數庫,它提供四十多個函數,這些函數都以”glu”為首碼。由於OpenGL是一個圖形標準,是獨立於任何視窗系統或作業系統的,在OpenGL中沒有提供視窗管理和訊息事件響應的函數,也沒有滑鼠和鍵盤讀取事件的功能,所以在編程輔助庫提供了一些基本的視窗管理函數、事件處理函數和簡單的事件函數。這類函數以”aux”作為首碼。值得一提的是,目前AUX編程輔助庫已經很大程度上被GLUT庫取代了。以下介紹以GLUT庫為例。

     GLUT代表OpenGL應用工具包(OpenGL Utility Toolkit),是一個與視窗系統無關的工具包。它作為AUX庫的功能更強的替代品,用於隱藏不同視窗系統API的複雜性。GLUT的子程式的首碼使用”glut”。

一、下面以windows及visualC++為例介紹使用先行編譯庫進行安裝的過程:

(1)將gult32.dll複製到windows系統system32下

(2)將gult32.lib複製到vc的lib目錄下

(3)將gult.h複製到vc的include/GL下

二、一個簡單的OpenGL程式

#i nclude <windows.h>

#i nclude <gl/glut.h>

 

//繪圖子程式

void display( void ) {

       glClearColor( 1.0f,1.0f,1.0f,1.0f );              // 設定清除視窗時將視窗設為白色

       glClear( GL_COLOR_BUFFER_BIT );// 執行視窗清理

       glFlush();       // 重新整理OpenGL中的命令隊列和緩衝區,使所有尚未被執行的命令執行

}

 

void main( int argc,char** argv ) {

       glutInit( &argc, argv );         // 初始化GLUT庫

       glutInitDisplayMode( GLUT_SINGLE| GLUT_RGB ); // 顯示模式

       glutCreateWindow( "Hello OpenGL!" ); // 建立一個視窗,參數為視窗的標題

       glutDisplayFunc( display );           // 繪製當前視窗

       glutMainLoop();//通常用於程式的結尾,表示開始運行程式.顯示出所有建立的視窗

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.