Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What math do I need to learn for graphics programming?
3 points by DarkTree on Mar 1, 2017 | hide | past | favorite | 2 comments
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.


[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

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.

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/

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact