meshgit diffing and merging meshes for polygonal modeling jonathan - - PowerPoint PPT Presentation

meshgit
SMART_READER_LITE
LIVE PREVIEW

meshgit diffing and merging meshes for polygonal modeling jonathan - - PowerPoint PPT Presentation

meshgit diffing and merging meshes for polygonal modeling jonathan d. denning + , fabio pellacini + + dartmouth college, sapienza university of rome original derivative original derivative original derivative original


slide-1
SLIDE 1

meshgit

diffing and merging meshes for polygonal modeling

  • jonathan d. denning+, fabio pellacini+∗

+dartmouth college, ∗sapienza university of rome

slide-2
SLIDE 2
  • riginal

derivative

slide-3
SLIDE 3
  • riginal

derivative

slide-4
SLIDE 4
  • riginal

derivative

slide-5
SLIDE 5
  • riginal

derivative

slide-6
SLIDE 6

del, add

  • riginal

derivative

slide-7
SLIDE 7

exact matching

  • riginal

derivative

slide-8
SLIDE 8

surface correspondence

  • riginal

derivative

[kim et al. 2011]

slide-9
SLIDE 9

graph matching

  • riginal

derivative

[cour et al. 2006]

slide-10
SLIDE 10

adjacency matching

  • riginal

derivative

[eppstein et al. 2009]

slide-11
SLIDE 11

meshgit

  • riginal

derivative

slide-12
SLIDE 12

string edit distance / mesh edit distance

slide-13
SLIDE 13

mesh edit distance

min cost of partially matching meshes

slide-14
SLIDE 14

C(O) = Cu(O) + Cg(O) + Ca(O) Cu : unmatched faces and verts Cg : geometric changes Ca : adjacency changes

O : partial matching of two meshes

slide-15
SLIDE 15

C(O) = Cu(O) + Cg(O) + Ca(O) e e′

  • riginal

derivative

slide-16
SLIDE 16

C(O) = Cu(O) + Cg(O) + Ca(O) Cu(O) = Nu + N ′

u

N : number of unmatched faces and verts

slide-17
SLIDE 17

C(O) = Cu(O) + Cg(O) + Ca(O)

  • riginal

derivative

slide-18
SLIDE 18

C(O) = Cu(O) + Cg(O) + Ca(O) e e′

  • riginal

derivative

slide-19
SLIDE 19

C(O) = Cu(O) + Cg(O) + Ca(O) Cg(O) =

  • e∈E
  • d(xe, xe′)

d(xe, xe′) + 1 + (1 − ne · ne′)

  • E : matched faces and verts

x : position n : normal d(xe, xe′) = |xe − xe′|

slide-20
SLIDE 20

C(O) = Cu(O) + Cg(O) + Ca(O)

  • riginal

derivative

slide-21
SLIDE 21

C(O) = Cu(O) + Cg(O) + Ca(O) e1 e2 e′

1

e′

2

  • riginal

derivative

slide-22
SLIDE 22

C(O) = Cu(O) + Cg(O) + Ca(O) e1 e2 e′

1

e′

2

  • riginal

derivative

slide-23
SLIDE 23

C(O) = Cu(O) + Cg(O) + Ca(O) Ca(O) =           

  • (e1,e2)∈{U,U′}

1 v(e1) + v(e2) + +

  • (e1,e2)∈{A,A′}

w(e1, e2, e′

1, e′ 2)

v(e1) + v(e2)

U, U ′ : unmatched adj pair A, A′ : matched adj pair v(·) : valence w(e1, e2, e′

1, e′ 2) = |d(xe1, xe2) − d(xe′

1, xe′ 2)|

d(xe1, xe2) + d(xe′

1, xe′ 2)

slide-24
SLIDE 24

C(O) = Cu(O) + Cg(O) + Ca(O)

  • riginal

derivative

slide-25
SLIDE 25

min C(O) / max common subgraph isomorphism NP-Hard

slide-26
SLIDE 26

iterative greedy algorithm

feasibly approximate med

slide-27
SLIDE 27
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-28
SLIDE 28
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-29
SLIDE 29
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-30
SLIDE 30
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-31
SLIDE 31
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-32
SLIDE 32
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-33
SLIDE 33
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-34
SLIDE 34
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-35
SLIDE 35
  • 1. init
  • 2. greedy
  • 3. backtrack
  • 4. repeat 2,3
  • riginal

derivative

slide-36
SLIDE 36

mesh edit operations

turn one mesh into another

slide-37
SLIDE 37

delete : unmatched geometry in original add : unmatched geometry in derivative transform : matched vertices with geometric cost

slide-38
SLIDE 38

2-way diff

visualize edits from original to derivative

slide-39
SLIDE 39

deleted faces colored red added faces colored green transformed vertices colored blue unmoved vertices colored gray

slide-40
SLIDE 40
  • riginal

derivative

slide-41
SLIDE 41
  • riginal

derivative

slide-42
SLIDE 42
  • riginal

derivative

slide-43
SLIDE 43

3-way diff

visualize edits from original to two independent derivatives

slide-44
SLIDE 44

brightness of add/del face indicates derivative

  • verlapping deleted faces colored yellow
slide-45
SLIDE 45

derivative a

  • riginal

derivative b

slide-46
SLIDE 46

derivative a

  • riginal

derivative b

slide-47
SLIDE 47

derivative a

  • riginal

derivative b

slide-48
SLIDE 48

diff sequence

visualize edits along sequence

slide-49
SLIDE 49

added then deleted faces colored orange

slide-50
SLIDE 50
slide-51
SLIDE 51

mesh edit merge

combining independent edits

slide-52
SLIDE 52

merge is automatic if edits do not overlap on original adjacency is maintained; subdivision surfaces

slide-53
SLIDE 53

3-way + merge merge subd

slide-54
SLIDE 54

3-way + merge merge subd

slide-55
SLIDE 55

derivative a

  • riginal

derivative b

slide-56
SLIDE 56

derivative a

  • riginal

derivative b

slide-57
SLIDE 57

edit partitioning

reduce granularity of conflicts

slide-58
SLIDE 58

choose a neither choose b derivative a

  • riginal

derivative b

slide-59
SLIDE 59

future work

single object / hierarchical, component attributes low-level ops / high-level operations diff, merge / spatial undo, feature permutation, etc.

slide-60
SLIDE 60

summary

mesh edit distance : match polygonal meshes iterative greedy algorithm : feasibly approx med mesh edit operations : visualize, apply changes edit partitioning : reduce granularity of conflicts

slide-61
SLIDE 61

acknowledgements

blender böhler goralczyk grassard kuhn lumpycow nyman silva thomas vazquez williamson intel nsf sloan foundation

slide-62
SLIDE 62

thank you!

slide-63
SLIDE 63
  • riginal

derivative

slide-64
SLIDE 64

timing

chairs 3951 4.7s creature 17433 14.5s dragon 96616 307.9s durano 3722 1.5s hand 209 0.1s keys 1854 6.7s shaolin 2158 2.4s sintel 1810 2.7s spaceship 2173 0.9s shuttle 193970 585.3s woman 13984 33.7s