opengl库中gl glu glut glaux的区别
GL GLU GLUT的關系
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擴展所使用的函數和常量,不適用于其它操作系統。
總結
以上是生活随笔為你收集整理的opengl库中gl glu glut glaux的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一张图弄懂opengl的诸多库gl gl
- 下一篇: GLUT库与GLAUX库