instructions

In the process of learning AR, there is no getting around computer graphics.

If you’re familiar with OpenGL, you can go directly to OpenGL and graphics books; If you are familiar with Unity, you can go directly to Unity and graphics books. If not, check out GAMES101 Introduction to Modern Computer Graphics by Yan Lingqi.

For iOS developers, after understanding the basic knowledge of graphics, they also need to learn related algorithms: 3D mathematics, and related API: Metal. Here I would like to say that I think a good 3D mathematics and Metal related books.

Metal

There are very few books on Metal, and the one that feels well-written and constantly updated is Raywenderlich’s Metal By Tutorials.

There is part of Chinese version on Zhihu: Introduction to Metal learning

The benefit of this book is that it takes you from zero to write a minimalist 3D rendering engine in Metal. It also introduces MPS(Metal Performance Shaders) and its use with SceneKit and SpriteKit.

The downside: it focuses on the API and doesn’t cover much in graphics and 3D math.

For more information about using Metal in ARKit and RealityKit, see my column on getting started with Metal Shader and using Metal in ARKit and RealityKit.

  • Metal Shader Quick start

3 d math

Here are a few books to learn about 3D math, but it’s important to note that it’s not necessary for the average developer to know everything there is to know:

  • Computer Graphics Geometry Tool Algorithm details
  • Mathematical methods in 3D games and computer graphics. 3rd edition
  • 3D Mathematical Basic Graphics and Game Development 2nd edition (be sure to buy 2nd edition!!)
  • Computer Graphics — Geometry Data Structures

Geometric tool algorithm in detail Mathematical methods in 3D games and graphics 3D mathematical basic graphics and game development Geometry data structure
advantages 2D and 3D algorithms have illustrations Math combined with 3D engine, recommended Math combined with 3D engine, highly recommended! Focus on geometry, trees and graphs
disadvantages Partial mathematics, too little combination with graphics Plenty of content, but not enough detail It’s long and detailed, but it’s too thick Difficult, the entrance is useless
Recommend index End to end U u u u U u u u u End to end

Learning 3D mathematics is really boring and boring, which is more difficult than brushing LeetCode. However, the advantage is that a basic knowledge of vector and matrix operations is sufficient for general development work. After all, 3D engines and frameworks help us handle most of the complexity.

For some of the basics covered in these books, such as vector and matrix operations, I summarized a series of articles that implemented several of these algorithms in Swift, with illustrations and explanations: ARKit and Computational Geometry

If you really can’t read the math book, you can go to see my article, for the convenience of everyone to understand, which illustrated a lot of pictures, as follows: