You have to note however, that Tom Forsyth compared index triangles against non-indexed stips in your quote. 7 years into the future we can use index stips with primitive restart instead of degenerated triangles. He also writes about that:
"Some APIs (not PC DX5-DX9, but some consoles, and possibly future PC APIs) also allow a "restart" index, which means you don't need to use degenerate triangles, and they can make strips better than lists" (http://tomsdxfaq.blogspot.de/).
As each strip needs 2+N indices for N triangles, in a list with primitive restart we need (3*M)+N-1 for N triangles in M strips (the last strip does not need a restart index). A plain list needs 3*N indices.
So when will we save space in the index?
3M +N-1 < 3N
3M +N < 3N
3M < 2N
M < 0.66N
When we have less that 0.66 stips than triangles. As the average stripsize is N/M that means that an average strip must contain 1.5 triangles. Let's check that: A strip of 2 triangles needs 4 indices + 1 restart index == 5 indices while 2 triangles seperated need already 6 indices.
To take advantage of your post transformation cache, your stripsize has to be short, but as we have seen, shortness is not a problem, we will still save memory.
So in theory short strips that make use of the post transformation cache with primitive restart should be the optimal solution (in practice you DCC tools might not be optimized for this setup or the restart itself is a hidden bottleneck, but i'd like to see benchmarks on newer hardware to beleave that).
BTW: Does anyone have numbers of the post transformation cache sizes of current GPUs?




