Thatcher Ulrich has created a perspective-correct texturing demo using triangle texture mapping. To quote Thatcher: “Old software-rendering tricks ride again!”
Thatcher explains how it works:
The subdivision method is fairly simple; the idea is that each triangle edge is tested to see how badly it needs perspective correction. Each edge is tested independently. Each edge that needs subdivision is bisected. This gives 8 cases for any triangle (each edge can either be bisected, or not), generating between 1 and 4 output triangles. Then the process is applied recursively. Because it is edge centric, adjacent triangles make the same decisions for shared edges, and there are no t-junctions.