Surface-Parameterization-Algorithms
Surface-Parameterization-Algorithms copied to clipboard
Project for CSE528
Project for CSE528 On Surface Parameterization

Project Overview
In this project, I explore two kinds of parameterization algorithms. The first kind is from the view of Tutte embedding called Orbifold Tutte embedding (OTE). The other kind is from the view of differential geometry called boundary first flattening (BFF).
References
-
Aigerman, N. and Lipman, Y. (2015). Orbifold tutte embeddings. ACM Trans. Graph., 34(6):190:1–190:12.
-
Aigerman, N. and Lipman, Y. (2016). Hyperbolic orbifold tutte embeddings. ACM Trans. Graph., 35(6):217:1–217:14.
-
Sawhney, R. and Crane, K. (2017). Boundary first flattening. https://arxiv.org/abs/1704.06873.
Compile and Run (Ubuntu)
sudo apt-get install freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev
mkidir build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j12
src/Viewer
How To Use
Folder structure
Released .exe file is in experiment/bin/
Test data are included in experiment/.
There are seven folders in experiment/:
-
bin: released exe file
-
Texture: some textures to show texture mappings.
-
Euclidean Orbifold / Hyperbolic Orbifold: test data for OTE
-
BoundaryFree / Polygon / ConeParameterization: test data for BFF
Viewer Options
Show Option:
-
Original: show loaded model.
-
Sliced: show model after cut, which is a disk.
-
Embedding: show results of algorithms
-
Covering Space: show tiled plane for orbifolds. (Only enabled in orbifold embeddings).
Show Slices and Cones: whether to show added cones and slices.
Vertex Selection and Cutting System
Both algorithm needs to cut mesh and set angle sum for some vertices.
The loaded mesh is shown in "Original" mode. In this mode, you can select vertices while pressing down 'S'. Input cone angle sum in the unit of . Select one vertex to add a cone and select two vertices to add a slice.
Current marker can be saved and loaded. There's a .mark file associated with each model file.
Orbifold Tutte Embedding
Only sphere-type Euclidean orbifolds with three cones supported:
,
,
Only sphere-type hyperbolic orbifolds with cone angles all supported. The number of cones for this kind should be larger than 4.
Needed .mark file is included for test.
Use Covering Space flag to see tiled plane: part of Euclidean plane and part of Poincare disk.
Boundary First Flattening
Three settings: free boundary (Harmonic/Hilbert BFF with free B), polygonal boundary (Harmonic/Hilbert BFF with K), cone parameterization (Harmonic/Hilbert BFF with Cones).
Needed .mark file is included for test.
Texture Mapping
After computation, load a texture. Choose "Show texture" flag. See it in "Sliced" mode.
Build From Source
All codes are included in Code/.
Open .sln file in VS2017 and build. Only x64 mode supported. Needed libraries' path are set in relative mode, you needn't modify them.
License
MIT