# Math classes relevant for graphics programming?

## Recommended Posts

sanjaygir    102
hi Everyone,

What math courses do you think will be important if you want to specialize in computer graphics. I assume, for one, graph theory will be important. Thanks for suggestions!

##### Share on other sites
alvaro    21246
I challenge that assumption. What part of CG do you think would benefit from graph theory?

The most important math courses for computer graphics are linear algebra and geometry (affine, euclidean and projective, although I think many universities don't teach projective geometry these days).

##### Share on other sites
mrjones    612
Graph theory is important for almost any software development field. In computer graphics optimization structures are based on graph theory. Although whether you'll ever need to implement these depends on how deep you want to go. Also meshes are rooted in graph theory and describeable as such. Even fractals can be thought of in terms of graph theory. So I'd say there are benefits, but of course it depends on whether one wants to go so low-level with graphics.

For graphics specifically I completely agree about algebra and geometry. Maybe functional analyses as well. It is also not so much graphics specific, but it's just generally useful.

##### Share on other sites
Promit    13246
Short answer: pretty much all of them.

Long answer: Linear algebra and (computational) geometry are pretty much crucial, in that you basically cannot function without them. Calculus/differential equations is fairly important, especially as modern lighting equations are derived from multi-dimensional surface integrals. Digital signal processing is also important for a lot of the basics. Topology is a big deal for a lot of things involving geometry, especially if you want to be working with parametric surfaces (which have become hardware accelerated recently). Probability and statistics drive a lot of the stochastic graphics techniques. Information theory (eg entropy) comes in big time if you want to look at compression, numerical stability, etc. Mathematical optimization is very useful for spatial partitioning algorithms.

The list goes on. It's difficult to learn any math that [i]isn't[/i] relevant.

##### Share on other sites
alvaro    21246
Is someone going to mention category theory again?

Don't get overwhelmed by Promit's list. Although he does have a point, you can get by with just linear algebra and geometry, and perhaps a bit of calculus so you don't run scared when you see an integral in some paper about lighting. I didn't mention computational geometry because I don't think of it as math, although I can see how other people would. And yes, it is important for computer graphics as well.

I am curious as to what part of topology might be useful for CG. I took three topology classes in college (point topology, algebraic topology and differential topology) and I can't think of any of it that might help with CG (actually, I can't think of anything I learned in differential topology, but has to do with bad teachers and not with this thread ).

##### Share on other sites
taby    1265
Surely meshes have something to do with computer graphics. As for category theory... ;)

Seriously... to get a good idea of what's going on with modern graphics, check out the SIGGRAPH proceedings, or the abstracts in journals like Computers & Graphics or IEEE Transactions on Visualization and Computer Graphics. Spot the buzzwords, do some googling, see what suits *your* fancy.

Like they're saying... the possibilities are huge. Do you like biology? Then work on software to procedurally generate plants. Do you like physics? Do you like chemistry? Do you like art?

You will most likely need linear algebra, no matter what type of graphics you get into.

##### Share on other sites
sanjaygir    102
Thanks everyone for the valuable input!

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account