OpenGL 各类库的解析 gl/glu/glut/freeglut/glfw/glew
看了網上很多資料,講的都不是很全,正好在學這一塊,好好地總結一下吧
注:在windows中,對這些庫的大小寫是不作要求的
gl.h
gl庫是核心庫,gl中包含了最基本的3D函數,可以再本地電腦中的: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl 路徑下找到gl.h頭文件,打開后可以看到其中定義的上百個相關函數。
glu.h
glu是實用庫,包含有43個函數,函數名的前綴為glu。glu 為了減輕繁重的編程工作,glu對gl中的函數進行部分封裝,glu函數通過調用核心庫的函數,為開發者提供相對簡單的用法,實現一些較為復雜的操作。如果算術好,在不使用glu庫的情況下,使用gl庫可以實現同樣的效果。
glut.h
gult:OpenGL工具庫 OpenGL Utility Toolkit。 glut是基本的窗口界面,是獨立于gl和glu的,如果不喜歡用glut可使用MFC和Win32窗口等代替。但是glut是跨平臺的,這就保證了我們編出的程序具有跨平臺性,而使用MFC或Win32只能在windows操作系統上使用。主要包括窗口操作函數,窗口初始化、窗口大小、窗口位置等函數;回調函數:響應刷新消息、鍵盤消息、鼠標消息等等。 這個頭文件自動包含了gl.h和glu.h,編程時不必再次包含它們。
freeglut.h
各種教程和書里常見的是閉源的GLUT。但由于GLUT的作者已經很久沒更新過了(最后更新于2000年!= =),所以其他人另外做了一個接口兼容GLUT的freeglut,開源而且一直在維護中。可以理解為glut的替代庫。
glew
GLUT或者FREEGLUT主要是1.0的基本函數功能;GLEW是使用OPENGL2.0之后的一個工具函數。不同的顯卡公司,也會發布一些只有自家顯卡才支 持的擴展函數,你要想用這數涵數,不得不去尋找最新的glext.h,有了GLEW擴展庫,你就再也不用為找不到函數的接口而煩惱,因為GLEW能自動識別你的平臺所支持的全部OpenGL高級擴展函數。也就是說,只要包含一個glew.h頭文件,你就能使用gl,glu,glext,wgl,glx的全部函數。
glfw.h
GLFW無愧于其號稱的lightweight的OpenGL框架,一個頭文件,很少量的API,就完成了任務。GLFW的開發目的是用于替代glut的,從代碼和功能上來看,我想它已經完全的完成了任務。它是一個輕量級的,開源的,跨平臺的library。支持OpenGL及OpenGL ES,用來管理窗口,讀取輸入,處理事件等。因為OpenGL沒有窗口管理的功能,所以很多熱心的人寫了工具來支持這些功能,比如早期的glut,現在的freeglut等。那么GLFW有何優勢呢?glut太老了,最后一個版本還是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齊全,但是bug太多。穩定性也不好(不是我說的啊),GLFW應運而生。并且glfw也是跨平臺的~!
————————————————
版權聲明:本文為CSDN博主「MISAYAONE」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/misayaaaaa/article/details/73087464
總結
以上是生活随笔為你收集整理的OpenGL 各类库的解析 gl/glu/glut/freeglut/glfw/glew的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GLUT库与GLAUX库
- 下一篇: OpenGL之GLFW入门学习