Source: Elite Bastards
___________
Firstly, it should be noted that current hardware already contains interpolation units (attribute interpolation units, to be precise) in each pixel shader unit - This functional unit sits before the ALUs (Arithmetic Logic Units) in the rendering pipeline, and is used to calculate attribute values on a per-pixel basis. These values can include color, depth, texture co-ordinates and the like. The values in question are calculated using the attributes of a vertex (in other words, one side of a triangle created by the vertex shader) via interpolation, and use known data from particular pixels to calculate the aforementioned attributes for the remainder of the pixels required (For those of you not of a mathematical bent, interpolation is basically a method of creating new data from a set of already known data).