This is meant to be as generic as the question sounds. I am venturing into graphics programming, coming from frontend engineering. I've been wading through linear algebra via 3D Math Primer for Graphics and Game Development [1], and I quite enjoy it.
Does anyone have a semi-comprehensive list of math concepts I should learn for low-level graphics? I'm coming from a really sparse math background, as I only took up to Calc 2 in college.
Also, any general recommendations on the best way to learn graphics would be great. I'd say I'm more interested in graphics engines and experimental graphics than I am to actually making games.
Thanks
[1] https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?ie=UTF8&qid=1488396630&sr=8-1&keywords=math+for+3d+graphics
As you've probably already seen, at the basic level, graphics is just a ton of fairly straightforward linear algebra. 4x4 transforms are your friend.
Beyond that, understanding bezier surfaces and the associated tessellation algorithms is probably a good idea. The math of bezier surfaces is pretty straightforward, but you need to play with them a bit to build your intuition about how they work. Once you've picked up bezier surfaces, moving to related concepts like B-splines and Nurbs shouldn't be too bad.
Interpolation algorithms are useful as well. Bilinear interpolation is the easiest to get started with. This leads naturally into linear and nonlinear filters, as interpolation can be thought of as a specific type of filtering. This forms the basis for a lot of what goes on in various shading algorithms.
Additionally, you will want to get familiar with space partitioning data structures such as BSP trees and oct/quad/KD trees.