Overview
Linear algebra is the language of computer graphics, turning abstract vectors and matrices into vivid visual experiences. Every pixel on a screen can be traced back to a series of linear operations—translations, rotations, scalings, and projections—applied to points defined in three‑dimensional space. By representing points as column vectors and transformations as matrices, graphics pipelines achieve both elegance and computational efficiency. For example, a 3‑D point p = \([x, y, z, 1]^T\) is transformed by a 4×4 matrix M to produce a new point p' = M·p, where homogeneous coordinates enable perspective division and concatenation of multiple operations into a single matrix product.Beyond geometric manipulation, linear algebra underpins shading models, texture mapping, and physics simulations. The dot product \(\mathbf{a}\cdot\mathbf{b}=a_xb_x+a_yb_y+a_zb_z\) computes angles between surface normals and light vectors, driving the classic Phong illumination model. Meanwhile, eigenvectors and eigenvalues appear in principal component analysis for compressing animation data and in solving differential equations for fluid dynamics. In short, linear algebra converts the continuous world of geometry into discrete, programmable steps that GPUs execute billions of times per second.
History/Background
The marriage of linear algebra and computer graphics began in the 1960s with the advent of raster displays and the first vector‑based plotters. Ivan Sutherland’s 1963 “Sketchpad” used simple 2‑D transformations, laying groundwork for later 3‑D pipelines. In the 1970s, the introduction of homogeneous coordinates by James J. Craig and the development of the Graphics Language (GL) at Stanford made it possible to represent perspective projections as matrix multiplications, a breakthrough that dramatically simplified rendering pipelines.The 1980s saw the rise of dedicated graphics hardware. The OpenGL API, released in 1992, codified a matrix stack model where developers could push and pop transformation matrices, making hierarchical modeling intuitive. Simultaneously, the Direct3D API (1995) adopted similar linear‑algebraic conventions, cementing the approach across platforms. By the early 2000s, programmable shaders introduced per‑pixel linear algebra operations, allowing developers to write custom vertex and fragment transformations directly on the GPU. Today, modern engines like Unity and Unreal Engine rely on sophisticated linear‑algebra libraries (e.g., Eigen, GLM) to handle everything from skeletal animation to real‑time ray tracing.