2022年7月7日 星期四

OpenGL中,gult/freeglut/glfw/glew/glad差別

 1.OpenGL(https://opengl.org/)

OpenGL只定義framework框架,也就是說只有functions定義,並沒有實現內容,有點像interface。

實際function內容的,又有顯卡廠商,自行轉寫與優化。


OpenGL API分為:

gl: 核心library

glu:實用library(對gl封裝)

aux:輔助

glut:實用library工具(跨平台的OpenGL程序的工具包)

glx、agl、wgl:不同平台相關


2.1 gult(https://www.opengl.org/resources/libraries/glut/glut_downloads.php) - OpenGL Utility Toolkit

此函示庫已過於老舊,不建議使用。

對應開原版為freegult


2.2 freeglut(http://freeglut.sourceforge.net/) - Free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library

因OpenGL無視窗相關控制的函式,所以網路上很多高手加入相關功能,像早期glut,與現在的freeglut。

freeglut完全相容glut,是glut的代替品。freeglut 3.0版本較穩定,推薦使用。


2.3 glfw(https://www.glfw.org/)

lightweight、Open、跨平台。支持OpenGL及OpenGL ES,包含視窗管理、檔案存取、事件處理等。

少量的API,即可達到目的。

glfw目的一樣是取代glut。



3.1 glew(http://glew.sourceforge.net/) - The OpenGL Extension Wrangler Library

glut或freegult,主要是OpenGL 1.0的基本函式功能

glew使用OpenGL 2.0之後的工具函式功能

使用glew.h文件,就可以使用gl,glu,glext,wgl,glx相關函式(包含廠商開發一些函式)

glew包含了OpenGL所需的核心


3.2 glad(https://glad.dav1d.de/) - Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator

glad為gl3w、glew之後,目前最新OpenGL規範接口的第三方函式庫。glad是glew的升級版。



4. 結論

gl相關函式

舊:glut/freeglut

新:glfw


函式接口

舊:glew

新:glad


開發組和

(1)freeglut + glew -->較舊穩定搭配

(2)glfw + glew

(3)glfw + glad -->目前最新搭配



參考文章:https://blog.csdn.net/libaineu2004/article/details/105879521

沒有留言:

張貼留言