
I also apologize for the long post :)
While this is interesting work, I fail to see any compelling difference between this algorithm and ROAM. You have changed the shape of the base triangle, and have chosen split, merge, and Tjunction elimination appropriate to this new base triangle, just as you mention in your description. This may or may not be conducive to triangle strips than ROAM, but triangle strips are frequently less efficient than a triangle soup that you give to the card in draw buffers anyway, due to the added cost of extra communication with the card. You also mention this fact, and that you use vertex indices instead of strips.
Now, you claim that the primary advantage of your algorithm compared to ROAM is that diamonds do not need a priority queue. Well, actually, priority queues only appear in the ROAM paper in the optimization section as a method to avoid recalculating the weights for all potentially merged or split vertices every frame. If you were going to update all splittable and all mergeable triangles perframe in ROAM, you could use the exact same fourqueue approach as diamonds use. ROAM listed this as an optimization under the assumption that the cost of updating the priority queues is going to be less than the cost of reevaluating every vertex that could potentially change; if this isn't true, just don't do the priority queue.
In summary... the only real distinction I see between this algorithm and ROAM is the shape of the basis triangle, and the consequential adjustments to the merge and split operations. This choice may or may not have advantages; I haven't looked at it enough to reach such a conclusion. It may adapt more quickly, or it may use fewer triangles, or it may be more efficient to render; I don't know. The only thing that appeared obvious to me aeshtetically from the demo is that it tends to make sliver triangles in a lot of places, where ROAM guarantees all triangles are right triangles. This may be a nonissue, or it may just mean a different Tjunction removal algorithm is needed.
