OpenGL 初学者搭建开发环境时,网上可以参考的文章特别多,但基本都是行动派,告诉你这个库在哪里下载,那个库怎么安装,但鲜有讲概念的。今天咱们就来讲一讲。

OpenGL 是跨平台的,但 OpenGL 环境(OpenGL Context)不是跨平台的。为了开发方便,有很多库出现了,就是为了解决 OpenGL 环境跨平台的问题,例如:glutglfwglewglad. 这些库的功能有三大块:加载OpenGL的函数指针、建立 OpenGL context、创建窗口并与 OpenGL context 关联。glewglad 的功能是第一块,glutglfw 的功能涵盖后两块。

glew glad 的功能差不多,可以任意选一个。glut 已经过时了,只支持很老的 OpenGL 标准,所以现在一般选择 glfw

不过还要注意下面这几点:

1、在 macOS 平台,OpenGL framework 已经自带了头文件:gl.hcompat profile)和 gl3.h (core profile),所以 glew glad 并不是必需的。

2glfw 包装了窗口系统,可以跨平台,用来写 demo 或学习 OpenGL 是很方便的,但如果用于商业化软件项目就不太行了,因为实际的软件项目大多有自己的 UI 框架,有很复杂的窗口(View)层次和自定义外观,不是一个简单的顶层窗口能解决的。实际的软件项目需要的是在已有的窗口上建立 OpenGL 环境,作为 OpenGL 的输出目标。而这一功能 glfw 做不到,只能是自己写平台相关代码搞定:Windows 平台用 wglmacOS 平台一般用 NSOpenGLView

友情链接

­