AR 学习之路整理:我看过的那些 Metal 与数学书籍

3,254 阅读3分钟

说明

学习 AR 的过程中,其实绕不开计算机图形学。

如果熟悉 OpenGL,可以直接找 OpenGL 与图形学相关书籍;如果熟悉 Unity,可以直接找 Unity 与图形学相关书籍;如果都不熟悉,可以去看 GAMES101 现代计算机图形学入门主讲老师:闫令琪

对于 iOS 开发者来说,了解图形学的基本知识后,还需要学习相关算法:3D 数学,和相关 API:Metal。这里我就来说说我觉得不错的 3D 数学与 Metal 相关书籍。

Metal

关于 Metal 的书籍非常少,感觉写得全面且不断更新的就是 Raywenderlich 家的 Metal by Tutorials

知乎上有部分中文版:Metal 入门学习

这本书的好处是:带着你从 0 开始,用 Metal 写出一个极简的 3D 渲染引擎。同时还介绍了 MPS(Metal Performance Shaders),以及与 SceneKit 和 SpriteKit 的结合使用。

缺点是:比较侧重于 API 的使用,没有对图形学和 3D 数学进行过多讲解。

关于 Metal 在 ARKit、RealityKit 中的使用,也可以看我的专栏文章,主要讲解 Metal Shader 入门,及在 ARKit、RealityKit 中的使用:

3D 数学

3D 数学基础方面推荐3Blue1Brown的视频:线性代数的本质,B 站上有中文字幕和翻译。 除了视频,还有下面几本书值得学习,需要注意的是,普通开发者并不需要完全掌握书上的全部内容,了解基础知识更重要:

  • 《计算机图形学几何工具算法详解》
  • 《3D游戏与计算机图形学中的数学方法》 第3版
  • 《3D数学基础图形与游戏开发》 第2版 (一定要买第二版!!!)
  • 《计算机图形学——几何体数据结构》

几何工具算法详解3D 游戏与图形学中的数学方法3D数学基础图形与游戏开发几何体数据结构
优点2D、3D 算法有插图数学与 3D 引擎结合,推荐数学与 3D 引擎结合,强烈推荐!侧重几何体,树与图
缺点偏数学,与图形学结合太少内容多,但不够详细内容多又详细,但太厚了艰深,入门用不到
推荐指数★★★★★★★★★★★★★

3D 数学知识学习起来,确实枯燥乏味,比刷 LeetCode 还艰难。不过好处是,只要掌握入门知识,熟悉向量和矩阵运算,就足以应付一般的开发工作了。毕竟,3D 引擎和框架帮我们处理大部分复杂过程。

对于这几本书中讲解的一些基础知识,比如向量和矩阵运算,我总结了一系列文章,用 Swift 实现了其中的若干算法,并配有插图和讲解: ARKit 与计算几何 ARKit 与计算几何

如果实在看不进去数学书,可以去看我的文章,为方便大家理解,其中配图很多,如下: