Efficient Embeddings
in Exact Arithmetic
Ugo Finnendahl, Dimitris Bogiokas, Pablo Robles Cervantes, Marc Alexa
SIGGRAPH 08.08.2023
Embedding
"negative" area
Tutte embedding
[Tutte 1963]
boundary
flipped
Progressive Embedding
[Shen et al. 2019]
edge collapse
edge insertion
Schnyder Embeddings
[Schnyder 1990]
linear running time
w
$$b_i = \left(\htmlData{fragment-index=94}{\frac{1}{|T|}}\sum_{t\in \red{R_i^{\rr}}} 1, \htmlData{fragment-index=94}{\frac{1}{|T|}}\sum_{t\in \green{R_i^{\gg}}} 1, \htmlData{fragment-index=94}{\frac{1}{|T|}}\sum_{t\in \blue{R_i^{\bb}}} 1\right)$$
$$b_i = \left(\frac{1}{|\mathbf{w}|}\sum_{t\in \red{R_i^{\rr}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \green{R_i^{\gg}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \blue{R_i^{\bb}}} w_t \right)$$
complex boundary
holes
Weighted Schnyder Embeddings
[Dhandapani 2010]
$$\mathbf{w} = \begin{bmatrix} \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00} \end{bmatrix} $$
$$\phantom{\mathbf{w} =} \begin{matrix} w_0\\ w_1\\ w_2\\ w_3\\ w_4\\ w_5\\ w_6\\ w_7\\ w_8\\ w_9\\ w_{10}\\ w_{11}\\ w_{12}\\ w_{13}\\ w_{14} \end{matrix} $$
linear time
$$b_i = \left(\frac{1}{|T|}\sum_{t\in \red{R_i^{\rr}}} 1, \frac{1}{|T|}\sum_{t\in \green{R_i^{\gg}}} 1, \frac{1}{|T|}\sum_{t\in \blue{R_i^{\bb}}} 1\right)$$
$$b_i = \left(\frac{1}{|\mathbf{w}|}\sum_{t\in \red{R_i^{\rr}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \green{R_i^{\gg}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \blue{R_i^{\bb}}} w_t \right)$$
Transformation
Weights Space
$$\mathbf{w} = \begin{bmatrix} \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00}\\ \phantom{-0.00} \end{bmatrix} $$
Barycentric Coordinates Space
$$L \htmlData{fragment-index=50}{\in \{0,1\}^{N\times N}}$$
$$L^{-1} \htmlData{fragment-index=65}{\in \{-1,0,1\}^{N\times N}}$$
$$b_i = \left(\frac{1}{|\mathbf{w}|}\sum_{t\in \red{R_i^{\rr}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \green{R_i^{\gg}}} w_t, \frac{1}{|\mathbf{w}|}\sum_{t\in \blue{R_i^{\bb}}} w_t \right)$$
Naïve Approach
flipped triangles
$$L$$
$$\begin{pmatrix} \red{-1.04}\\ 0.64\\ \red{-1.73}\\ \vdots \\ 0.98\\ \red{-0.32}\\ 0.80 \end{pmatrix} $$
$$\begin{pmatrix} \green{1}\\ 0.64\\ \green{1}\\ \vdots \\ 0.98\\ \green{1}\\ 0.80 \end{pmatrix} $$
$$L^{-1}$$
Weight Space
$$\delta_{\text{unflip}} = \frac{1}{2}\left(\sqrt{\operatorname{tr}^2A-4\det A}-\operatorname{tr} A\right)$$
$$\delta_{\text{fully extend}} = \max\left\{\begin{aligned} \max\{b^{\rr}_{t^{\gg}}, b^{\rr}_{t^{\bb}}\}-b^{\rr}_{t^{\rr}},\\ \max\{b^{\gg}_{t^{\rr}}, b^{\gg}_{t^{\bb}}\}-b^{\gg}_{t^{\gg}},\\ \max\{b^{\bb}_{t^{\rr}}, b^{\bb}_{t^{\gg}}\}-b^{\bb}_{t^{\bb}}\phantom{,} \end{aligned}\right\}$$
Better Strategy
Ours
flipped triangles
$$L$$
$$\begin{pmatrix} -1.04\\ \red{0.64}\\ -1.73\\ \vdots \\ 0.98\\ \red{-0.32}\\ 0.80 \end{pmatrix} $$
$$\begin{pmatrix} -1.04\\ \red{0.64+\delta_i}\\ -1.73\\ \vdots \\ 0.98\\ \red{-0.32+\delta_k}\\ 0.80 \end{pmatrix} $$
$$L^{-1}$$
repeat until all triangles are unfliped
Results
lower is better
Ours
Input
Output
Exact Arithmetic
$$L \in \{0,1\}^{N\times N}$$
$$L \in \Z^{N\times N}$$
$$L^{-1} \in \{-1,0,1\}^{N\times N}$$
$$L^{-1} \in \Z^{N\times N}$$
Weights Space
$$\R$$
$$\Z$$
Barycentric Coordinates Space
$$\R$$
$$\Z$$
Conclusion
Input
Output
✔
Pros
Efficent Embeddings
in Exact Arithmetic
✘
Cons
Boundary
is triangle
or not controllable
Works only with
triangle
meshes
Thank You!
Code available (soonâ„¢)
Code available
(soonâ„¢)
https://cybertron.cg.tu-berlin.de/projects/EEEA/