From: Jonathan Blow [jon@bolt-action.com] Sent: Thursday, March 16, 2000 7:24 AM To: Discoe, Ben Subject: Re: GDC 2000 paper and slides now available Split-only ROAM would definitely be faster than what I was doing (the full implementation of ROAM). However, it is not an option for me because I have a *lot* of other data that has to persist in the tree from frame to frame (like texture data) and re-generating this stuff every frame would cost more than the split-only ROAM saves. Also, split-only style algorithms are not amenable to the optimizations I plan to do in the future regarding vertex buffers. > True, but since we have a binary tree, we don't have the flexibility of > traversing the tree in any way other than to recurse down into the branches > which have the variance>threshold. We must built a legal, complete binary > tree or the tesselation won't be seamless. Okay, let me try explaining this a different way. For a ROAM-style algorithm you end up creating a wedge of a given thickness that surrounds an area of terrain. That thickness is generally chosen so that the wedge bounds the entire terrain (i.e. all the children of the top-level polygon of the wedge). What I am saying is that, because of the effects of perspective, that wedge is almost always too thick. Yes, there is a pre-defined way in which you have to navigate the tree, but I am saying that ROAM often subdivides too early. It will subdivide some nodes for which the visible error is not that high yet, when it should be concentrating on other nodes where the visible error is really getting to be pretty high. The reason the wedge is too thick is that, because of the way the project-wedge-to-screen test is formulated, the maximal and minimal vertices in the wedge are assumed to be at the place in the wedge that is nearest the viewpoint. This is almost never the case. By using the isosurfaces you can get a tighter fit around the node and its children so that you only split it when you really need to. Basically in the ROAM paper it is assumed that this bounding wedge is the "right thing" and they don't talk much about the possible inefficiencies. But these inefficiencies are actually kind of big. That's my theory anyway. I will have numbers for comparison soon. > Your GDC slides show 1/8/30 fps for ROAM, L-K, and ROAM w/isosurfaces. I > would be curious to see where a split-only ROAM would fit into that scale, > especially for a significantly moving viewpoint. Yeah, like I said, it would definitely be faster, *if* I decided I didn't want to texture the terrain at high density. But, I want to do that. So. A lot of people were confused about the very low frame rate for ROAM; that was taken with a very high tessellation density, with the viewpoint moving pretty fast. So since the split-only ROAM thing would not have the same frame coherence disadvantages it would surely run more stably. -J.