最近学习OpenGL编程时发现了一个不错的教程网站:http://www.opengl-tutorial.org/zh-hans/beginners-tutorials-zh/。这里的教程提供了多种语言的版本,包括中文版。可惜写作这些教程时,Mac OS还不支持OpenGL 3.3,所以作者只提供了2.1移植版的课程代码。
因为自己平时主要使用Mac,虽然有Windows和Linux的虚拟机,但毕竟没有本机方便,于是考虑能否将这些代码移植到Mac上。经过一番研究后,按照如下步骤移植成功,暂时未发现异常。
- 首先下载源码包(http://www.opengl-tutorial.org/download/,下载OpenGL 3.3的即可,2.1的不需要),解压到目录OpenGL-tutorial_v0014_33中;
- 进入OpenGL-tutorial_v0014_33。以后如无特殊说明,使用到的相对目录都是相对于此目录。
- 删除目录external/glfw-2.7.6和external/glfw-3.0.3。
- 从http://www.glfw.org/下载最新的源码包glfw-3.1.2,解压到external/glfw-3.1.2。
- 打开CMakeLists.txt,查找glfw-3.0.3替换为glfw-3.1.2,查找GLFW_303替换为glfw。
- 打开external/CMakeLists.txt,查找glfw-3.0.3替换为glfw-3.1.2。
- 安装CMake GUI版本,输入目录选择OpenGL-tutorial_v0014_33,输出目录选择和OpenGL-tutorial_v0014_33平级的目录如Xcode即可。如果这个目录不存在CMake会自动创建。
- 点击Configure按钮,询问Generator时从列表中选择Xcode,然后等待执行完毕。
- 点击Generate,将自动生成Xcode工程文件Tutorials.xcodeproj。
- 打开Xcode工程文件Tutorials.xcodeproj,将当前schema设置为tutorial01_first_window,然后打开tutorial01.cpp,做如下修改并保存:
- 点run,不出意外的话应该可以正常运行了。
- 后续教程中,如果运行时遇到错误提示:Invalid call of undeclared identifier 'texture2D',只需要把着色器代码的texture2D改为texture即可。
阅读:46