600 likes | 642 Views
Learn how to compress texture coordinate data efficiently using linear prediction schemes and alternative approaches for maximum compression. Discover methods for connecting vertices and geometric properties in mesh compression. Explore optimal coding techniques and popular predictions for triangle mesh compression.
E N D
CompressingTexture Coordinates with hSelective LinearPredictions Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill
Take this home: “We predict texture coordinateswith four different rules – taking into account the presence of mapping discontinuities.” “We compress the corresponding corrective vectors with different arithmetic contexts.”
Overview • Background • Compressing Vertex Positions • Linear Prediction Schemes • Texture Coordinate Mappings • Compressing Texture Coordinates • Alternative Approaches • Summary
face1 1 2 3 4 face2 3 4 3 face3 5 2 1 3 facef 725 6291 6293 vertex1 ( x1 y1 z1 ) vertex2 ( x2 y2 z2 ) vertex3 ( x3 y3 z3 ) vertexv ( xv yv zv ) Meshes - Basic Ingredients • connectivity • geometry
face1 1 2 3 4 face2 3 4 5 face3 5 6 1 7 facef 9152 123 271 texcoord1 ( u1 v1 ) texcoord2 ( u2 v2 ) texcoord3 ( u3 v3 ) texcoordt ( ut vt ) Meshes - Optional Properties • mapping • values
Mesh Compression • Fast Rendering • Progressive Transmission • Maximum Compression Geometry Compression[Deering, 95] Maximum Compression
Mesh Compression • Geometry Compression [Deering,95] • Fast Rendering • Progressive Transmission • Maximum Compression • Connectivity • Geometry • Properties Geometry Compression[Deering, 95] Maximum Compression Properties
NormalsColors Material AttributesTexture Coordinates Mesh Compression • Geometry Compression [Deering,95] • Fast Rendering • Progressive Transmission • Maximum Compression • Connectivity • Geometry • Properties • Mapping • Values Geometry Compression[Deering, 95] Maximum Compression Properties Texture Coordinates Values
Connectivity “coding with vertex degrees” - optimal? • Geometry “parallelogram prediction” - most popular! “…treat like vertex positions …” Triangle Mesh Compression • Texture Coordinates ??? Triangle Mesh Compression [Touma & Gotsman, Graphics Interface 98] Yes! But …
Connectivity Compressing Polygon Mesh Connectivity withDegree Duality Prediction[Isenburg, 02] Near-optimal connectivity coding of PolygonalMeshes[Khodakovsky et al, 02] • Geometry Compressing Polygon Mesh Geometry withParallelogram Prediction[Isenburg & Alliez, 02] Generalization of TG coder
Geometry Compression[Deering, 95] Java3D Geometric Compression through topological surgery [Taubin & Rossignac, 98] MPEG-4 Triangle Mesh Compression [Touma & Gotsman, 98] Virtue3D Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction
Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based
expensive numericalcomputations Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based Spectral Compressionof Mesh Geometry [Karni & Gotsman, 00]
modifies mesh priorto compression Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based Progressive GeometryCompression [Khodakovsky et al., 00]
poly-soups; complexgeometric algorithms Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based Geometric Compressionfor interactive transmission [Devillers & Gandoin, 00]
local coord-system +vector-quantization Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based Vertex data compressionfor triangle meshes [Lee & Ko, 00]
Compression of engineeringmodels by repeated feature [Shikhare et al.,01] discovery certain 3D models +expensive matching Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based
dihedral + internal =heavy trigonometry Compressing Vertex Positions • Classic approaches [95 – 98]: • linear prediction • Recent approaches [00 – 02]: • spectral • re-meshing • space-dividing • vector-quantization • feature discovery • angle-based Angle-Analyzer: A triangle-quad mesh codec [Lee, Alliez & Desbrun,02]
integer floating point (1008,68,718) (1.2045,-0.2045,0.7045) Linear Prediction Schemes • quantize positions with b bits • traverse positions • linear prediction from neighbors • store corrective vector
use traversal order implied bythe connectivity coder Linear Prediction Schemes • quantize positions with b bits • traverse positions • linear prediction from neighbors • store corrective vector
prediction apply prediction rule (1004,71,723) Linear Prediction Schemes • quantize positions with b bits • traverse positions • linear prediction from neighbors • store corrective vector
corrector distribution position distribution 3500 70 3000 60 2500 50 2000 40 1500 30 1000 20 500 10 position prediction corrector 0 0 (1008,68,718) (1004,71,723) (4,-3,-5) Linear Prediction Schemes • quantize positions with b bits • traverse positions • linear prediction from neighbors • store corrective vector
P = A P A Deering, 95 Prediction: Delta-Coding processed region unprocessed region
P = αA + βB + γC + δD + εE + … P A B C D E Taubin & Rossignac, 98 Prediction: Spanning Tree processed region unprocessed region
P = A – B + C P A B C Touma & Gotsman, 98 Prediction: Parallelogram Rule processed region unprocessed region
Parallelogram Rule good prediction badprediction badprediction “non-convex” “non-planar”
Not Triangles … Polygons! Face Fixer[Isenburg & Snoeyink,00]
Non-triangular Faces Question: Why would a mesh have a non-triangular face?
Non-triangular Faces Question: Why would a mesh have a non-triangular face? Answer: Because there was no reason to triangulate it! This face was “convex” and “planar”. use this info for better predictions
“within” versus “across” within-predictions avoid creases across-prediction within-prediction within-predictions often find existing parallelograms ( quadrilaterals)
textureimage textured mesh mesh Texture Mapping (1) “the process of applying a texture image to a mesh”
Texture Mapping (2) “putting every 3D polygon of the mesh in correspondence with a2D polygon in the image”
3 3 3 3 5 5 5 5 5 5 Discontinuities in Mapping (1) “some vertices of the mesh havemultiple corresponding locations in texture space”
3 3 11 13 9 11 7 11 9 11 7 5 5 13 Discontinuities in Mapping (2) “vertices may have multiple associated texture coordinates”
0 0 smooth vertex crease vertex corner vertex 0 0 smooth corner crease corner Encoding the Mapping (1) 1. distinguish vertices 1 2. distinguish corners 0 1
1 27 Encoding the Mapping (2) 26 24 23 25
0 0 0 1 39 1 40 0 Encoding the Mapping (3) 37 38
Why Discontinuities ? • cuts required to flatten mesh • no boundary • non-zero genus • piece-wise texture mapping • author / artist decision • easier for automated techniques • additional cuts to meet objectives • angle/area preserving parameterization • minimizing texture stretch
Selective Linear Prediction • analyze neighborhood • use most promising predictor “within” (for polygon meshes only) “across” “nearby” “center” • avoid unreasonable predictions • compress with different contexts
processed vertex ring 1 17 within-prediction T16– T11 + T13 Example Scenarios (1) 13 16 11
1 0 30 0 0 1 29 smooth edge across-prediction within-prediction T22– T25 + T26 T20– T19 + T21 Example Scenarios (2) 20 19 21 22 26 25
processed vertex ring 1 57 crease edge nearby-prediction T50 Example Scenarios (3) 50 53 54 52 47 44