天天看點

【OpenGL】OpenGL基本庫,OpenGL實用庫及OpenGL實用函數工具包之間的差别

OpenGL中的gl庫是核心庫,glu是實用庫,glut是實用工具庫。

gl是核心,glu是對gl的部分封裝,glut是OpenGL的跨平台工具庫。

gl中包含了最基本的3D函數,而glu似乎對gl的輔助,如果算數好,不用glu的情況下,也是可以做出同樣的效果。

glut是基本的視窗界面,如果不喜歡用glut可以用MFC和Win32視窗等代替,但是glut是跨平台的,這就保證了我們編出的程式是跨平台的,如果用MFC或者Win32隻能在windows作業系統上使用。選擇OpenGL的一個很大原因就是因為它的跨平台性,是以我們可以盡量的使用glut庫。

GLUT 不是 OpenGL 所必須的,但它會給我們的學習帶來一定的友善。

首先,需要包含頭檔案#include <GL/glut.h>,這是 GLUT 的頭檔案。本來 OpenGL 程式一般還要包含<GL/gl.h>和<GL/glu.h>,但 GLUT 的頭檔案中已經自動将這兩個檔案包含了,不必再次包含。

各種庫

opengl 實用庫 : 43個函數,以glu開頭,包括紋理映射、坐标變換、多邊形分化、繪制一些如橢球、圓柱、茶壺等簡單多邊形實體部分函數象核心函數一樣在任何OpenGL平台都可以應用。

opengl輔助庫: 31個函數,以aux 開頭。

OpenGL函數庫相關的API有核心庫(gl)、實用庫(glu)、輔助庫(aux)、實用工具庫(glut)、視窗庫(glx、agl、 wgl)和擴充函數庫等。

gl是核心,glu是對gl的部分封裝。

glx、agl、wgl 是針對不同視窗系統的函數。

glut是為跨平台的OpenGL程式的工具包,比aux功能強大。

幾種常見的“奇異”頭檔案:

<GL/glaux.h>:GLAUX(OpenGL輔助庫)所使用的函數和常量聲明。目前這個庫已經過時,隻有比較少的編譯環境中有提供,例如VC系列。在VC系列編譯器中,使用這個頭檔案之前必須使用#include <windows.h>或者具有類似功能的頭檔案。

 <GL/glext.h>:擴充頭檔案。因為微軟公司對OpenGL的支援不太積極,VC系列編譯器雖然有<GL/gl.h>這個頭檔案,但是裡面隻有OpenGL 1.1版本中所規定的内容,而沒有OpenGL 1.2及其以後版本。對目前的計算機配置而言,幾乎都支援OpenGL 1.4版本,更高的則到1.5, 2.0, 2.1,而VC無法直接使用這些功能。為了解決這一問題,就有了   <GL/glext.h>頭檔案。這個頭檔案提供了高版本OpenGL所需要的各種常數聲明以及函數指針聲明。

<GL/wglext.h>:擴充頭檔案。與<GL/glext.h>類似,但這個頭檔案中隻提供适用于Windows系統的各種OpenGL擴充所使用的函數和常量,不适用于其它作業系統。

繼續閱讀