Original Author: Simon Yeung
Introduction
Continue with the affine transformation (i.e. after transformation, the midpoint of the line segment is no longer the midpoint), this will result in some distortion and this artifact is even more noticeable when the triangle is large:


Condition for linear interpolation
When interpolating the attributes in a linear way, we are saying that given a set of vertices, vi (where i is any integer>=0) with a set of attributes ai (such as texture coordinates), we have a function mapping a vertex to the corresponding attributes, i.e.
Say, to interpolate a vertex inside a triangle in a linear way, the function f need to have the following properties:
which means that we can calculate the interpolated attributes using the same weight taffine function with the following form:
Depth interpolation
When a vertex is projected from view space to normalized device coordinates(NDC), we will have the following relation (ratio of the triangles) between the view space and NDC space: