目錄
- 一.簡介
- 1.freeglut
- 2.glew
- 3.glut
- 4.glfw
- 5.glad
- 二.分類
- 1.視窗管理
- 2.函式加載
- 三.組合使用
- 1.freeglut + glew
- 2.glfw + glew
- 3.glfw + glad
- 四.猜你喜歡
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 特效
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 轉場
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 函式
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES GPUImage 使用
零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES GLSL 編程
一.簡介
1.freeglut
freeglut 是 GLUT (OpenGL Utility Toolkit)的一個免費開源替代庫,在程式中負責創建視窗、初始化 OpenGL 背景關系和處理輸入事件所需的所有系統特定的雜務,從而允許創建真正可移植的 OpenGL 程式,
在 OpenGL 專案開發中,freeglut 一般搭配 glew 一起使用;
2.glew
OpenGL Extension Wrangler Library (GLEW) 是一個跨平臺的開源 C/C++ 擴展加載庫,GLEW 提供了有效的運行時機制來確定目標平臺支持哪些 OpenGL 擴展,OpenGL 核心和擴展功能在單個頭檔案中公開,
不同的顯卡公司,也會發布一些只有自家顯卡才支持的擴展函式,你要想用這數涵數,不得不去尋找最新的 glext.h ,有了 GLEW 擴展庫,你就再也不用為找不到函式的介面而煩惱,因為 GLEW 能自動識別你的平臺所支持的全部 OpenGL 高級擴展函式,也就是說,只要包含一個 glew.h 頭檔案,你就能使用 gl glu glext wgl glx 的全部函式,
glew 包含了 OpenGL 所需的核心,glew 作用:用來找 openGL 的函式,并初始化,這樣我們就能直接呼叫 OpenGL 的函式了,
3.glut
OpenGL Utility Toolkit (GLUT) 主要包括視窗操作函式,視窗初始化、視窗大小、視窗位置等函式;回呼函式:回應重繪訊息、鍵盤訊息、滑鼠訊息、定時器函式等;創建復雜的三維物體;選單函式;程式運行函式,
glut 版本太老了,理應被時代淘汰,不推薦使用,freeglut 完全兼容 glut,是 glut 的代替品
4.glfw
官方解釋:glfw is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.
glfw 開發目的是用于替代 glut 的,它是一個輕量級的,開源的,跨平臺的 library,支持 OpenGL 及 OpenGL ES ,用來管理視窗,讀取輸入,處理事件等,
**glfw 優勢:**glut 太老了,最后一個版本還是 90 年代的,freeglut 完全兼容 glut ,算是 glut 的代替品,功能齊全,但是 bug 太多,穩定性也不好(不是我說的啊,不過 3.0 版本還是挺穩定的),所以 glfw 應運而生,
總之,glfw 是 glut / freegult 的升級和改進,glfw 是用來顯示視窗和捕捉視窗事件的一套 API,可以理解成 Qt 和 windows 平臺的 WPF ,
OpenGL 只是一套控制 GPU 的規則,并沒有對于跨平臺視窗顯示和事件進行規定,所以需要一個顯示顯卡渲染的視窗,這就是 glfw 的作用,
在 OpenGL 專案開發中,glfw 一般搭配 glad 一起使用;
5.glad
**GLEW 擴展庫作用:**不同的顯卡公司,也會發布一些只有自家顯卡才支持的擴展函式,你要想用這數涵數,不得不去尋找最新的 glext.h ,有了 GLEW 擴展庫,你就再也不用為找不到函式的介面而煩惱,因為 GLEW 能自動識別你的平臺所支持的全部 OpenGL 高級擴展函式,也就是說,只要包含一個 glew.h 頭檔案,你就能使用 gl glu glext wgl glx 的全部函式,
glad 是繼 gl3w,glew 之后,當前最新的用來訪問 OpenGL 規范介面的第三方庫,簡單說 glad 是 glew 的升級版,就是說 glew 比較老,glad 比較新,Windows 中 使用:
// 定義函式原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正確的函式并賦值給函式指標
GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 現在函式可以被正常呼叫了
GLuint buffer;
glGenBuffers(1, &buffer);
二.分類
1.視窗管理
老介面:glut / freeglut
新介面:glfw
2.函式加載
老介面:glew
新介面:glad
三.組合使用
1.freeglut + glew
該方式是經典組合,可以參考以下案例:

demo 下載:Windows OpenGL 調節亮度 Demo

demo 下載:Windows OpenGL 調節曝光 Demo

demo 下載:Windows OpenGL 調節對比度 Demo

demo 下載:Windows OpenGL 調節飽和度 Demo

demo 下載:Windows OpenGL 調節伽馬線 Demo
2.glfw + glew
該方式是非主流組合,一般不會這樣搭配
3.glfw + glad
該方式屬于比較新潮流,可以參考方案:《OpenGL ES glfw 下載和使用》

四.猜你喜歡
- OpenGL ES 簡介
- OpenGL ES 版本介紹
- OpenGL ES 2.0 和 3.0 區別
- OpenGL ES 名詞解釋(一)
- OpenGL ES 名詞解釋(二)
- OpenGL ES GLSL 著色器使用程序
- OpenGL ES EGL 簡介
- OpenGL ES EGL 名詞解釋
- OpenGL ES EGL eglGetDisplay
- OpenGL ES EGL eglInitialize
- OpenGL ES EGL eglGetConfigs
- OpenGL ES EGL eglChooseConfig
- OpenGL ES EGL eglGetError
- OpenGL ES EGL eglCreateContext
- OpenGL ES EGL eglCreateWindowSurface
- OpenGL ES EGL eglCreatePbufferSurface
- OpenGL ES EGL eglMakeCurrent
- OpenGL ES EGL eglSwapBuffer
- OpenGL ES EGL eglDestroySurface
- OpenGL ES EGL eglDestroyContext
- OpenGL ES EGL eglQueryContext
- OpenGL ES EAGLContext 和 EGLContext
- OpenGL ES OpenGL WebGL EGL WGL 區別
- OpenGL ES freeglut 下載和使用
- OpenGL ES glew 下載和使用
- OpenGL ES glut 下載和使用
- OpenGL ES glfw 下載和使用
- OpenGL ES glad 下載和使用
- OpenGL ES glut glew glfw glad freeglut
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536080.html
標籤:其他
上一篇:多組合少繼承
下一篇:Kafka消費者調優
