Texture Tiling on Arbitrary Topological Surfaces

Chi-Wing Fu and Man-Kang Leung

in Proceedings of Eurographics Symposium on Rendering 2005 (EGSR 2005), Konstanz, Germany, June 2005, pp. 99-104.


Synthesizing textures on arbitrary surfaces is a time consuming process. We have to analyze the surface geometry and map texture values onto the input surface adaptively. Texture tiling provides an alternative approach by decoupling the texture synthesis process into two steps: surface mapping and tile placement. This paper reformulates the texture tiling mechanism of Wang tiles for arbitrary topological surfaces. Once we created a low distortion conformal map from the input surface to a quad-based geometry, we can generate a tiling graph over the geometric dual graph of the quad-based geometry, and produce a proper tile orientation on all quad faces so that we can layout textured tiles on quads and map texture back to the input surface accordingly. Since tile placement is independent of the input surface geometry, we can perform the tiling process in no time and change texture pattern on the input surface simply by switching a tile set. No additional computation is needed. As a demonstration, we experimented texture tiling of Wang tiles on spheres, polycubes, as well as polycube-mapped models.

Overview of our approach

1: Surface Model
2: Surface Map
3: Tile assignment
4: Texture Tiled Model


The following movies demonstrate our algorithm with three different data sets - bunny, holes and laurana. All the movies are in .avi format.

Paper Download

Click the following links to download :
paper in pdf format (7.9MB)

If you have any problem with the paper or you want anything to discuss, you can email me


We would like to thank Marco Tarini of the Visual Computing Lab, ISTI/CNR, for sharing the polycube-mapped models and the associated fragment program.


    author = {Chi-Wing Fu and Man-Kang Leung},
    title = {Texture Tiling on Arbitrary Topological Surfaces},
    booktitle = {Eurographics Symposium on Rendering},
    month = {June},
    year = {2005},
    pages = {99--104},