Lets examine the mapping of triangles more closely.
I think a map can be described as an unordered set of ordered pairs of triangles: map = {<<p11, p12, p13>,
<q11, q12, q13>>, ...}.
Each pij and qij is a point given by its two coördinates.
The p's are located in a 2D raster of pixel values—the p-raster, usually called the texture space.
The q's are from a q-raster.
To perform the map:
For each <<pi1, pi2, pi3>,
<qi1, qi2, qi3>> in map,
For each pixel in the triangle <qi1, qi2, qi3>
compute a new pixel value from the corresponding location in <pi1, pi2, pi3>.
This is done by interpolating or averaging the relevant pixels in the p-raster.
If there are alpha values in the p-raster they are included.
That new pixel value is then applied to the p-raster, perhaps with an extra alpha value specified for this map operation.
When there are adjacent triangles in the q-raster it is important to at least insure that pixels near the shared edge are in one but not both triangles. For some purposes it may be necessary to count such pixels as partly in one and partly in the other. These two applications to the q-raster may be separated in time but this can be handled by computing alpha's and contributing the fractional pixels on the two successive visits. These two operations do not commute and this may be a problem.