No description, website, or topics provided.
C++ GLSL
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
conformal-parameterization.xcodeproj
deps
objs
shaders
Camera.cpp
Camera.h
Cetm.cpp
Cetm.h
CirclePatterns.cpp
CirclePatterns.h
Edge.cpp
Edge.h
Face.cpp
Face.h
HalfEdge.cpp
HalfEdge.h
Lscm.cpp
Lscm.h
Mesh.cpp
Mesh.h
MeshIO.cpp
MeshIO.h
MosekSolver.cpp
MosekSolver.h
Mosek_solver.h
Parameterization.cpp
Parameterization.h
QcError.cpp
QcError.h
README.md
RenderData.cpp
RenderData.h
Scp.cpp
Scp.h
Shader.cpp
Shader.h
Solver.cpp
Solver.h
Subdivision.cpp
Subdivision.h
Types.h
Utils.h
Vertex.cpp
Vertex.h
flattening.png
main.cpp

README.md

Conformal Parameterization

Parameterizing a triangle mesh means computing a one to one correspondence between a discrete, triangle surface patch and a planar mesh through a piecewise linear map. This amounts to assigning each triangle mesh vertex a pair of coordinates (u, v) indicating its position on the planar mesh. These planar coordinates are particularly useful for mapping textures on a 3D surface in addition to performing mesh operations such as surface fitting and remeshing.

A consequence of trying to flatten a non flat triangulated surface from 3d to 2d is the introduction of distortions. While it is almost always impossible to flatten a surface isometrically, i.e., preserving both lengths and angles, it is possible to find an angle preserving or conformal parameterization. This repo implements several state of the art algorithms for conformal flattening such as LSCM, SCP, Circle Patterns, CETM. BFF is the most recent of these algorithms that provides additional flexibility with the resulting flattening. An implementation can be found here.

Implements algorithms for conformal parameterization.

Usage: ./conformal-parameterization -run_test 0/1 -obj_path PATH -shader_path PATH