从0开始学OpenGL之Mac篇(1)

在文章开始之前,其实可以用homebrew进行安装,这样比较方便一些,但是处于其他方面的考虑,还是没有写出来。


     因为选择了媒体与可视化这个方向的课程,所以开始学习OpenGL。OpenGL按照设备的定位可以分成OpenGL和OpenGL ES,前者用在桌面环境,后者用在浏览器(WebGL)和移动设备上。按 API 设计演化,分为传统的 OpenGL(基于固定管线,确切说是一组固定的函数),现代的OpenGL(基于着色器,确切的说是交给程序员来设计着色规则,使用一种类C的语言),就本人的学校而言的话,下学期开设的图形学课程按照往年的来说,学习的是用在桌面环境的基于固定管线的OpenGL。因为个人比较喜欢新版本的OpenGL,因此就直接从新版本的OpenGL开始学习。但是那些比较有名比较全的教程中,大部分都是用的Windows来进行讲解的,因此鲜有Mac的教程,因此把自己的学习过程以及遇到的问题和解决方案贴出来,希望如果有人能看到的话可以帮一些小忙。

      首先就是开始学习了,作为习惯使用Mac做开发的同学来说,如果你想直接写OpenGL的话,只需要一个Xcode就够了,因为xcode里面有所有你需要的东西,包括OpenGL的头文件,mac自己实现了OpenGL,所以你不需要安装任何驱动。随后的话就跟你要使用的OpenGL的版本有关系了,如果你对新版的OpenGL感兴趣的话,你需要一些获得OpenGL函数的类库,其中我使用的就是GLEW。如果你不想直接依赖 mac 本身的窗口库,换句话说,你希望你的代码可以在 其他平台上面运行,你需要 GLUT,或者 GLFW,其中 GLUT mac 自带,然而不推荐使用(mac 不推荐,你还是可以用),GLFW 你需要去下载(可以通过homebrew)。如果你想要让你的程序 完全跨平台,你甚至需要脱离 XCode 特有的文件,这时候你需要 cmake 或者 其他跨平台的项目组织方式(Scons 还有自己写的 makefile 啥的,都可以),推荐 CMake,用的人比较多,好查资料,但是你不一定需要它。

     所以总结来说,所需要的第三方代码或软件为:CMake(做图形学几乎是必备,因为大多数图形类库都用了这个东西),GLFW(跨平台的窗口事件管理库),GLEW(现代的 OpenGL,需要它来获取相应的函数)       IDE:Clion或者Xcode   其实Clion也是一款十分棒的IDE,它对C/C++的支持更好,同时Clion是直接打开cmake的项目文件,clion用的项目模型就是cmake,意思就是,它不用 cmake 来生成自己特有的项目文件(比如 XCode 或者 Eclipse 那样),但是用它就需要知道一些 cmake 的语法,否则,你要自己添加依赖什么的,就会变得麻烦。如果不太愿意花时间学习 cmake 的语法什么的,推荐你用 XCode。所以这篇文章用的就是Xcode。

    所以说了这么多,我们要做的就是第一步就是GLFW

一、下载GLFW

首先我们从GLFW的官方网站上下载,我们选择Source package这个选项,下载完成后将解压包放在你想要放置的位置

二、下载Cmake以及配置GLFW

首先我们从Cmake的下载页来进行下载,在对应的系统下选择相应的安装包,下载完成之后我们就可以进行安装了。安装完成之后我们点击运行Cmake,CMake需要一个源代码目录和一个存放编译结果的目标文件目录。源代码目录我们选择GLFW的源代码的根目录,然后我们新建一个_build_文件夹来作为目标目录。就我个人来说,首先我创建了一个GLFW文件夹,然后将下载好的GLFW的根目录放入该文件夹中,同时在GLFW文件夹中新建一个_build_文件夹。


之后点击Configure按钮,选择UNIX makefile,如果此时界面变红,再次点击configure,然后点击generate

然后打开终端,cd到_build_,依次输入

[cpp]  view plain  copy
  1. make  
[cpp]  view plain  copy
  1. make install  
完成之后,我们可以在/usr/local/lib中找到 libglfw3.a  可以在/usr/local/include中找到头文件,这对于我们在Xcode中的配置是很关键的。

三、下载及配置GLEW

首先我们先在主页下载好glew

下载完成后,我们在终端cd到GLEW所在的目录,依次输入

[cpp]  view plain  copy
  1. sudo make GLEW_DEST=/usr/local  
[cpp]  view plain  copy
  1. <pre name="code" class="cpp">sudo make GLEW_DEST=/usr/local install  

 
在执行第一个命令的时候,所耗费的时间可能会比较长,我执行的时候大概执行了十几分钟的样子- -. 

等两条命令全部执行完毕之后,GLEW已经配置好了,我们同样可以在lib和include中找到他们

四、配置Xcode

打开xcode之后新建一个命令行项目,随便取一个名字,例:OpenGl_window

之后我们需要在Build Settings里面更改几项配置

在User Header Search Paths里面输入/usr/local/include ,不要勾选后面的recursive(因为在我勾选之后出现了错误,如果想尝试一下的可以试一下)

在library Search Paths里面输入/usr/local/lib,同样不要勾选后面的recursive

在Always Search User Path选择YES

在Build Phases里面添加一些库文件(自从Xcode几来着忘记了貌似可以不用添加自带的,但是最后的GLFW是要添加的)

然后输入以下代码就可以测试你的GLFW是否已经好用

[cpp]  view plain  copy
  1. #include <GLFW/glfw3.h>  
  2.   
  3. int main(void)  
  4. {  
  5.     GLFWwindow* window;  
  6.   
  7.     /* Initialize the library */  
  8.     if (!glfwInit())  
  9.         return -1;  
  10.   
  11.     /* Create a windowed mode window and its OpenGL context */  
  12.     window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);  
  13.     if (!window)  
  14.     {  
  15.         glfwTerminate();  
  16.         return -1;  
  17.     }  
  18.   
  19.     /* Make the window's context current */  
  20.     glfwMakeContextCurrent(window);  
  21.   
  22.     /* Loop until the user closes the window */  
  23.     while (!glfwWindowShouldClose(window))  
  24.     {  
  25.         /* Render here */  
  26.   
  27.         /* Swap front and back buffers */  
  28.         glfwSwapBuffers(window);  
  29.   
  30.         /* Poll for and process events */  
  31.         glfwPollEvents();  
  32.     }  
  33.   
  34.     glfwTerminate();  
  35.     return 0;  
  36. }  

讲道理,现在的GLFW已经好使了,运行出来的结果应该是一片黑色的窗口,可能会遇到屏幕有部分不是黑色的情况闪来闪去,多运行几次就好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值