Sorry for the slow reply guys, I wasn't around yesterday.
psquare wrote:
I do understand that the transvoxel algorithm is aimed at smooth terrains geared at iso-surface extraction. However, looking at Eric’s thesis, specifically the ‘surface shifting’ part (pages 43-44), it occurred to me that the trans-voxel algorithm or a variant of it thereof could be used in conjunction with cubic-extractor as well to minimize this error. This seems to not be the case based on your post. Even if such a method existed, probably a different LOD method would be needed for some of the possible structures that the user could build (bridges, cave type things, etc).
Possibly, I think the same principles could be applied to Minecraft style terrain but I just don't think it would look very nice. Even if you fix the holes it's still going to look strange when it transitions from a course mesh to a finer one.
psquare wrote:
Having said that, I think gross errors can be tucked away using fog, etc and some other tricks, along the lines of what beyzend mentions. So a ‘reasonably’ accurate LOD might do.
During the transition period you could render both high and low res meshes (possibly stitched to be a single batch). That will hide any holes. Probably cross fade between them as well. Still not sure how good it will look

psquare wrote:
Interestingly though, my basic testing though shows that just the sheer number of batches is killing the fps, especially at large draw distances. I would expect just stitching adjacent pages’ meshes (say, 2x2) and drawing them instead of even a proper LOD might give performance improvements.
Yep, this doesn't suprise me. So rather than LOD, you're really looking for a way to reduce the batch count. Now, I haven't had a need for anything like this yet but I can loosely describe what I was planning if/when the need arises (but not in PolyVox, it would be at a higher level).
I expect that I will perform the kind of stitching you describe, so that 4 adjacent regions will be stitched together into a single larger mesh. However, I will also keep the seperate meshes in memomy as well (obiously you should be clever about the way you duplicate the data here but I haven't looked at the details). I general I would aim to draw the single large mesh most of the time.
When a voxel get modified, I would switch the single large mesh for the four smaller ones and then update only the smaller one which is affected by the change. Then, in the backgound, I would redo the stiching to make the single large mesh. The result is that batch count would reduce temporaily when editing was being performed, but this would only happen in small parts of the world at a time.
Naterually I would then take this a step further, and merge 4 large meshes into another even larger one. Essentially building a hierarchy here, where potenially the top level could be one mesh representing the whole world. Of course this depends on how much vertex/index can be shared between the different levels.
As fo culling, well you have some flexibility now. If the whole volume is visible use the top level (single mesh), as you zoom in you might just use parts of the hierarchy. Really some experimentation is needed here. As I said, I haven't implemented it so the idea may not work, but it's where I would start.
psquare wrote:
Btw, here’s a slightly longer ‘tech’ demo:
http://www.youtube.com/watch?v=8I93r4CjkDAI am not very good at building worlds

, so I refer you to diamondf’s original teaser trailer video that he posted above.
Thanks, but I already downloaded the demo
