
Ask HN: What math do I need to learn for graphics programming? - DarkTree
This is meant to be as generic as the question sounds. I am venturing into graphics programming, coming from frontend engineering. I&#x27;ve been wading through linear algebra via 3D Math Primer for Graphics and Game Development [1], and I quite enjoy it.<p>Does anyone have a semi-comprehensive list of math concepts I should learn for low-level graphics? I&#x27;m coming from a really sparse math background, as I only took up to Calc 2 in college.<p>Also, any general recommendations on the best way to learn graphics would be great. I&#x27;d say I&#x27;m more interested in graphics engines and experimental graphics than I am to actually making games.<p>Thanks<p>[1] https:&#x2F;&#x2F;www.amazon.com&#x2F;Math-Primer-Graphics-Game-Development&#x2F;dp&#x2F;1568817231&#x2F;ref=sr_1_1?ie=UTF8&amp;qid=1488396630&amp;sr=8-1&amp;keywords=math+for+3d+graphics
======
CuriouslyC
I'm not a very good graphics programmer but since nobody has chimed I'll give
you my 2 cents for what it is worth.

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.

------
chrisbennet
I do a lot of 3D stuff, not just graphics and I would say bone up on Linear
Algebra. It's the only kind of math I can do anymore (yep, can't
multiply/add/subtract without a calculator anymore).

As a side note, a few years ago there was a sea change in graphics with a lot
of stuff moving to the GPU. Learn all you can about shaders. Playing with
shaders is super fun. See
[https://www.shadertoy.com/](https://www.shadertoy.com/)

