OpenGL学习笔记(0)

前言

LearnOpenGL-CN是一个非常棒的网站,它是一份非常棒的OpenGL教程,我正在这个网站阅读学习,本文章也是我的学习笔记,非常建议感兴趣的朋友去看看,也希望我的文章对你有用.

MacOS OpenGL环境搭建

教程使用的是OpenGL3.3版本,从OpenGL3.2开始,api有了非常大的变化,它推出了核心模式(Core-profile),这个模式完全移除了旧的特性。它有一些难度,然而提供了更多的灵活性,更高的效率,更重要的是可以更深入的理解图形编程。

GLFW

GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口. 在MacOS上,我们需要获取到glfw的源文件自己编译出库文件
1. 在http://www.glfw.org/download.html下载到Linux and macOS binaries
2. 安装cmake,这个工具用来生成工程文件.并且glfw源文件也准备好了其它必要的配置.
3. 解压glfw源文件,在解压文件根目录下执行 cmake .,再执行sudo make install 会将glfw3安装到/usr/local/目录下,安装成功会在控制台输出安装路径,通常安装在/usr/local目录下

如果命令行提示command cmake not found,则需要在环境变量中加入cmake的路径
cd ~
touch .bash_profile 如果没有.bash_profile文件
open .bash_profile
编辑.bash_profile 添加一下内容
export PATH=”cmake路径/bin:${PATH}”
最后再运行source .bash_profile更新一下

GLEW

由于OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,在Windows上会是类似这样:

// 定义函数原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正确的函数并赋值给函数指针
GL_GENBUFFERS glGenBuffers  = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 现在函数可以被正常调用了
GLuint buffer;
glGenBuffers(1, &buffer);

如果每个函数都要这样处理,那真是个噩梦,所以我们让GLEW来帮助我们完成这个工作
和GLFW一样,我们需要自己编译出相应的库文件
1.在这里下载源文件
2.解压源文件进入build/cmake目录执行camke ., 再执行 cmake install最后会安装再和GLFW同样的目录下

创建OpenGL工程

打开xcode, New Project –> macOS –> Command Line 创建一个命令行程序
在工程的Build Setting – Header Search Path 中加入头文件路径 /usr/local/include/
在工程的Build Setting – Library Search Path 中加入lib文件路径 /usr/local/lib/
打开工程在Project –> Build Phases –> Link Binary With Libraries 添加必要依赖
这里写图片描述
其中libglfw3.a和libGLEW.a都位于/usr/local/lib/

这里的4个.framework都是Xcode自带的,而libglfw3.a就是我们编译出来的库文件,而libSOIL.a是一个用来读取图片文件的库,我们在后面的文章中会用到它,到时候会详细描述如何获取它

至此在Xcode中的OpenGL3.3环境已经配置好,可以开始现代OpenGL的学习了

猜你喜欢

转载自blog.csdn.net/a185368204/article/details/81710628