Mesh Colors

A lizard model textured using mesh colors
A lizard model textured using mesh colors. Mesh colors in this examples are copied from a 2D texture. (Model by Murat Afsar)

Abstract

The coloring of three dimensional models using two or three dimensional texture mapping has well known intrinsic problems, such as mapping discontinuities and limitations to model editing after coloring. Workarounds for these problems often require adopting very complex approaches. Here we propose a new technique, called mesh colors, for associating color data directly with a polygonal mesh. The approach eliminates all problems deriving from using a map from texture space to model space. Mesh colors is an extension of vertex colors where, in addition to keeping color values on each vertex, color values are also kept on edges and faces. Like texture mapping, the approach allows higher texture resolution than model resolution, but at the same time it guarantees one-to-one correspondence between the model surface and the color data, and eliminates discontinuities. We show that mesh colors integrate well with the current graphics pipeline and can be used to generate very high quality textures. Mesh colors can be trivially extended to be used with NURBS and most subdivision surfaces, as well as arbitrary polygonal meshes.

Key Features

  • No mapping is necessary, all objects are inherently paintable without the need for defining texture coordinates
  • Without mapping, there are no mapping discontinuities
  • An intrinsic one-to-one correspondence is maintained between the 3D surface and the color data (no duplicated color data)
  • MIP-mapping for level-of-detail filtering is supported
  • While painting colors, texture resolution can be increased/decreased locally with no global effects
  • Models can be edited, after coloring, without resampling
  • Mesh colors can be defined on any arbitrary polygonal model
  • They do not require any precomputation
  • The procedure is compatible with the current real-time graphics pipeline.

Since mesh colors can be implemented to satisfy all of the above criteria with high performance and low memory use, the approach is ideal for many high-end applications like 3D texture painting, and for storing precomputed data, such as ambient occlusion, light maps, and global illumination, on a 3D surface. Note that non of the previous texturing methods can satisfy all these features above.

Images

Color positions on vertices (blue), edges (green), and face (red) for different resolutions of Mesh Colors on a triangle, starting with the vertex colors on the left.

Color positions on vertices (blue), edges (green), and face (red) for different resolutions of Mesh Colors on a quad, starting with the vertex colors on the left.

Alien model textured using mesh colors
An alien model textured using mesh colors. The model does not have any texture coordinates defined, and mesh colors are painted using our 3D mesh color painting tool. (Modeled and painted by Murat Afsar) Click on the image to enlarge.

A lizard model textured using mesh colors
A lizard model comparing mesh colors to standard 2D textures. Mesh colors of this model are converted from the 2D texture. In this example mesh colors achieve the same quality using 20% less memory than the 2D texture. Modeled by Murat Afsar.

Publications

Cem Yuksel, Sylvain Lefebvre, Marco TariniRethinking Texture MappingComputer Graphics Forum (Proceedings of Eurographics 2019), 38, 2, 2019
Cem YukselMesh Color TexturesHigh-Performance Graphics (HPG 2017)
Cem YukselHardware Accelerated Mesh ColorsProceedings of the 20th ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games Research Posters, 2016Best Poster Award
Cem Yuksel, John Keyser, Donald H. HouseMesh colorsACM Transactions on Graphics, 29, 2, 2010
Cem Yuksel, John Keyser, Donald H. HouseMesh ColorsTechnical Report, Department of Computer Science, Texas A&M University, 2008