600 likes | 635 Views
Compressing Texture Coordinates. with h Selective Linear Predictions. Martin Isenburg. Jack Snoeyink. University of North Carolina at Chapel Hill. Take this home:.
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