Skip to main content

New Page

linear algebra - you’ll need to be 100% comfortable with the physical meaning of cross-product, dot-product, vector addition and matrix multiplication, matrix inversion and transposition. A knowledge of quaternions will be handy later - but you won’t need it to start with.

From calculus - you’ll need nothing whatever. Zip, zero, nada!

I’ve been a senior graphics engineer for decades and I’ve never once needed any calculus for any purpose whatever!

In 3D graphics, in particular (but also, to a much lesser degree in 2D graphics), everything is “a vector”. Positions, velocities, accelerations, texture coordinates, colors, surface normals…EVERYTHING is a vector!

Transforming those vectors using matrices is HUGE - you’ll need to be able to rotate an object by multiplying it’s positions by a matrix - you’ll need to be able to invert (or perhaps merely transpose) a matrix to get from the matrix that describes you camera to the matrix that positions each object relative to a virtual camera at the origin. You’ll need to figure out how to make a perspective projection matrix from the field of view of the camera. You’ll need to understand how to combine scale, rotate, translate and perspective operations into a single matrix.

Colors are also vectors - and lighting operations are representable by matrices - so are material properties such as shininess, reflectivity, emissivity.

You’ll need to be able to mentally flip between “coordinate systems” and to be able to hold in your head the concepts of “texture space”, “color space” and “3D space” and how one maps onto the other. You’ll need to understand “Homogeneous coordinates” - coordinates with an extra dimension that makes handling perspective and screen clipping more easy and to operate in “Clip space”.

You’ll live and breathe matrices and vectors every moment of your working day!

Fortunately, most graphics courses are going to spend a lot of time doing remedial work on your linear algebra skills…that’s because linear algebra (in the abstract) is a difficult and dry subject that’s tough to get your head around when it’s such an abstract set of concepts. Once you’re grounded in an actual application (3D computer graphics in this case) - you’ll suddenly wish you’d paid more attention during linear-algebra 101…and then it’s more of an uphill battle.