This still doesn't solve the problem of intersecting triangles (in step 2). It'd likely still need an array at each pixel keeping track of all the colors we've seen there. However, I'm wondering if this kind of scenario is common in real world scenes, since you normally wouldn't expect physical objects to be cutting into each other this way.
I think that, because triangles compose just about everything, there should be situations like this that appear. Maybe a weird example of this is that one animated ghost (semi-transparent), passes through another ghost (also semi-transparent), so then all the triangles that make them look the way they do would intersect in all kinds of ways that would make us have to render them in back to front order. It's hardly a "real world scene" but you can imagine some semi-transparent object crossing into another semi-transparent object. So I guess in the end I'm also curious on how we also have to solve the intersecting triangle problem still
@zyx Sure, you can try to make special assumptions about your scene geometry, but at the end of the day you really want to be able to handle whatever geometry someone throws at you. Plus, you can run into this problem even when there are no self-intersections: consider three triangles A, B, C where part of A is in front of B, part of B is in front of C, and part of C is in front of A. No way to sort "back to front."