OpenGL學習入門之VS2010環境配置 [轉]

OpenGL開發環境簡介

  

基於OpenGL標準開發的應用程序運行時需有動態連接庫OpenGL32.DLLGlu32.DLL,這兩個文件在安裝Windows NT時已自動裝載到C\WINDOWS\SYSTEM32目錄下(這裏假定用戶將Windows NT安裝在C盤上)OpenGL的圖形庫函數封裝在動態連接庫OpenGL32.DLL中,開發基於OpenGL的應用程序,必須先了解OpenGL的庫函數。OpenGL函數命令方式十分有規律,每一個庫函數均有前綴glgluaux,分別表示該函數屬於OpenGL基本庫、實用庫或輔助庫。Windows NT下的OpenGL包含了100多個核心函數,均以gl做爲前綴,同時還支持另外四類函數:編程

       OpenGL實用庫函數:43個,以glu做爲前綴;緩存

       OpenGL輔助庫函數:31個,以aux做爲前綴;函數

       Windows專用庫函數(WGL)6個,以wgl做爲前綴;工具

       Win32API函數(WGL)5個,無前綴。oop

   

安裝GLUT工具包

   

GLUT不是OpenGL所必須的,但它會給咱們的學習帶來必定的方便,推薦安裝。學習

Windows環境下的GLUT下載地址:(大小約爲150k字體

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

   

GLUT表明OpenGL應用工具包,英文全稱爲OpenGL Utility Toolkit,是一個和窗口系統無關的軟件包,操作系統

  它由Mark KilgardSGI時寫的。做爲AUX庫的功能更強大的替代品,用於隱藏不一樣窗口系統API的複雜性。.net

  是一個學習OpenGL編程的一個良好開端。

  

VS環境配置

   

將下載的壓縮包解開,將獲得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這個文件夾則能夠本身新建一個。(x是你安裝VS的盤符號)

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

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

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

   

第一個OpenGL程序

   

首先建立工程,其步驟以下:

1)建立一個Win32 Console Application

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

如今你能夠把下面的例子拷貝到工程中去,編譯運行。你能夠看到一個三角形。


#include "stdafx.h"
 
 #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();
 
 }
 
  
 
 int _tmain(int argc, _TCHAR* 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://blog.csdn.net/genganpeng/article/details/688204 8

相關文章
相關標籤/搜索