Blended Intrinsic Maps [1]
Usage: ./BlendedIntrinsicMaps mesh000.off mesh001.off
Output: ./mesh000/*.dense.preceise.map Visualization: the mesh #2 is colored according to vertex positions (XYZ -> RGB). Each vertex in the mesh #1 is mapped by blended map and then assigned a color of the correspondence in the mesh #2. Parameters: number of samples on surface (numSamples) - used to approximate functions on surfaces. |
Möbius Voting [3]
Usage: ./MobiusVoting mesh000.off mesh001.off
Output: ./mesh000/MobVote_Map_mesh000_to_mesh001.final.coarse.map Visualization: Coarse point set is rendered as spheres. Points that are in correspondence have same color and are connected by a line. Parameters: Modify variables at the beginning of the script to change algorithm parameters. You can change: number of casted votes (numVotes), number of samples on surface (numSamples), and fraction of (best) correspondences to keep (keepBestFraction). |
Intrinsic Symmetry: Best Conformal [2]
Usage: ./IntrinsicSymmetryBestConf mesh000.off
Output: ./mesh000/IS_BestConf_Map_mesh000_to_mesh000.final.coarse.map Visualization: same as Mobius Voting above Parameters: number of evenly distributed samples (numSamples). |
Intrinsic Symmetry: Blended Map [1]
Usage: ./IntrinsicSymmetryBlended mesh000.off
Output: ./mesh000/IS_Blended_DenseMapPreceise_mesh000_to_mesh000.dense.preceise.map Visualization: same as Blended Maps above Parameters: same as Blended Maps above |
Surfaces: *.off
Dense preceise map: *.dense.preceise.map
Each line id corresponds to a vertex in the mesh #1, each line has a single surface sample on the mesh #2. For example, if *.dense.preceise.map contains the following two lines:
Dense vertex-to-vertex map: *.dense.gaps.map
12 .5 .5 0 9 1. 0 0 It means that vertex 1 in the mesh #1 corresponds to a point on triangle 12 in the mesh #2 with barycentric coordinates [ .5 .5 0 ]. And vertex 2 in the mesh #1, corresponds to a point on triangle 9 in the mesh #2 with barycentric coordinates [ 1. 0. 0 ]
Each line id corresponds to a vertex in the mesh #1, each line has a single integer - corresponding vertex id in the mesh #2. For example, if *.dense.map contains the following two lines:
8 5 It means that vertex 1 in the mesh #1 corresponds to vertex 8 in the mesh #2. And vertex 2 in the mesh #1, corresponds to vertex 5 in the mesh #2. Note that this file is produced by snapping a true correspondence, which might be anywhere on the mesh #2, to the nearest vertex. Coarse Map: *.coarse.map
Header (ignore):
Format MapCoarse CoarseType Pairwise NumMeshes 2 SampleTypes NearestVertexID_Error NVertices1 [int NUM_VERTICES_IN_MESH_1] NVertices2 [int NUM_VERTICES_IN_MESH_2] 2 0 1 4 Body (pairs of vertex correspondences one vertex per line): each line has a vertex id, followed by an unused floating-point value. |
Note that there are several undocumented features of the visualization
tool. One useful feature is if you press apostrophe character: " ' "
once (until line "Rendering Map: BestExtrapolated" is printed to the
standard output) you should be able to click on any point on a surface
and it will show you a correspondences (for Mobius Voting it uses
Generalized Multidimensional Scaling (GMDS)).
|