## CG Math | Learning Resources

If you are an artist interested in a more technical side of computer graphics (rigging, tools development, etc.) you will need to learn some math eventually. Going through academic materials as a first step is not particularly encouraging idea though. You will be thrown into deep water and will probably still not understand how the abstract math applies to practical problems.

Fortunately, these days there are a lot of resources, both in print and on the web that make learning mathematics used in computer graphics easier, faster and to the point. And you can always delve into academia later if you long for more.

I've set on this journey about 2 years ago and was simply blown away by quite a few of the materials I came across during that time. Mathematical concepts presented in a very visual way are much easier to understand (artist friendly so to speak). That combined with more thorough knowledge that you can find in books and articles makes for a very enjoyable learning experience. The branches of mathematics that are most relevant for the start are (in no particular order): geometry, linear algebra, trigonometry and calculus.

I compiled a list of resources that I've been going through below. It's not a complete list by any means. I may add more positions over time. I haven't study all of these in entirety but enough to know that each and every one is a super useful resource.

## YouTube Resources.

I recommend to start from watching channels listed below. These will give you a solid high-level overview of mathematical concepts involved.

Fantastic channel for everything math conducted by Grant Sanderson who also did some education work for Khan Academy. There are lots of really good videos demonstrating math in a very visual way. For computer graphics purposes you will be most interested in Linear Algebra and Calculus series.

Another fantastic resource with incredibly easy to follow narrative. I cannot recommend it enough. Series on imaginary numbers was a real eye-opener for me and may help you with understanding quaternions. The other series are worth watching as well.

Jamie King is a professional software engineer (he works at Google) and is sharing a lot of knowledge on many topics concerning software engineering and math. Although titles of playlists suggest that it's more about programming (C++ and C#) I'd argue that even for pure math knowledge this is a fantastic channel. Below is Jamie's take at explaining Linear Algebra.

Jorge Rodriguez is another highly skilled professional sharing his knowledge. Videos are oriented towards game development but you can find a general computer graphics knowledge as well. Like series on dreaded quaternions linked below.

If resources above do not satisfy you here a few academic materials to deepen your knowledge. They do require more commitment though.

Did you know that Massachusetts Institute of Technology has YouTube channel with tons of incredible courses for free? I've started following the course on Linear Algebra and this is what you want to watch if you really want to go in-depth.

This is a very thorough resource on mathematics taught by N J Wildberger of the School of Mathematics and Statistics at UNSW.

I've been watching the course on Linear Algebra. Chapters are long but the approach is unique and very, very interesting. Quoting from course description itself: "the course gives a more geometric and natural approach to this important subject, with lots of interesting applications". Definitely recommended if you have enough time.

Rational Trigonometry is worth looking at as well. The author claims it's a much better way to learn trigonometry then the classic approach usually taught in schools.

# Online Reading

This website is dedicated to articles on mathematics and physics for computer graphics and it's a really well thought out, well written resource. It teaches you all you need to know starting from the very basics and without overcomplicating things. You can also write C++ code as you go and full source code for everything taught in articles is included. It's focused on rendering but frankly, most of the concepts will apply to other areas such as rigging and deformations as well.

You can make donations to help ScratchAPixel grow and I wholeheartedly recommend doing so.

# Books

Each of books mentioned below is worth reading. First two are focused on math only and therefore more extensive then the 3rd book that covers all sorts of subjects related to developing a game engine and only has a section dedictaed to math. I personally recommend having a go at each (although math only books should be a better start) since each position will explain the same concepts in a slightly different way and you never know which approach is going to work better for you.

### Essential Mathematics for Games and Interactive Applications, 3rd Edition

by James M. Van Verth and Lars M. Bishop

## 3D Math Primer for Graphics and Game Development, 2nd Edition

by Fletcher Dunn and Ian Parberry

## Game Engine Architecture, 2nd Edition

by Jason Gregory