You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The core parameterization method is `bin/optimize_metric`. This executable takes the following arguments:
32
31
33
32
|flag | description|
@@ -38,21 +37,21 @@ The core parameterization method is `bin/optimize_metric`. This executable takes
38
37
|`direction`| Direction to use for descent|
39
38
|`--num_iter`| Maximum number of iterations|
40
39
|`--output`| Output directory|
40
+
|`--show_parameterization`| Open polyscope viewer for the output|
41
41
42
42
Supported parameter values for `energy` and `direction` are listed by `bin/optimize_metric --help`.
43
43
44
-
The input mesh must be a manifold surface with a single connected component. The cone file must be a list of newline separated target vertex cone angles satisfying the discrete Gauss-Bonnet condition. Such a cone prescription can be generated by TODO. The output is a refined mesh with a parameterization and a file of metric coordinate values.
44
+
The input mesh must be a manifold surface with a single connected component. The cone file must be a list of newline separated target vertex cone angles satisfying the discrete Gauss-Bonnet condition. Methods to generate such a cone prescription will be provided soon. The output is a refined mesh with a parameterization and a file of metric coordinate values.
45
45
46
-
We also provide the executable `bin/optimize_shear` for generating parameterizations using explicit shear coordinate optimization (see paper for details). The executable arguments and output are the same, but the allowed directions are different.
46
+
We also provide the executable `bin/optimize_shear` for generating parameterizations using explicit shear coordinate optimization (see paper for details). The executable arguments and output are the same, but the allowed directions are different. This method is in practice much slower to converge than the metric optimization method, but it does have standard formal convergence guarantees.
47
47
48
48
## Figure Reproduction
49
49
50
50
Scripts to generate the figures of "Metric Optimization in Penner Coordinates" are included in `figures`.
51
51
52
52

53
53
54
-
TODO
55
-
The models (with parameterizations) and cameras used in [Algebraic Smooth Occluding Contours](http://ryanjcapouellez.com/papers/algebraic_smooth_occluding_contours.html) necessary for these scripts can be downloaded [here](http://ryanjcapouellez.com/papers/algebraic-contours-data.zip); they must be copied to `data/meshes` and `data/cameras` respectively.
54
+
The models (with cone angles) and cameras used in [Metric Optimization in Penner Coordinates](https://dl.acm.org/doi/10.1145/3618394) necessary for these scripts can be downloaded [here](https://cims.nyu.edu/gcl/papers/2021-Conformal.zip); `MPZ_closed`, `MPZ_open`, `MPZ_cut`, and `cameras` must be copied to `data/closed-Myles`, `data/open-Myles`, `data/cut-Myles`, and `data/cameras` respectively.
56
55
57
56
A Conda environment must be activated (before compiling the code) with
58
57
```
@@ -64,23 +63,23 @@ The figure bash scripts can then be run independently or in batch with
64
63
bash fig-all.sh
65
64
```
66
65
67
-
Note that most bash scripts generate an output directory with a JSON file specifying parameters for the parameterization and rendering pipeline python script `scripts/pipeline.py`. Such JSON files can also be used for general batch parameterization and analysis.
66
+
Note that most bash scripts generate an output directory with a JSON file specifying parameters for the parameterization and rendering pipeline python script `scripts/_pipeline.py`. Such JSON files can also be used for general batch parameterization and analysis.
68
67
69
68
### Library
70
69
71
70
Many parametrization and mapping-related problems in geometry processing can be viewed as metric optimization problems, i.e., computing a metric minimizing a functional and satisfying a set of constraints, such as flatness.
72
71
73
72
Penner coordinates are global coordinates on the space of metrics on meshes with a fixed vertex set and topology, but varying connectivity, making it homeomorphic to the Euclidean space of dimension equal to the number of edges in the mesh, without any additional constraints imposed.
74
73
75
-
Crucially for practical applications, a new mesh with standard Euclidean edge lengths corresponding to a metric determined by arbitrary Penner coordinates can be computed by an efficient algorithm. Moreover, the new mesh only differs from the original by a finite sequence of edge flips. Since the resulting edge lengths are analytic functions of the Penner coordinates, standard first-order optimization methods can be applied.
74
+
Crucially for practical applications, there is an efficient algorithm to convert these abstract Penner coordinates to a more familiar representation of a metric: a mesh with standard Euclidean logarithmic edge lengths. Moreover, this mesh only differs from the input mesh by a finite sequence of edge flips, and the resulting edge lengths are analytic functions of the Penner coordinates. We can thus formulate many constraints, such as vertex cone angles, on the mesh with Euclidean edge lengths as differentiable functions of Penner coordinates.
76
75
77
76
To engender future work in this exciting direction, we provide a library `PennerOptimizationLib` containing:
78
77
79
78
1. A representation of a mesh with Penner coordinates and cone angle constraints that supports:
80
-
1. the computation of the corresponding mesh with Euclidean log edge lengths and the Jacobian of the log edge lengths with respect to Penner coordinates
79
+
1. the computation of the corresponding mesh with Euclidean logarithmic edge lengths and the Jacobian of the logarithmic edge lengths with respect to Penner coordinates
81
80
2. conformal projection to the cone angle constraints
82
81
2. Various energy functionals and constrained optimization methods for meshes with Penner coordinates
83
-
3. Layout and refinement methods to generate a parameterization for a mesh with arbitrary Penner coordinates such that the parameterization has the intrinsic metric prescribed by the coordinates.
82
+
3. Layout and refinement methods to generate a parameterization for a mesh from arbitrary Penner coordinates, i.e., the parameterization is an embedding in the uv plane of the metric defined by the Penner coordinate.
0 commit comments