large mesh simplification using processing sequences
DESCRIPTION
Large Mesh Simplification using Processing Sequences. Martin Isenburg UNC Chapel Hill. Peter Lindstrom LLNL Livermore. Stefan Gumhold GRIS Tubingen. Jack Snoeyink UNC Chapel Hill. Overview. Motivation Background Processing Sequences Adapted Simplification Schemes OOCS Wu & Kobbelt - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/1.jpg)
Large Mesh Simplificationusing Processing Sequences
Martin IsenburgUNC
Chapel Hill
Peter LindstromLLNL
Livermore
Stefan GumholdGRIS
Tubingen
Jack SnoeyinkUNC
Chapel Hill
![Page 2: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/2.jpg)
Overview
• Motivation
• Background
• Processing Sequences
• Adapted Simplification Schemes– OOCS
– Wu & Kobbelt
• Conclusion
![Page 3: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/3.jpg)
Motivation
![Page 4: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/4.jpg)
Large Meshes
3D scans isosurfaces
![Page 5: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/5.jpg)
Large Meshes
3D scans isosurfaces
![Page 6: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/6.jpg)
PPM isosurface
• 235 million vertices
• 469 million triangles
• 235 million rtices
• million trianglesover
8 Gigabyte !
hampers:• distributing / loading• rendering• processing
![Page 7: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/7.jpg)
• in-core algorithms of choice:– Qslim
– Rsimp
Mesh Simplification
• alternative: processing sequence
[Garland & Heckbert ’97]
[Brodsky & Watson ’00]
require~ 200 bytesper vertex
• current out-of-core approaches:1. piece by piece
2. external memory
3. polygon soup [Lindstrom ’00]
[Hoppe ’98]
[Cignoni et al. ’03]
![Page 8: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/8.jpg)
Background
![Page 9: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/9.jpg)
Related Work
• Large Mesh Processing– Simplification
– Compression
– Visualization Systems
• Main Techniques 1. Mesh Cutting
2. Online Processing
3. Batch Processing
![Page 10: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/10.jpg)
• cut mesh into small pieces
• process each separately
• special treatment for cuts
• stitch result back together
1. Mesh Cutting
figure courtesy of Hugues Hoppe
![Page 11: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/11.jpg)
2. Online Processing
• external memory datastructures
• “random” mesh access
figure courtesy of Paolo Cignoni
![Page 12: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/12.jpg)
3. Batch Processing (1)
• polygon soup
• single scan over stream ofde-referenced triangles
• no explicit connectivity
[Lindstrom ’00]
![Page 13: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/13.jpg)
3. Batch Processing (2)
• polygon soup
• single scan over stream ofde-referenced triangles
• no explicit connectivity
(coherent)
reconstruct
figure courtesy of Jianhua Wu and Leif Kobbelt
[Wu & Kobbelt ’03]
![Page 14: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/14.jpg)
Sequenced Processing
• coherent triangle orderinginterleaved with vertices
• small footprint streaming
• finalization of vertices
[Isenburg & Gumhold ’03]
![Page 15: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/15.jpg)
Quadric Error Matrices
• accumulate error
• vertex placement
• sum of squareddistances of point to set of planes
• quadric error:
figure courtesy of Michael Garland
[Garland & Heckbert ’97]
Q =q00 q01 q02 q03
q10 q11 q12 q13
q20 q21 q22 q23
q30 q31 q32 q33
vTQv
![Page 16: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/16.jpg)
Processing Sequences
![Page 17: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/17.jpg)
A little history …
• Compressor– region growing
![Page 18: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/18.jpg)
A little history …
• Compressor– region growing
• Out-of-Core Mesh– transparent
– caching clusters
![Page 19: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/19.jpg)
A little history …
• Compressor– region growing
• Out-of-Core Mesh– transparent
– caching clusters
• Compact Format– small footprint
– streaming
![Page 20: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/20.jpg)
A little history …
• Compressor– region growing
• Out-of-Core Mesh– transparent
– caching clusters
• Compact Format– small footprint
– streaming
![Page 21: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/21.jpg)
A little history …
• Compressor– region growing
• Out-of-Core Mesh– transparent
– caching clusters
• Compact Format– small footprint
– streaming
![Page 22: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/22.jpg)
• interleaved ordering of triangles and vertices that “grows regions”
processingboundary
Processing Sequences
border edges
Q7
Q1
Q4
• available information:– first & last use of edges & vertices
– surface border
• maintaindata alongboundary
![Page 23: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/23.jpg)
unprocessed region
Abstractions
• boundary-based– one boundary
– process immediately
processed region
waiting area
processingboundary
![Page 24: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/24.jpg)
processed region
unprocessed region
Abstractions
• boundary-based– one boundary
– process immediately
• buffer-based– two boundaries
– process in buffer
– read to fill
– write to empty
in-corebuffer
output boundary
input boundary
processed region
unprocessed region
processingboundary
waiting area
![Page 25: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/25.jpg)
OOCS
![Page 26: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/26.jpg)
OOCS
• stream in polygon soup– triangle after triangle
• vertex clustering– one quadric per grid cell
• output sensitive– store all quadrics
• no border info – tangential
term added
![Page 27: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/27.jpg)
OOCS
Q
Q
input output
![Page 28: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/28.jpg)
OOCS
Q
Q
Q
Q
input output
![Page 29: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/29.jpg)
OOCS
Q
Q
Q
Q
input output
![Page 30: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/30.jpg)
OOCS
Q
Q
Q Q
Q
input output
![Page 31: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/31.jpg)
OOCS
Q Q
Q Q Q
Q
Q
input output
Q
![Page 32: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/32.jpg)
OOCS
Q Q
QQ Q Q Q
Q Q
Q
Q Q Q
Q
Q
Q
Q
Q
Q
input output
![Page 33: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/33.jpg)
OOCS
Q Q
Q
Q
Q
QQ Q Q Q
Q Q
Q
Q
Q Q
Q Q
Q
Q
Q
QQQ
Q Q Q
QQQQ
Q
QQQ
Q Q
Q
input output
![Page 34: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/34.jpg)
OOCS
Q Q
Q
Q
Q
QQ Q Q Q
Q Q
Q
Q
Q Q
Q Q
Q
Q
Q
QQQ
Q Q Q
QQQQ
Q
QQQ
Q Q
Q
input output
![Page 35: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/35.jpg)
OOCS
Q Q
Q
Q
Q
QQ Q Q Q
Q Q
Q
Q
Q Q
Q Q
Q
Q
Q
QQQ
Q Q Q
QQQQ
Q
QQQ
Q Q
Q
input output
![Page 36: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/36.jpg)
OOCS using PS
![Page 37: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/37.jpg)
• fewer artifacts– do not collapse multiple
layers into single vertex
– improved surface boundaries
• streaming output
OOCS using PS
• memory insensitive– maintain much fewer quadrics
![Page 38: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/38.jpg)
processedregion
unprocessedregion
Q7
7
Q55
55
OOCS using PS (detail)
Q33
Q4
4
4
![Page 39: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/39.jpg)
processedregion
unprocessedregion
Q55
Q4
Q7
7
4
4
Q3
5
3
OOCS using PS (detail)
![Page 40: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/40.jpg)
processedregion
unprocessedregion
Q55
Q4
Q7
7
4
4
5
Q3
turns into vertex quadric
OOCS using PS (detail)
![Page 41: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/41.jpg)
processedregion
unprocessedregion
Q55
Q4
Q7
7
4
4
5
Q8
8
OOCS using PS (detail)
![Page 42: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/42.jpg)
processedregion
unprocessedregion
Q55
Q4
Q7
7
4
5
Q8
8
OOCS using PS (detail)
![Page 43: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/43.jpg)
processedregion
unprocessedregion
Q55
Q4
Q7
7
5
Q8
8
quadric turns into vertex
8
OOCS using PS (detail)
![Page 44: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/44.jpg)
processedregion
unprocessedregion
Q55
Q7
7
5
Q8
88
Q9
9
OOCS using PS (detail)
![Page 45: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/45.jpg)
processedregion
unprocessedregion
Q55
Q7
7
Q8
88
Q9
9quadricmerge
OOCS using PS (detail)
![Page 46: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/46.jpg)
OOCS using PSinput output
![Page 47: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/47.jpg)
OOCS using PS
Q
Q
Q
Q
outputinput
![Page 48: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/48.jpg)
OOCS using PS
Q
Q Q
Q Q
Q
outputinput
Q Q
![Page 49: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/49.jpg)
OOCS using PS
Q
Q
Q
Q
Q Q
Q
Q
Q
outputinput
Q Q
![Page 50: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/50.jpg)
OOCS using PS
Q
Q
Q
Q
Q
outputinput
Q
Q Q
Q Q
Q
QQ Q
Q
![Page 51: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/51.jpg)
OOCS using PS
Q
Q
Q
Q
outputinput
Q
Q
Q
Q
Q
Q
Q Q
Q Q
Q
Q Q
Q
Q
Q
Q
![Page 52: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/52.jpg)
OOCS using PS
Q
Q
Q
outputinput
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q Q
Q Q
Q
Q Q
Q
Q
Q
![Page 53: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/53.jpg)
OOCS using PS
QQQ
Q
Q
Q
outputinput
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q Q
Q Q
Q
Q Q
Q
Q
Q
Q
![Page 54: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/54.jpg)
OOCS using PS
Q
Q
Q
outputinput
QQQ
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q Q
Q Q
Q
Q Q
Q
Q
Q
Q
Q
![Page 55: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/55.jpg)
OOCS using PSoutputinput
QQQ
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q Q
Q Q
Q
Q Q
Q
Q
Q
Q
Q
Q
Q
Q
![Page 56: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/56.jpg)
Improved Mesh QualityOOCS-PS
OOCS
vertices: 33,053
non-manifoldvertices: 3,366
vertices: 35,134
non-manifoldvertices: 897
![Page 57: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/57.jpg)
Lower Memory Requirements
373 million vertices
OOCSmemory:
3,282 MBtime:
67 minOOCS-PSmemory:
121 MBtime:
83 min23 million vertices
![Page 58: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/58.jpg)
Wu & Kobbelt
![Page 59: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/59.jpg)
Wu & Kobbelt
• stream coherent soup into buffer• reconstruct connectivity
– hash on vertex data– finalize complete stars
inputboundary
a aa a
a
aaa
a
accumulating
c c
collapsible
• randomized edge collapse – one quadric per vertex– accumulating collapsible
• randomized streaming output
![Page 60: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/60.jpg)
Wu & Kobbelt
ca
a
a
a
a
a
a
input output
![Page 61: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/61.jpg)
Wu & Kobbelt
c
cc
c
c
c
cc
c
a
a
a
aa
aa
a
a
a
a
a
aa
a
a aa
aa
a
a
a
a
a
a
a
input output
![Page 62: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/62.jpg)
Wu & Kobbelt
c
cc
cc
aa
a a
c
a
a
a
aa
a
c
c
c
a
a
a
aa
a
a
aa
a
a
a
c
c
ca
a
a
a
a
a
aa
a
aa
a
a
a
a
a
a
c
c
c
outputinput
![Page 63: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/63.jpg)
Wu & Kobbelt
c
c
c
c
c
aaaa
a
a
a
aa
a c
c
c
a
a
a
aa
a a
aa
a
a
a
cc
ca
a
a
a
a
a
a
a
a
a a
a
a
a
a
a
a
c
ca
aa
a
a
c
c
c
c
cc
cc
c
aa
a
a
c
cc
c
a
a
outputinput
![Page 64: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/64.jpg)
Wu & Kobbelt
c
c
c
c
c
aaaa
a
a
a
a
a
a
c
c
a
a
a
a a
a a
aa
a
aa
c
ca
a
a
aa
a
a
a a
a
a
a
a
a
c
c
aa
a
a
a
c
c
c
cc
aa
a
a
c
c
c
c
a
a
aa
aa
aa
c
c
c
c
c c
c
c
c
c
c
c
cc
c
c
c
c c
outputinput
![Page 65: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/65.jpg)
Wu & Kobbelt
c
aaaa
a
aa
a
a
a
a
aa
a
a
a
a
a
a
a
aa
a
a
a a
a
a
a
a
a
c
aa a
a
a
c
aa
a
a
aa
a
a
a
a
c
c
c c
c
c
c
caa
a
a
aa
a a
a
aa
a
a a a a
a
a
a
a
a
ac
c
c
c
c c
c
c
c
c
c
c c
outputinput
![Page 66: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/66.jpg)
Wu & Kobbelt
aaaa
a
aa
a
a
a
a
aa
a
a
a
a
a
a
a
aa
a
aa a
a
a
a
a
a
aa a
a
a aa
a
a
a
a
a
a
a
a
c
c
a
a
a
a
aa
a
a
a
a
a
a
a a a a
a
a a
a
a
ac
c
c
aaa
aa
a
aa
aa
aa
aa
a
c
c
c c
cc
c
c
c
cc
outputinput
![Page 67: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/67.jpg)
Wu & Kobbelt
aaaa
a
aa
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
aa a
a
a
a
a
a
a a
a
a aa
a
a
a
a
a
a
a
c
a aa
a
a
a
a
a
a
a
a
a
a a a a
a
a
a
aa
aa
a
aa a
a
a
aaa
a
a
a
a
c
c
a
a
a
a
cc c
ccc
cc
c
ac
a
outputinput
![Page 68: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/68.jpg)
Wu & Kobbelt
aaaa
a
aa
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
aa a
a
a
a
a
a
a a
a
a aa
a
a
aa
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a a a a
a
a
a
aa
a
a
a
a a a
a
a
a
a
aa
a
a
a
a
aaa
a
c
cc
cc
a aa
a
c
outputinput
![Page 69: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/69.jpg)
border
Wu & Kobbelt
aaaa
a
aa
a
a
a
a
a
a
a
a
a
a
a
a
a
a
aa a
a
a
a
a
a
a a
a
a aa
a
a
a
a
a
a
aa
a
a
a
a
a
a
a
a
a a a a
a
a
a
aa
a
aa a a
a
a
aa
a
a
a
aaa
a
aa
a
aa
a
a
aa
a
c
c
c
cc
outputinput
![Page 70: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/70.jpg)
Wu & Kobbelt
c
c
c
c
c
c
c
c
c
c
c
c
cc c
c
c
c
c
c
c
c cc
c
c
c
c
cc
c
c
c
c
c
c
c
c c c c
c
c
c
c
c
ccc
cccc
cc
c
c
c
c c c
c
c
c
c
c
c
cc c
c
c
cc
c
c
cc
c
cc
c
c
cc
c
c
c
c
cc
outputinput
![Page 71: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/71.jpg)
Wu & Kobbelt
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c c
cc
c
cc
c
c
c
c
c c
c
c
cc
c
c
c
c
cc
c
c
c
c
c
outputinput
![Page 72: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/72.jpg)
Wu & Kobbelt
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
cc
c
c
c
c
c
c
c
outputinput
![Page 73: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/73.jpg)
Wu & Kobbeltoutputinput
![Page 74: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/74.jpg)
Wu & Kobbelt using PS
![Page 75: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/75.jpg)
Wu & Kobbelt using PS
• less fragmentation of buffer– processing sequence input / output
– more collapsible edges
• immediate boundary simplification– mesh borders known early
– truly “streaming” output
• faster connectivity reconstruction– indexed input / API support
![Page 76: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/76.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
a
a
a
a
a
a
a
accumulating
c
cc
c
c
c
c
collapsible
![Page 77: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/77.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
c
cc
c
c
c
c
collapsible
a
a
a
a
a
a
a
accumulating
c
![Page 78: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/78.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
c
cc
c
c
c
c
collapsible
a
a
a
a
a
a
a
a
accumulating
c
c
![Page 79: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/79.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
cc
c
c
c
collapsible
a
a
a
a
a
a
a
a
accumulating
c
c
c
![Page 80: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/80.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
cc
c
c
c
collapsible
a
a
a
a
a
a
a
a
accumulating
c
c
c
![Page 81: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/81.jpg)
Wu & Kobbelt using PS (detail)
unprocessedregion
processedregion
inputboundary
outputboundary
in-coretrianglebuffer
cc
c
c
c
collapsible
a
a
a
a
a
a
a
a
accumulating
c
c
![Page 82: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/82.jpg)
Wu & Kobbelt using PSinput output
![Page 83: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/83.jpg)
Wu & Kobbelt using PS
a
c
aaa
a
aaaa
a
a
c
cc
outputinput
![Page 84: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/84.jpg)
Wu & Kobbelt using PS
a
a a aaaa
a
a
aaaaaa
a
a
a
c c
cc
c
cc
c
c
c c c
c
outputinput
![Page 85: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/85.jpg)
Wu & Kobbelt using PS
aa a
a a
a
aa
a
a
a
aa
aa
aaa
a
aaa
a
a
a
aa
c
cc
c
c
c
cc
c
c
c
cc
cc
c
c
cc
ccc
c
c
cc
outputinput
![Page 86: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/86.jpg)
Wu & Kobbelt using PS
aa
a
aaa
a a
aa
a a
aa
a
a
a
a
a
aa aa
a
c
c
c
c c
c
c
c
c
c
c
ccc
ccc
c
c
c
c
c
c
c
c
c
c
c
c
cc
cc
c
c
cc
outputinput
![Page 87: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/87.jpg)
Wu & Kobbelt using PS
a a
a
a
a
aa
a
aa
a
a
a
a
c
c cc
ccc
c
c
c
c
cc
c
c
c
c
cc
cc
c c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input output
![Page 88: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/88.jpg)
Wu & Kobbelt using PS
aa
a
aa
a
a
a
a
a
aa
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
cc
c
c
c
c
c
c
c
c
c
c
c
c
input output
![Page 89: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/89.jpg)
Wu & Kobbelt using PS
a
a
aa a
a
a a
a
a
aa
c
c
c
c
c
c
c
c
c
c
c
ac
c
c
c
c
c
c
c
c c
c
c
c
c
c
c
input output
![Page 90: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/90.jpg)
Wu & Kobbelt using PS
a
a
a
a
a
a
a
a
ac
a
c
c
c
c
c
c
c
c c
c
c
c
c
a
c
c
c
c
cc
c
cc
cc
c
c
c
c
c
c
input output
![Page 91: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/91.jpg)
Wu & Kobbelt using PS
c c
cc
c
cc
cc
c
cc
cc
c
c
c
input output
![Page 92: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/92.jpg)
Wu & Kobbelt using PSinput output
![Page 93: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/93.jpg)
Conclusion&
Current Work
![Page 94: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/94.jpg)
Summary
• processing sequences– efficient large mesh access
– streaming input and output
– abstractions: • boundary-based• buffer-based
• adapted simplification algorithms:– OOCS
– Wu & Kobbelt
![Page 95: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/95.jpg)
• length of processing boundary– possible
– traversal is optimized for lowest bit-rate change heuristic
Issues
O( n ) [Bar-Yehuda & Gotsman ‘96]
• external memory mesh to createprocessing sequences …?– expensive to build & use
– defeats purpose …
![Page 96: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/96.jpg)
Generating PS
• on-the-fly
• input: “streaming mesh”
v 1.32 0.12 0.23v 1.43 0.23 0.92v 0.91 0.15 0.62f 1 2 3done 2 v 0.72 0.34 0.35f 4 1 3done 1 ⋮ ⋮ ⋮ ⋮
verticesfinalized
(not used bysubsequenttriangles)
![Page 97: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/97.jpg)
• extend to volume meshes
• promote– provide API
• create / improve– lower processing boundary length
Current Work
• compress– encode on-the-fly
![Page 98: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/98.jpg)
Thank You.
![Page 99: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/99.jpg)
![Page 100: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/100.jpg)
![Page 101: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/101.jpg)
v0
v1
v2
fill
Growing Operations
v0 v1
v2
end
v0 v1
v2
start
v0v1
v2
join
add
v0 v1
v2
processingboundary
![Page 102: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/102.jpg)
read nexttriangle
info aboutcurrenttriangle
optionalmaintainingof user data
Prototype of PS API int open(const char* file_name);int read_triangle();void close();
int t_idx[3];float* t_pos_f[3];int t_vflag[3];int t_eflag[3];
void set_edata( void* data, int i );void set_vdata( void* data, int i );void* get_edata( int i );void* get_vdata( int i );
![Page 103: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/103.jpg)
Example (1)
v0 v1
v2
eflag[0] = PS_FIRST eflag[1] = PS_FIRST eflag[2] = PS_FIRST
vflag[0] = PS_FIRSTvflag[1] = PS_FIRSTvflag[2] = PS_FIRST
v0 v1
v2
eflag[0] = PS_FIRST eflag[1] = PS_FIRST | PS_LAST eflag[2] = PS_FIRST | PS_LAST
vflag[0] = PS_FIRSTvflag[1] = PS_FIRST | PS_LASTvflag[2] = PS_FIRST
borderedge
enteringedge
borderedge
e0
e1
e2
start
start
![Page 104: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/104.jpg)
enteringedge
leavingedges
borderedge
enteringedge
leaving edge
v0 v1
v2
add
Example (2)
eflag[0] = PS_LASTeflag[1] = PS_FIRST | PS_LASTeflag[2] = PS_FIRST
vflag[0] = 0vflag[1] = 0vflag[2] = PS_FIRST
eflag[0] = PS_LAST eflag[1] = PS_FIRSTeflag[2] = PS_LAST
vflag[0] = PS_LASTvflag[1] = 0vflag[2] = 0
fill
v0
v1
v2
![Page 105: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/105.jpg)
Example (3)
eflag[0] = PS_LASTeflag[1] = PS_LASTeflag[2] = PS_LAST
vflag[0] = PS_LASTvflag[1] = PS_LASTvflag[2] = PS_LAST
eflag[0] = PS_LAST eflag[1] = PS_LAST eflag[2] = PS_LAST
vflag[0] = PS_LASTvflag[1] = 0vflag[2] = PS_LAST
leaving
edges
v0 v1
v2
v0 v1
v2
end
end
![Page 106: Large Mesh Simplification using Processing Sequences](https://reader035.vdocument.in/reader035/viewer/2022081519/568147ac550346895db4e794/html5/thumbnails/106.jpg)
Computing Smooth Normalsps.open ( “bunny.sma” );while ( ps.read_triangle() ) tmp = compute ( ps.t_pos[0], ps.t_pos[1], ps.t_pos[2] ); for ( i = 0; i < 3; i++ ) if ( ps.vflag[i] & PS_FIRST ) n = new Normal (); ps.set_vdata ( n, i ); else n = ps.get_vdata ( i ); add ( n, tmp ); if ( ps.vflag[i] & PS_LAST ) normalize ( n ); do something delete n;
ps.close ();