Title: OutofCore Remeshing of Large Polygonal Meshes
1Out-of-Core Remeshing of Large Polygonal Meshes
POSTECH Univ. of Michigan POSTECH
- Minsu Ahn,
- Igor Guskov,
- Seungyong Lee,
2Out-of-Core Meshes
- Meshes with large of vertices and faces
- size of a mesh gtgt main memory
of f 28,055,742 of v 14,027,872
of f 372,422,615 of v 186,810,938
of f 56,230,343 of v 28,184,526
3Out-of-Core Algorithms
- Simplification
- mesh cutting Hoppe 98
- vertex clustering Lindstrom 00, Shaffer 03
- external data structure Cignoni 03
- data streaming Wu 03, Isenburg 03
- Compression
- mesh cutting Ho 01
- external data structure Isenburg 03
? Out-of-core remeshing has not been proposed
4Remeshing
- Create a new mesh to improve
- sampling
- regularity
- shape of elements
Remeshing
Irregular
Regular
Alliez 02
5Remeshing Algorithms
- Simplification subdivision
- Eck 95, Lee 98, Guskov 00, Khodakovsky 03
- Global parameterization
- Gu 00, Alliez 02, Praun 03
- Directly manipulation
- Surazhsky 03 Schreiner 06
? These cannot handle out-of-core meshes
6Out-of-Core Remeshing
- Out-of-core meshes need remeshing
- irregular and densely sampled
- difficult to process
- Improve the structure of out-of-core meshes
1.6
Remeshing
V
F
V
F
Out-of-core mesh
Semi-regular mesh
7Contributions
- Out-of-core remeshing algorithm
- creating semi-regular representations
- Parameterization of out-of-core meshes
- mapping onto a coarse base domain
- Applications for geometry processing
- mesh editing
- map generation
- shape compression
8Basic Approach
- Simplification Refinement
- similar to MAPS algorithm Lee 98
- out-of-core technique
Base mesh
Semi-regular
Input
Mappinginformation
Refinement Resampling
Parameterization
9Why Simplification Approach
- Need only local information at a time
- vs. global parameterization approach
- need the whole mesh at the same time
Simplification
Global parameterization
Alliez 02
10Why Simplification Approach
- Semi-regular meshes
- digital geometry processing
- shape compression
- mesh editing
- Parameterization onto the base domain
- various applications
- editing
- map generation
11Problem
- An out-of-core mesh cannot fit into main memory
for processing steps of MAPS
Base mesh
Semi-regular
Input
Mappinginformation
Refinement Resampling
Parameterization
12Our Solution
- Streaming approach
- limited-size buffer
- keep only a partial mesh
- read, process, and write
Main memory
Input streaming file
Read
Process
Read
Write
Output streaming file
13Overall Process
Streaming approach
Base mesh
Mappinginformation
Large input
Semi-regular
Parameterization
Refinement Resampling
14Parameterization
Base mesh
Simplification
Original mesh
Mapping Construction
15Parameterization
- Streaming approach
- two fixed-size buffers
Domain Buffer
Simplification
Original mesh
Map buffer
Mapping Construction
16Out-of-Core Parameterization
- Domain buffer
- for simplification
- Map buffer
- for mapping construction
Write
Read
Simplify
Domain Buffer
Write
Read
Update
Map buffer
17Buffer Maintenance
- Avoid buffer overflow
- write and remove the processed part before
reading the next part
Write
Read
Read
18Buffer Maintenance
- Determine the write order
- consider the dependency between two buffers
writablefaces
Domain Buffer
Simplification of a partial mesh
Read
Write
writablevertices
Map buffer
Mapping information
19Writable Vertex
- A vertex in the map buffer is writable
- if we have updated its mapping information
?
20Writable Face
- A face in the domain buffer is writable
- if we have updated the mapping information for
the vertices mapped on it
21Deadlock
- No vertices in the map buffer and no faces in the
domain buffer are writable - can neither remove any vertices nor faces
- can neither read any vertices nor faces
22Deadlock Avoidance
- Manage the mesh parts in the buffers to overlap
each other - Vertices in the map buffer can find the mapping
faces in the domain buffer
23Parameterization Example
- Now we have
- base mesh
- mapping between the input and its base mesh
Base mesh
Mapping information
Large input
24Refinement Resampling
- Subdivide the base mesh recursively
- Resample the positions of new vertices
- from the very large input mesh
Original input mesh
Base mesh
25Out-of-Core Resampling
- Divide Conquer
- decompose original triangles to separate sets
- each triangle set corresponds to a base mesh face
Decompose
26Out-of-Core Resampling
- Sequential resampling from a triangle set
Read Evaluation
3D
External sort
Embed
2D
27Experimental Results
28Experimental Results
- User-defined feature preservation
- feature preservation is important in remeshing
- base mesh ltlt original mesh
- user can select features in one of the simplified
meshes or its portion
29Experimental Results
30Applications
- Map conversion
- Mesh editing
31Application I
- Map conversion
- parameterization process can be split into two
stages
Our out-of-core parameterization
In-core parameterization
Intermediate base mesh
resampling
resampling
Large input
Coarse mesh
Our out-of-core algorithm
In-core remeshing algorithm
32Application I
- Map conversion
- combine with an in-core parameterization
- Spherical parameterization and remeshingPraun
03
Normal-map Image(512 X 512)
Geometry Image (257 X 257)
33Application II
- User-guided mesh editing
- edit an input mesh by editing its base mesh
- using the mapping between them
- remove the artifacts of the original surface
- removing the corresponding parts in the base mesh
34Application III
- Shape compression
- Progressive geometry compression Khodakovsky 00
PSNR vs. file size
35Discussion
- Memory footprint
- sizes of buffers as parameter
byte
Read
Simplify
Write
Read
36Discussion
- Algorithm robustness
- extreme conditions of small buffer sizes
- with Max f (Bd) 30K and Max f (Bm) 1
- with Max f (Bd) 12K and Max f (Bm) 3K
37Conclusion Future Work
- First out-of-core remeshing method
- streaming approach based on the MAPS algorithm
- create a mapping between the huge input mesh and
its simplified mesh - various applications
- Future work
- globally smooth parameterization of out-of-core
meshes
38http//cg.postech.ac.kr
39Supplementary Slides
40Time Table
41Compression Performance
42(No Transcript)
43Backup Slides
44Input Mesh
- External breath-first vertex sorting
- Streaming meshes Isenberg 05
Initial
After reordering
45Simplification Criteria
- Quadric error metric
- Roundness of triangles
- Normal of vertices
hecol
46Mapping Information
- Similar to MAPS method
- map information (if, ?)
- map face, if
- barycentric coordinate, ?
- conformal map
47Streaming Approach
- Use a limited-size buffer
48Overall Parameterization Process
Simplification
Update mapping information
49Writable Face
- Counts of the face, fd ? Bd
- map count
- of vertices which are mapped onto f
- update Count
- initially 0
- increase when each vertex is updated
- Writable face , fd ? Bd
- map count update count
50Mapping Construction
- Streaming approach
- map buffer
Vertex
Face
51Mapping Construction
- fd ? Bd
- nothing to do
- fd ? Bd
- removed
- not read
- Hash, Hf
- (if, cm)
- remove face index
- map vertex count
52Parameterization Example
53Write Order
- Decides the shape of mesh parts
- shape of partial mesh read order
- read order write order in the prev. level
Input Streaming file
Read
Write
54Write Order
- Write order in Bd depends on that in Bm
- to overlap each other
55Out-of-Core Resampling
- Preprocessing
- sort triangles in terms of the min. v-coord.
externally - sort sample points similarly
v
(0, 1, 0)
(0, 1)
(0, 0, 1)
u
(0, 0)
(1, 0)
(1, 0, 0)
56Out-of-Core Resampling
- Process
- read sequentially
- evaluate map information
- remove
v
(0, 1)
u
(0, 0)
(1, 0)