For the over() function here, we are assuming c2.a = 1 (background is opague), right?
More info on alpha blending: https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending
Seems like the big limitation here is that translucent triangles need to be parallel to the camera plane, right? Could we solve this by breaking down the triangles into smaller fragments that could have different positions in the back-to-front order? This seems like a pretty major limitation for realism in gaming and AR... what do modern games and GPU's do?