A head model textured using mesh colors. Mesh colors are painted using our 3D mesh color painting tool. (Modeled and painted by Murat Afsar)
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.
- 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.
This is a close up image of the head model above. On the left we see the painted mesh polygons and the right image shows the final model (subdivided after mesh color painting) with anisotropic filtering.
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.
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 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) Click on the image to enlarge.