1. Linear Approximations in 2D
Let’s say you’re making a 2D game on very old hardware. You would like to draw this shape:

The attentive reader will notice this is a circle. However, circles are rather computationally expensive to draw. Maybe you can find another way?
Lines. Lines are cheap. Let’s try to approximate our circle using line segments.

Well, it’s an approximation all right. But it will have to do: your hardware can’t handle any better. However, when you’re able to get your hands on something more powerful, you can easily improve your "circle":
Vertex count | Result |
---|---|
8 |
![]() |
16 |
![]() |
32 |
![]() |
64 |
![]() |
What’s nice about this approximation trick is that it is applicable on any shape, however complex it may be. You can make an arbitrarily close approximation by simply throwing more line segments at it.
2. Linear Approximations in 3D
In 3D, line segments will not do. We need something better. Instead of line segments, we use "plane segments". Or triangles, if you will.
Here they are in action:
We call such a collection of triangles a mesh. Any shape can be built out of triangles, as long as you have enough of them. For example, our friend the happy Buddha above is built out of a 1,087,716 triangles.