Volume Encoded UV-Maps - project page



This is the project page for Volume Encoded UV-maps (VEUV), a novel way to represent UV-maps for 3D surfaces for real time texture mapping.

What this is about:

UV-maps are required in order to apply a 2D texture over a 3D model. Traditionally, UV-maps are defined by an assignment of uv positions to mesh vertices.

Volume-encoded UV-maps are a new, alternative representation in which each point on the surface is mapped to a uv position which is solely a function of its 3D position.

This function is tailored for a target surface and is efficiently evaluated during fragment processing, with a single indirecton to a small volumetric texture and a couple ALU instructions.

The maps (i.e. the function as restricted to the surface) exhibit a parametrization quality, in terms of angle and area preservation, cuts, customizability, etc, which are similar to standard UV-maps used in the industry. At the same time, they are almost invariant to small orthogonal displacements of the surface.

The solution is not universal, but it is applicable to a wide range of shapes, and unlocks several key advantages: it makes the UV-map representation independent from the meshing of the surface; it removes the need to duplicate vertices in the mesh to encode cuts in the map; the same texture, and even the same UV-map, can be shared by multiple geometrically similar models (e.g. all levels of a LoD pyramid); UV-maps can be applied to representations other than polygonal meshes, like point clouds or set of registered range-maps or even ; UV-map construction is way more robust to mesh inconsistency.

VEUV is cheap on memory resources, usually (but not always) even cheaper than the traditional per vertex UV assignment.

From many aspects, VEUV are equivalent to traditional UV-maps. 2D textures can be authored for a VEUV-mapped model in the same way they can be authored for traditional per-vertex UV-mapped model. They can be accessed with bilinear interpolation, MIP-mapping, etc. Tangent-space normal maps: no problem.

We also provide an example of an automatic algorithm to construct a VEUV, given a target surface (but, from this point of view, VEUV cannot compete with the huge array of sophisticated interactive tools available for traditional per vertex UV-maps construction--not yet, at least).


the paper

The scientific article

which introduces Volume-Encoded UV-map.
  • Preprint
    detailing the new representation, the way it is accessed, its advantages (and limitations), an autoamtic construction method, and discussing how VEUVs can impact asset production-and-usage pipelines (in, e.g., games).
  • Supplemental Material
    detailing how to pre-compute, store and access tangent and bi-tangent directions with VEUVs, as needed for normal mapping.
  • Bibtex
    bibliographic reference, to cite it.

Demo + data

a self-contained example application which displays 3D models + 2D textures mapped with a VEUV.
The zip includes:
  • Shader programs, in GLSL
    (they are really short and simple!)
  • Executables, for Win and Mac (no installation)
  • Source code
  • Several datasets, including...
    • meshes
      (with VEUV, they need no UV associated to vertices as attributes, nor vertex-dupications at seams!)
    • LoDs pyramids
      (with VEUV, the levels are constructed independently from the mapping, and all share the same 2D texture and even the same UV-map!)
    • range-scan collections
      (with VEUV, they can be parameterized and UV-mapped consistently, as can point clouds, etc!)
    • 2D textures
      (authored by various texture artists just as notmal, using standard methods and tools!)
    • and naturally, the Volume-Encoded UV-maps taylored for each dataset

Questions, comments?

Contact me!