270 likes | 317 Views
Warped textures for UV mapping encoding. Olga Sorkine and Daniel Cohen-Or Tel-Aviv University. Texture mapping encoding. 3D mesh : geometry + topology Textures Texture mapping function: each vertex has associated (u,v) coordinates in the texture image. Texture mapping encoding.
E N D
Warped textures for UV mapping encoding Olga Sorkine and Daniel Cohen-Or Tel-Aviv University
Texture mapping encoding • 3D mesh : geometry + topology • Textures • Texture mapping function: each vertex has associated (u,v) coordinates in the texture image.
Texture mapping encoding • 3D mesh : geometry + topology • Textures • Texture mapping function: each vertex has associated (u,v) coordinates in the texture image.
Texture mapping encoding • 3D mesh : geometry + topology • Textures • Texture mapping function: each vertex has associated (u,v) coordinates in the texture image.
Texture mapping encoding • 3D mesh : geometry + topology • Textures • Texture mapping function: each vertex has associated (u,v) coordinates in the texture image. u v
The problem: Enumerating the (u,v) coordinates is an explicit mapping (space-inefficient). We look for implicit representation of the texture mapping function.
How to compress UV-coordinates without compressing them? The idea: warp the original textures in order to embed the texture mapping inside.
Encoding - example Flattening Flattened mesh Original mesh Apply texture to flattened triangles Original texture Textured mesh (rendered) Warped texture
Decoding - example Original mesh Flattening Flattened mesh Warped texture Fitting texture to each triangle Restored textured mesh (rendered)
Embedding requirements • Distortion of each triangle is minimal • Flat meshes (patches) produced can be fitted into rectangular images with minimal void area • Small number of patches - to minimize seams between textures
Non-distorting embedding Unfolding with zero distortion: Embed each triangle separately or peel triangle strips from the mesh.
Unfolding with zero distortion • Artifacts in mip-mapping (due to fragmentation) • Large “void” areas
Small distortion tolerance Allow to stretch the triangles by some bounded factor. Enables to create large continuous flat patches.
Embedding algorithm • Take a seed triangle, flatten it as is. • Proceed to flatten neighbours in BFS order • If a triangle is distorted above threshold, discard it from current patch • When no triangles can be flattened in the current patch, start a new one.
Growing a patch Seed triangle
Embedding a vertex z In 2D - unfold each triangle independently In 3D x Combine the three positions so that the distortion is minimal
Distortion metric e1 e3 e'1 e’3 e2 e’2 Li = max{ei , e’i} li = min{ei , e’i} i = 1, 2, 3 distortion = max{L1 /l1 , L2 /l2 , L3 /l3} distortion1; distortion = 1 the triangles are isometric
Some results The twisted loop model Two of the five patches produced
Cone model rendered The two patches created The warped textures
Advantages of implicit UV-mapping representation • Only the mapped parts of texture images are used in the warped atlas • With smart packing, the size of new warped textures isn’t significantly larger than the original images, and no (u,v) data is needed total size of texture mapping representation is smaller.
Warped textures for UV mapping encoding Olga Sorkine and Daniel Cohen-Or Tel-Aviv University