compressing texture coordinates martin isenburgjack snoeyink university of north carolina at chapel...

60
Compressing Texture Coordinates Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill with h Selective Linear Predictions

Post on 19-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

CompressingTexture Coordinates

Martin Isenburg Jack SnoeyinkUniversity of North Carolina at Chapel Hill

with h

Selective LinearPredictions

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

Background

Meshes - Basic Ingredients

• connectivity

• geometry

face1 1 2 3 4face2 3 4 3face3 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 - Optional Properties

• mapping

• values

face1 1 2 3 4face2 3 4 5face3 5 6 1 7

facef 9152 123 271

texcoord1 ( u1 v1 )texcoord2 ( u2 v2 )texcoord3 ( u3 v3 )

texcoordt ( ut vt )

• – Fast Rendering

– Progressive Transmission

– Maximum Compression

• Geometry Compression [Deering, 95]

Mesh Compression

Maximum Compression

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression• Connectivity

• Geometry

• Properties

Geometry Compression [Deering, 95]

Mesh Compression

Properties

Maximum Compression

• Geometry Compression [Deering, 95]– Fast Rendering

– Progressive Transmission

– Maximum Compression• Connectivity

• Geometry

• Properties– Mapping– Values

Geometry Compression [Deering, 95]

Mesh Compression

Properties

Values

Maximum Compression

NormalsColorsMaterial AttributesTexture CoordinatesTexture Coordinates

Triangle Mesh Compression

• Texture Coordinates ???

Triangle Mesh Compression[Touma & Gotsman, Graphics Interface 98]

“… treat like vertex positions …”

Yes! But …

“parallelogram prediction” - most popular!

• Geometry

“coding with vertex degrees” - optimal?

• Connectivity

Generalization of TG coder

• ConnectivityCompressing Polygon Mesh Connectivity with

Degree Duality Prediction [Isenburg, 02]

Near-optimal connectivity coding of Polygonal

Meshes [Khodakovsky et al, 02]

Compressing Polygon Mesh Geometry with

Parallelogram Prediction [Isenburg & Alliez, 02]

• Geometry

CompressingVertex Positions

Compressing Vertex Positions

• Classic approaches [95 – 98]:– linear prediction

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

• Recent approaches [00 – 02]:– spectral

– re-meshing

– space-dividing

– vector-quantization

– feature discovery

– angle-based

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]

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

Progressive GeometryCompression

[Khodakovsky et al., 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

Geometric Compressionfor interactive transmission

[Devillers & Gandoin, 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

Vertex data compressionfor triangle meshes

[Lee & Ko, 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

certain 3D models +expensive matching

Compression of engineeringmodels by repeated feature

[Shikhare et al., 01]discovery

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]

dihedral + internal =heavy trigonometry

Linear Prediction Schemes

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

(1.2045, -0.2045, 0.7045) (1008, 68, 718)floating point integer

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

use traversal order implied bythe connectivity coder

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector

(1004, 71, 723)apply prediction rule prediction

Linear Prediction Schemes

1. quantize positions with b bits

2. traverse positions

3. linear prediction from neighbors

4. store corrective vector0

10

20

30

40

50

60

70

position distribution

0

500

1000

1500

2000

2500

3000

3500

corrector distribution

(1004, 71, 723)(1008, 68, 718)position

(4, -3, -5)correctorprediction

Deering, 95

Prediction: Delta-Coding

A

processed regionunprocessed region

P

P = A

Taubin & Rossignac, 98

Prediction: Spanning Tree

A

BC D

E

processed regionunprocessed region

P

P = αA + βB + γC + δD + εE + …

Touma & Gotsman, 98

Prediction: Parallelogram Rule

processed regionunprocessed region

P

P = A – B + C

A

BC

Parallelogram Rule

goodprediction

badprediction

“non-convex”

badprediction

“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 noreason to triangulate it!

This face was “convex”and “planar”.

use this info for better predictions

within-predictions often find existing parallelograms ( quadrilaterals)

“within” versus “across”

within-predictions avoid creases

within-predictionacross-prediction

Texture Coordinate Mappings

Texture Mapping (1)

“the process of applying a texture image to a mesh”

mesh textured meshtextureimage

Texture Mapping (2)

“putting every 3D polygon of the mesh in correspondence with a

2D polygon in the image”

“some vertices of the mesh havemultiple corresponding locations in

texture space”

Discontinuities in Mapping (1)

3

5

5

5

3

3

5

5

5

3

13

9711

11

11

Discontinuities in Mapping (2)

“vertices may have multiple associated texture coordinates”

3

3 5

5

9

11

7

13

creasecorner

0smoothcorner

0

Encoding the Mapping (1)

1. distinguish vertices

2. distinguish corners

smoothvertex

creasevertex

cornervertex

1 0 0

0 1

Encoding the Mapping (2)

27

23

24

25

26

1

011

0039

Encoding the Mapping (3)

40

3738

0

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

Piece-wise Mappings (1)

Piece-wise Mappings (2)

CompressingTexture Coordinates

Selective Linear Prediction

• analyze neighborhood

• use most promising predictor “within” (for polygon meshes only) “across” “nearby” “center”

• avoid unreasonable predictions

• compress with different contexts

Unreasonable Predictions

Example Scenarios (1)

processed vertex ring

117

16

11

13within-prediction

T16 – T11 + T13

Example Scenarios (2)

0

1

1

00

29

30

21

19

20

22

2526

smooth edge

within-prediction

T20 – T19 + T21

across-prediction

T22 – T25 + T26

Example Scenarios (3)

processed vertex ring

157

crease edge

50

nearby-prediction

T5053

5452

4744

Example Scenarios (4)

011

00

0

82

83

81

8074

within-prediction

T81 – T74 + T80

center-prediction

BBmid

Example Bit-Rates (10 bit)

within

by prediction typemodel across nearby center

-.- 7.5 9.8 18.9-.- 8.3 10.3 19.0-.- 7.3 10.7 18.3

“1398”“1412”“1510”

9.5

10.49.9

lionwolf

raptor

5.6 8.5 9.7 20.2

5.9 9.1 11.1 20.25.5 8.4 8.9 19.5

total

6.36.66.3

Selection Histogram

within

frequency of prediction typemodel across nearby center

-.- 55 % 35 % 10 %-.- 49 % 39 % 12 %-.- 53 % 36 % 11 %

“1398”“1412”“1510”

lionwolf

raptor

82 % 14 % 3 % 1 %

84 % 13 % 2 % 1 %78 % 18 % 5 % 1 %

Alternative Approaches

Alternative Approaches

“make texture coordinates implicit ”

• change the mesh (re-meshing)Geometry Images

[Gu et al, 02]

Bounded Distortion piece-wise Mesh Parameterization [Sorkine et al, 02]

Space-Optimized Texture Maps [Balmelli et al, 02]

• change the image (re-texturing)

Summary &Acknowledgments

Summary (1)

• use the parallelogram predictor for texture coordinates

• avoid unreasonable predictions across discontinuities (“seams”)

• switch to less-promising predictor

• compress resulting corrective vectors with separate arithmetic contexts

Summary (2)

• compressionsoftware asbenchmarkfor futureresearch isavailable onthe Web

http://www.cs.unc.edu/~isenburg/pmc/locallink

Acknowledgments

ArchaeologyTechnologyLabs,North DakotaState University

CuriousLabs,California

Thank You!

http://www.cs.unc.edu/~isenburg/pmc/