Wednesday, April 21, 2010

Virtual Texturing Thesis from Andreas Neu

So last Friday I received an email from Andreas Neu who wrote his bachelor thesis about virtual texturing.
He was advised at the RWTH Aachen university by my good friend Volker Schoenefeld, and he told him I would probably be interested in his thesis, which I obviously was!
It cannot be found online (yet?), so I can't provide a link unfortunately.
Hopefully when or if it'll be placed online, I can provide a link to it here.

In his thesis he investigated which page priority heuristic would be better at choosing which page to load next, by measuring which would have the most positive visual impact.

He tried a couple of variations of what he calls "PixelSum", where he counts the number of visible pixels of a specific page (a technique I mentioned before on the blog), which performed surprisingly well.
He also provided some tweaks on "PixelSum" which improved it's performance when moving the camera, but which didn't have that much impact while rotating the camera, which is actually the worst case.

Another thing he tried was a "look ahead camera", which basically doubled the rotation and translations of the current frame compared to the previous frame, and used that new transformation for the readback buffer, which he calls a "needbuffer" in his thesis
This seemed to provide better or same performance in the worst cases, but sometimes slightly worse in the best cases.

The best idea, however, is what he calls "NoiseValues".
Here he compared his pages to it's lower mipmaps, using a rooted MSE on their luminance, and using that value as a weight to determine which pages would have the most visual difference between miplevels.
That same weight can then be used to determine which pages would have the biggest visual impact on the scene when loaded.

Personally I'd love to see more stuff like this, and I think there are a lot of interesting possibilities that continue on some of the ideas put forth by Andreas!

P.S. Still haven't found any time to continue on the whole CSG thing, but don't worry, I'll continue on it when I have some time! (Too much work, too many clients, where's the recession when you need it!)