Encoding Meshes in Differential Coordinates Daniel Cohen-Or Tel - - PowerPoint PPT Presentation

encoding meshes in differential coordinates
SMART_READER_LITE
LIVE PREVIEW

Encoding Meshes in Differential Coordinates Daniel Cohen-Or Tel - - PowerPoint PPT Presentation

Encoding Meshes in Differential Coordinates Daniel Cohen-Or Tel Aviv University Outline Differential surface representation Compact shape representation Mesh editing and manipulation about surface reconstruction


slide-1
SLIDE 1

Encoding Meshes in Differential Coordinates

Daniel Cohen-Or Tel Aviv University

slide-2
SLIDE 2

Outline

  • Differential surface representation
  • Compact shape representation

– Mesh editing and manipulation

  • …about surface reconstruction
slide-3
SLIDE 3

Irregular meshes

  • In graphics, shapes are mostly

represented by triangle meshes

slide-4
SLIDE 4

Irregular meshes

  • In graphics, shapes are mostly

represented by triangle meshes

slide-5
SLIDE 5

Irregular meshes

  • Geometry:

– Vertex coordinates

(x1 , y1 , z1 ) (x2 , y2 , z2 )

. . .

(xn , yn , zn )

  • Connectivity (the

graph)

– List of triangles

(i1 , j1 , k1 ) (i2 , j2 , k2 )

. . .

( )

slide-6
SLIDE 6

Parallelogram Prediction

slide-7
SLIDE 7

Parallelogram Prediction

slide-8
SLIDE 8

K-way Prediction is better

slide-9
SLIDE 9

k-way prediction is like predicting that a vertex is in the average of its adjacent neighbors

slide-10
SLIDE 10

Motivation

  • Meshes are great, but:

– Topology is explicit, thus hard to handle – Geometry is represented in a global coordinate system

  • Single Cartesian coordinate of a vertex doesn’t say

much about the shape

slide-11
SLIDE 11

Differential coordinates

  • Represent local detail at each surface

point

– better describe the shape

  • Linear transition from global to differential
  • Useful for operations on surfaces where

surface details are important

slide-12
SLIDE 12

Differential coordinates

  • Detail = surface – smooth(surface)
  • Smoothing = averaging

( )

( )

1

i i j j N i i

d

= −

δ v v

( )

1

i i j j N i i

d

= −

δ v v

slide-13
SLIDE 13

Laplacian matrix

  • The transition between the δ

and xyz is linear:

⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠

L

1 2 n

x x x ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ M M

( ) 1 ( ) 2 ( ) x x x n

δ δ δ ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ M M

i ij

d i j D

  • therwise

= ⎧ = ⎨ ⎩

⎩ ⎨ ⎧ ∈ =

  • therwise

j N i Aij ) ( 1 1

L I D A

= −

slide-14
SLIDE 14

Laplacian matrix

  • The transition between the δ

and xyz is linear:

= L vx δx = L = L

( )

( ) i ij i j j N i

w

= −

δ v v

vy vz δy δz

slide-15
SLIDE 15

Basic properties

  • Rank(L) = n-c (n-1 for connected

meshes)

  • We can reconstruct the xyz geometry from

delta up to translation

L = x δ

1

L− = x δ

slide-16
SLIDE 16

Quantizing differential coordinates

  • Quantization is one of the major methods

to reduce storage space of geometry data

  • What happens if we quantize the δ-

coordinates?

– Can we still go back to xyz ? – How does the reconstruction error behave?

L = x δ

ε ′ → = + δ δ δ

“High-pass Quantization for Mesh Encoding”, Sorkine et al. 03

slide-17
SLIDE 17

Quantizing differential coordinates

1 1(

) L L ε

− −

′ ′ = = + x δ δ

How does the reconstruction error behave?

slide-18
SLIDE 18
  • Find the differences between the horses…

Quantizing differential coordinates

slide-19
SLIDE 19
  • This one is the original horse model

Quantizing differential coordinates

slide-20
SLIDE 20
  • This is the model after quantizing δ to 8

bits/coordinate

  • There is one anchor point (front left leg)

Quantizing differential coordinates

slide-21
SLIDE 21
  • Original model

Quantizing differential coordinates

slide-22
SLIDE 22
  • This is the model after quantizing δ to 7

bits/coordinate, one anchor

Quantizing differential coordinates

slide-23
SLIDE 23

Quantizing differential coordinates

slide-24
SLIDE 24

Quantizing differential coordinates

slide-25
SLIDE 25

Quantization error

  • A coarsely-sampled sphere
slide-26
SLIDE 26

Quantization error

  • After quantization to 8 bits/coordinate
slide-27
SLIDE 27

Quantization error

  • A finely-sampled sphere:
slide-28
SLIDE 28

Quantization error

  • After (the same) quantization to 8

bits/coordinate…

slide-29
SLIDE 29

Quantizing differential coordinates

slide-30
SLIDE 30

Quantizing differential coordinates

slide-31
SLIDE 31

Spectral properties of L

  • Sort the eigenvalues in accending order:
  • We can represent the geometry in L’s

eigenbasis:

1 2 1 2 2 1 1 n n n n n

x x c c c c x

− −

⎛ ⎞ ⎜ ⎟ ⎜ ⎟ = + + + + ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠

1

e e e e K M

1 2 1 2 1 n n n n

λ λ λ λ

− −

≤ ≤ ≤ ≤

1

e , e , e , e K K

eigenvectors “frequencies” low frequency components high frequency components [Taubin 95]

slide-32
SLIDE 32

The spectral basis

  • First functions are smooth and slow, last
  • scillate a lot

“Spectral Mesh Compression”, Karni and Gotsman 00 horse topology spectral basis of L = the DCT basis chain topology 2nd basis function 10th basis function 100th basis function

slide-33
SLIDE 33
  • [Karni and Gotsman 2000]: progressive

compression scheme (“3D JPEG”)

– Drop the high-frequency spectral coefficients – Both the encoder and the decoder perform spectral decomposition of L.

Spectral compression

slide-34
SLIDE 34

Spectrum of the quantization error

1 1 1

( ) L L L ε ε

− − −

′ ′ = = + = + x δ δ x

“High-pass Quantization for Mesh Encoding”, Sorkine et al. 03

slide-35
SLIDE 35

Spectrum of the quantization error

1

L ε

′ = + x x

1 1 2 2 1 1 n n n n

c c c c ε

− −

= + + + + e e e e K

1 1 1 2 2 1 1 1 2 1

1 1 1 1

n n n n n n

L c c c c ε λ λ λ λ

− − − −

= + + + + e e e e K

Large numbers = amplification Numbers < 1 = attenuation

“High-pass Quantization for Mesh Encoding”, Sorkine et al. 03

slide-36
SLIDE 36

Low frequency error

slide-37
SLIDE 37

Low frequency error

slide-38
SLIDE 38

Error spectrum matters

  • Quantizing Cartesian coordinates produces error

with mostly high-frequency modes

  • This affects the normals and thus the lighting
  • Human perception is sensitive to high-frequency

errors

  • Quantizing delta-coordinates produces low-

frequency error

  • Strives to preserve local surface properties
  • We are less sensitive to low-frequency errors
slide-39
SLIDE 39

Low frequency error – anything we can do about it?

slide-40
SLIDE 40

Low frequency error – anything we can do about it?

slide-41
SLIDE 41

Bounding the low-frequency error

  • “Nail” the model in place by adding more

spatial constraints

  • The more anchors – the higher λ1 – the

lower the error

– Anchors cost additional storage space – In practice, less than 1% of the model vertices need to be anchored for visually good reconstruction

slide-42
SLIDE 42

Invertible square Laplacian

  • We could simply eliminate the anchors from the system,

erasing the rows and the columns of the anchor vertices

  • Use this “reduced” Laplacian instead of L and remember

the anchors’ (x, y, z) positions separately

1 2 3 1

1 1 1 1 1 1 1 1 1 1

n n

d d d L d d

− − ⎛ ⎞ ⎜ ⎟ − − ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ − − − ⎜ ⎟ ⎜ ⎟ − − − ⎝ ⎠ L L L M M O M O M O

slide-43
SLIDE 43

Invertible Laplacian artifacts

  • Produces bad results when we quantize δ

because no smoothness constraints are posed

  • n the anchors
  • We keep the smoothness constraints and solve

the system in least-squares sense!

slide-44
SLIDE 44

Rectangular Laplacian

  • We add equations for the anchor points
  • By adding anchors the matrix becomes

non-square, so we solve the system in least-squares sense:

1 1 ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ L L

L

⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ ′ ′ ′

n

x x x M M

2 1 1 2 1 2 n

x x δ δ δ ′ ⎛ ⎞ ⎜ ⎟ ′ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ′ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ M M

constrained anchor points

δ ′ − ′

x A

x

min

slide-45
SLIDE 45

Low-frequency error

Positive error – vertex moves

  • utside of the

surface Negative error – vertex moves inside the surface 0 –

Cartesian quantization 8b/c δ-quantization 7b/c 4 anchors δ-quantization 7b/c 20 anchors δ-quantization 7b/c 2 anchors “High-pass Quantization for Mesh Encoding”, Sorkine et al. 03

slide-46
SLIDE 46

Some results

  • riginal

δ-quantization, entropy 6.69 Cartesian quantization, entropy 7.17 We compare to Touma-Gotsman predictive coder that uses Cartesian quantization

slide-47
SLIDE 47

Some results

  • riginal

δ-quantization, entropy 7.62 Cartesian quantization, entropy 7.64 We compare to Touma-Gotsman predictive coder that uses Cartesian quantization

slide-48
SLIDE 48

Shape from connectivity

  • What if we reduce delta information to

zero bits??

  • Can we still reconstruct some geometry?

“Least-squares Meshes”, Sorkine and Cohen-Or 04

c1

1

= L V

1 1

c2 ck δx

slide-49
SLIDE 49

Shape from connectivity

  • What if we reduce delta information to

zero bits??

  • Can we still reconstruct some geometry?

“Least-squares Meshes”, Sorkine and Cohen-Or 04

c1

1

= L V

1 1

c2 ck

slide-50
SLIDE 50

Geometry hidden in connectivity

There is geometry in connectivity

“Least-squares Meshes”, Sorkine and Cohen-Or 04

slide-51
SLIDE 51

Connectivity Shapes

  • Connectivity has geometric information in it
  • Isenburg et al. showed how to get a shape from

connectivity by assuming uniform edge length and smoothness

– Non-linear optimization process to get shape from connectivity

“Connectivity Shapes”, Isenburg and et. 01

slide-52
SLIDE 52

Least-squares Meshes

  • Enrich the connectivity by sparse set of control

points with geometry

  • Solve a linear least-squares problem to

reconstruct the geometry of all vertices (the approximated shape)

“Least-squares Meshes”, Sorkine and Cohen-Or 04

slide-53
SLIDE 53

Basis functions

  • The geometry reconstructed by

is in fact a combination of k basis functions:

( )

* * 1

( )

T T

A A A A A

= = x b

1 1 2 * * * * 2

1 1 1

k k

A A c c c A c c c A ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = = + + + ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ x M M M M M M M M K

“Geometry-aware Bases for Shape Approximation”, Sorkine et al. 05

slide-54
SLIDE 54

Basis functions

  • The basis functions are defined on the entire mesh

– Connectivity data – Tagging of the control vertices

  • The bases satisfy (in LS sense):

– Smooth everywhere : Lui = 0 – Large on the i-th control vertex (ui = 1) and vanish on all others

5 basis functions

  • n a 2D mesh

(simple chain)

slide-55
SLIDE 55

Spectral basis vs. LS basis

Spectral Basis

  • The spectral basis

does not take any geometric information into account

  • Requires

eigendecomposition – impractical for today’s meshes LS basis

  • The LS basis tags

specific vertices, which makes it “geometry-aware”

  • Requires solving

sparse linear least- squares problem – can be done efficiently

slide-56
SLIDE 56

Spectral basis vs. LS basis

6 spectral basis vectors 45 spectral basis vectors 6 geometry-aware basis vectors 45 geometry-aware basis vectors

slide-57
SLIDE 57

Selecting the control points

  • Random selection

– Faster, but less effective approximation

  • Greedy approach

– Place one-by-one at vertices with highest reconstruction error – Fast update procedure for the system inverse matrix

Random selection Greedy approach 1000 control points

slide-58
SLIDE 58

Some results – varying number of control points

100 control points 600 control points 1200 control points 3600 control points Original camel 39074 vertices

slide-59
SLIDE 59

Some results – varying number of control points

100 control points 500 control points 4000 control points 9000 control points Original feline 49864 vertices

slide-60
SLIDE 60

Applications

  • Progressive geometry compression and

streaming

100 control points 1000 control points 3000 control points 10000 control points

slide-61
SLIDE 61

Applications

  • Progressive geometry compression and

streaming

  • Hole filling
slide-62
SLIDE 62

Applications

  • Progressive geometry compression and

streaming

  • Hole filling
  • Mesh editing
slide-63
SLIDE 63

Geometry hidden in connectivity

“Least-squares Meshes”, Sorkine and Cohen-Or 04

slide-64
SLIDE 64

Differential coordinates for editing

  • Intrinsic surface representation
  • Allows various surface editing operations that

preserve local surface details

slide-65
SLIDE 65

Why differential coordinates?

  • Local detail representation – enables detail

preservation through various modeling tasks

  • Representation with sparse matrices
  • Efficient linear surface reconstruction