學(xué)習(xí)筆記 18:59 2023-03-22
glew32s.lib
OpenCSGd.lib
opengl32.lib
glu32.lib
glaux.lib
DxfRead.lib
CGFC.lib
GL GLU GLUT的關(guān)系
OpenGL中的gl庫(kù)是核心庫(kù),glu是實(shí)用庫(kù),glut是實(shí)用工具庫(kù)。
gl是核心,glu是對(duì)gl的部分封裝,glut是OpenGL的跨平臺(tái)工具庫(kù)。
gl中包含了最基本的3D函數(shù),而glu似乎對(duì)gl的輔助,如果算數(shù)好,不用glu的情況下,也是可以做出同樣的效果。
glut是基本的窗口界面,如果不喜歡用glut可以用MFC和Win32窗口等代替,但是glut是跨平臺(tái)的,這就保證了我們編出的程序是跨平臺(tái)的,如果用MFC或者Win32只能在windows操作系統(tǒng)上使用。選擇OpenGL的一個(gè)很大原因就是因?yàn)樗目缙脚_(tái)性,所以我們可以盡量的使用glut庫(kù)。
GLUT 不是 OpenGL 所必須的,但它會(huì)給我們的學(xué)習(xí)帶來(lái)一定的方便。
首先,需要包含頭文件#include <GL/glut.h>,這是 GLUT 的頭文件。本來(lái) OpenGL 程序一般還要包含<GL/gl.h>和<GL/glu.h>,但 GLUT 的頭文件中已經(jīng)自動(dòng)將這兩個(gè)文件包含了,不必再次包含。
各種庫(kù)
opengl 實(shí)用庫(kù) : 43個(gè)函數(shù),以glu開(kāi)頭,包括紋理映射、坐標(biāo)變換、多邊形分化、繪制一些如橢球、圓柱、茶壺等簡(jiǎn)單多邊形實(shí)體部分函數(shù)象核心函數(shù)一樣在任何OpenGL平臺(tái)都可以應(yīng)用。
opengl輔助庫(kù): 31個(gè)函數(shù),以aux 開(kāi)頭。
OpenGL函數(shù)庫(kù)相關(guān)的API有核心庫(kù)(gl)、實(shí)用庫(kù)(glu)、輔助庫(kù)(aux)、實(shí)用工具庫(kù)(glut)、窗口庫(kù)(glx、agl、 wgl)和擴(kuò)展函數(shù)庫(kù)等。
gl是核心,glu是對(duì)gl的部分封裝。
glx、agl、wgl 是針對(duì)不同窗口系統(tǒng)的函數(shù)。
glut是為跨平臺(tái)的OpenGL程序的工具包,比aux功能強(qiáng)大。
幾種常見(jiàn)的“奇異”頭文件:
<GL/glaux.h>:GLAUX(OpenGL輔助庫(kù))所使用的函數(shù)和常量聲明。目前這個(gè)庫(kù)已經(jīng)過(guò)時(shí),只有比較少的編譯環(huán)境中有提供,例如VC系列。在VC系列編譯器中,使用這個(gè)頭文件之前必須使用#include <windows.h>或者具有類似功能的頭文件。
?<GL/glext.h>:擴(kuò)展頭文件。因?yàn)槲④浌緦?duì)OpenGL的支持不太積極,VC系列編譯器雖然有<GL/gl.h>這個(gè)頭文件,但是里面只有OpenGL 1.1版本中所規(guī)定的內(nèi)容,而沒(méi)有OpenGL 1.2及其以后版本。對(duì)當(dāng)前的計(jì)算機(jī)配置而言,幾乎都支持OpenGL 1.4版本,更高的則到1.5, 2.0, 2.1,而VC無(wú)法直接使用這些功能。為了解決這一問(wèn)題,就有了? ?<GL/glext.h>頭文件。這個(gè)頭文件提供了高版本OpenGL所需要的各種常數(shù)聲明以及函數(shù)指針聲明。
<GL/wglext.h>:擴(kuò)展頭文件。與<GL/glext.h>類似,但這個(gè)頭文件中只提供適用于Windows系統(tǒng)的各種OpenGL擴(kuò)展所使用的函數(shù)和常量,不適用于其它操作系統(tǒng)。