[Algorithms] VIPM Strips
Brought to you by:
vexxed72
|
From: Charles B. <cb...@cb...> - 2000-08-17 06:14:15
|
I just read the paper "Skip Strips" by El-Sana et.al.
which seems to be a much-overlooked work on VDPM. I
found it as part of the course notes in the simplification
course on the Siggraph 2k CD.
It's an interesting read, though quite archaic.
They make some clever data structures to speed up the
inherently slow algorithm of VDPM.
Anyway, it gave me ideas about how to strip VIPM. In
fact, it's so easy, it's ridiculous. Generate your
vertices in collapse order. Create an optimal Indexed
Triangle Strip over those vertices, using duplicated
vertex indices to make it one single strip over the
entire mesh. When you do a collapse, do it just like
normal VIPM, except that rather than changing indices
in a list of indexed triangles, you're changing them
in a list of indexed strips; it's just the same operation:
IndexList[ vsplit->changeIndex ] = newVertIndex;
You also can't reduce the number of triangles by two,
because the two collapsed triangles may not be at the
end of the list, and their verts are needed to continue
the strip on either side.
After you collapse some number of verts, you switch down
to a new strip which is optimized on that number of
verts. This takes a cue from Tom Forsyth, and something
like power-of-2 sets of triangle strips are recommended.
For example, a mesh with 5000 triangles at full LOD might
have strip lists for {5000,3000,2000,1000,500,250,125}
triangles.
Now note that the memory usage of this scheme is almost
identical to that of normal VIPM (!!). If you use power-
of-2 triangle strip list changes, then you only duplicate
the number of indices stored, and by using strips instead
of lists, you roughly half the storage needed.
The disadvantage of this scheme is obvious : your triangle
count stays the same until you swap down to a shorter strip.
In that sence, it's a lot like discrete LOD. The difference
is that you're still doing collapses one by one, and reducing the
vertex count one by one, and virtually eliminating popping.
Finally, what's the advantage? I'm not sure. This method
is surely faster than conventional VIPM. On the other hand,
I'm not sure it compares terribly well to Tom's idea of
stripped prefixes and tri-list suffixes.
-------------------------------------------------------
Charles Bloom cb...@cb... http://www.cbloom.com
|