LearnOpenGL 源码在 MAC 上的编译与调试

简介: 学习 OpenGL ,相信肯定有不少人看过这个网站:https://learnopengl.com/

作者:星陨
来源:链接文字

学习 OpenGL ,相信肯定有不少人看过这个网站:

https://learnopengl.com/

image.png

这是它的英文原版网站,后来又有了不同语言的翻译版本,对应中文就是:

https://learnopengl-cn.github.io/

image.png

这两个网站对于学习 OpenGL 帮助非常大,既可以用作入门的教材,也可以作为工具书,后续进行查漏补缺。

并且它的内容很全面,除了 OpenGL 基础知识、坐标系统、纹理、Shader、模型加载等,还有高级光照、PBR 等渲染技巧,这些在渲染引擎的开发中都是会用到的,后面会继续和大家分享。

本文主要是讲解如何运行 LearnOpenGL 文章中的示例代码,在 XCode 上进行编译和调试,效果如下:

image.png

在网站上某一章节的内容,就对应于 XCode 工程某一小项的具体代码,我们可以选择要运行的章节代码,在 Mac 看到最终效果。

image.png

另外,我们还可以在 XCode 上修改相关代码,调整某些参数,验证自己的想法和实验结果。

这一点很重要,对于初学者来说就是要不断地试错,在失败中成长。

在开始 LearnOpenGL 网站的代码讲解之前,先介绍一下他的主人。

image.png

不得不说,这是位大佬,有兴趣的同学都可以去 Follow 一下。

他的个人主页是:

https://joeydevries.com

从主页上可以看到大佬在图形学和游戏开发上造诣颇深,做了不少有意思的东西。

  • 实现了一个简单的渲染引擎,采用 C++ 开发,支持了不少特性,在 LearnOpenGL 网站上都可以看到。

https://github.com/JoeyDeVries/Cell

这可以当做是学习 OpenGL 之后巩固提高的一个大作业了。

  • 另外,还做了一个 Vulkan 的教学网站,虽说目前还没有完成,但仍然值得期待。

https://learnvulkan.com/

  • 当然了,你也可以看我的网站,或许对你有一些帮助

https://glumes.com/

言归正传,讲回代码的编译部分。

LearnOpenGL 网站的示例代码地址如下,clone 这个项目到你的电脑上。

https://github.com/JoeyDeVries/LearnOpenGL

在这个项目的 README.md 上已经有讲如何在 MAC 平台进行编译了。

brew install cmake assimp glm glfw
mkdir build
cd build
cmake ../.
make -j8

但是这个编译结果并不是我们想要的,因为它编译出来的都是二进制可执行文件。

image.png

虽说我们可以通过 ./xxx 的方式来运行这些可执行文件,但总不能每改一点代码就全都编译一次吧。

理想的方式就要通过 IDE(集成开发环境) 来编译运行,并且在 IDE 上修改代码,看到结果。

XCode 在这里就充当了 IDE 的角色。

下面给出新的编译代码:

brew install cmake assimp glm glfw
mkdir build
cd build
cmake -G "Xcode" ..

有变化的就是最后一行了,此行代码会在 build 目录下生成 XCode 工程。

image.png

双击 LearnOpenGL.xcodeproj 就可以打开整个工程啦。

接下来就是自由发挥时间,你可以在源代码基础上进行任何修改,对照着 LearnOpenGL 网站上的讲解,一步一步地去调试验证,积累经验,在成为大佬的路上越走越远~~~~

OpenGL 系列文章

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

阿里云社区.png

相关文章
|
2月前
|
Web App开发 iOS开发 开发者
Mac——基于Similator和Safari调试移动端页面
最近在开发移动端,需要在iphone环境下做一些调试,查看下是否有问题,但是手头上没有真机,不过当前主力本换成了`Mac`,所以就可以先用`Simulator`来调试下。
72 8
|
6月前
|
计算机视觉 C++
Mac系统下vscode调试opencv环境搭建
Mac系统下vscode调试opencv环境搭建
137 1
|
6月前
|
数据库管理
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
273 0
|
6月前
|
Kubernetes NoSQL Java
ChaosBlade常见问题之在mac下编译报checksum mismatch的错误如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
11月前
|
JavaScript 算法 前端开发
Mac下编译dinky-web(踩坑篇)
Mac下编译dinky-web(踩坑篇)
173 0
|
Web App开发 iOS开发
Mac Safari 配置 IE 代理 (支持 IE 调试)
Mac Safari 配置 IE 代理 (支持 IE 调试)
1094 0
|
安全 编译器 Shell
[✔️]mac上编译使用ffmpeg
[✔️]mac上编译使用ffmpeg
595 0
|
iOS开发 MacOS
Mac版网络调试助手打开多个页面
网络调试助手,直接在APP store下载。因为是两个网络调试助手之间的通信,因此我们需要双开该软件。
255 0