Generic Mesh Refinement On GPU

ACM SIGGRAPH/Eurographics Graphics Hardware - 2005
Download the publication : GenericMeshRefinementOnGPU.pdf [2Mo]   Generic Mesh Refinement on GPU - Graphics Hardware 2005.ppt [2.7Mo]  
Many recent publications have shown that a large variety of computation involved in computer graphics can be moved from the CPU to the GPU, by a clever use of vertex or fragment shaders. Nonetheless there is still one kind of algorithms that is hard to translate from CPU to GPU: mesh refinement techniques. The main reason for this, is that vertex shaders available on current graphics hardware do not allow the generation of additional vertices on a mesh stored in graphics hardware. In this paper, we propose a general solution to generate mesh refinement on GPU. The main idea is to define a generic refinement pattern that will be used to virtually create additional inner vertices for a given polygon. These vertices are then translated according to some procedural displacement map defining the underlying geometry (similarly, the normal vectors may be transformed according to some procedural normal map). For illustration purpose, we use a tesselated triangular pattern, but many other refinement patterns may be employed. To show its flexibility, the technique has been applied on a large variety of refinement techniques: procedural displacement mapping, as well as more complex techniques such as curved PN-triangles or ST-meshes.

This technique is now part of the NVIDIA OpenGL SDK v10, under the name Instanced Tessellation. Here is the direct link.

See our 2008 paper which improves signficantly these technique (making it fully adaptive).

Images and movies

 

See also

The Powerpoint presentation (done few months after the paper itself) gives a slightly different view of the principle, and how it could be integrated to graphics API (refinement shaders).

BibTex references

@InProceedings{BS05,
  author       = "Boubekeur, Tamy and Schlick, Christophe",
  title        = "Generic Mesh Refinement On GPU",
  booktitle    = "ACM SIGGRAPH/Eurographics Graphics Hardware",
  year         = "2005",
  url          = "http://iparla.labri.fr/publications/2005/BS05"
}

Other publications in the database