GSoC/GCI Archive
Google Summer of Code 2013 OGRE (Object-Oriented Graphics Rendering Engine)

Improve Progressive Mesh algorithm

by Peter Szücs for OGRE (Object-Oriented Graphics Rendering Engine)

It's waste of performance to have high quality models in faraway distance. Games can gain lot of performance by reducing faraway models and Ogre provides two methods for this: Manually created mesh LOD (for example in Blender) and generated mesh LOD. Blender supports nice reduction algorithms, why don't we just use that? First manually created mesh LOD creates a separated mesh for each LOD level, which means vertex data is duplicated for each LOD, which makes a big memory overhead. The memory overhead is needed, because Blender moves the vertices from original position to a calculated new position, so we need a separated vertex buffer too. Why don't we use Hoppe's algorithm or other more advanced techniques for reduction? These techniques have got the same problem as Blender. Also it would add limitations: For example if the mesh has bone weights or custom vertex data passed to a vertex shader than you can’t just insert a vertex. So the goal of my GSoC proposal is to improve current progressive mesh algorithm.