1: % Relaxed Scheduling paper
2: % First version by Herbert and Alper, August 2002.
3:
4: \documentclass[runningheads]{llncs}
5: \usepackage{epsfig}
6: %\usepackage[acmtitlespace,nocopyright]{acmnew}
7: %\usepackage{times}
8: \usepackage{amsmath}
9: \usepackage{amssymb}
10:
11: \newcommand{\denselist}{\itemsep 0pt\parsep=1pt\partopsep 0pt}
12: \newcommand{\mm}[1] {\ifmmode{#1}\else{\mbox{\(#1\)}}\fi}
13: \newcommand{\spc} {\makebox[1em]{ }}
14: \newcommand{\ceiling}[1] {{\left\lceil #1 \right\rceil}}
15: \newcommand{\floor}[1] {{\left\lfloor #1 \right\rfloor}}
16: \newcommand{\scalprod}[2] {{\langle #1 , #2 \rangle}}
17:
18: %\newcommand{\proof}{\noindent{\sc Proof.~}}
19: \newcommand{\eop}{\hbox{}\nobreak\hfill\quad\usebox{\smallProofsym}\bigskip} %
20: \newsavebox{\smallProofsym} % smallproofsymbol
21: \savebox{\smallProofsym} %
22: { %
23: \begin{picture}(6,6) %
24: \put(0,0){\framebox(6,6){}} %
25: \put(0,2){\framebox(4,4){}} %
26: \end{picture} %
27: } %
28:
29: %%% This makes the legend font small
30: %\makeatletter
31: %\long\def\@makecaption#1#2{%
32: % \vskip\abovecaptionskip
33: % \sbox\@tempboxa{\small #1: #2}%
34: % \ifdim \wd\@tempboxa >\hsize
35: % \small #1: #2\par
36: % \else
37: % \global \@minipagefalse
38: % \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
39: % \fi
40: % \vskip\belowcaptionskip}
41: %\makeatother
42:
43: \newcommand{\Rspace} {\mm{{\mathbb R}}}
44: \newcommand{\Fset} {\mm{\cal F}}
45: \newcommand{\grad}[1] {\mm{\rm grad\,}{#1}}
46: \newcommand{\Eps} {\mm{\varepsilon}}
47:
48: \newcommand{\capsp} {{\; \cap \;}}
49: \newcommand{\cupsp} {{\; \cup \;}}
50: \newcommand{\norm}[1] {\mm{\|{#1}\|}}
51: \newcommand{\dist}[2] {\mm{\|{#1}-{#2}\|}}
52: \newcommand{\wdist}[1] {\mm{f_{#1}}}
53: \newcommand{\aff}[1] {\mm{\rm aff\,}{#1}}
54: \newcommand{\conv}[1] {\mm{\rm conv\,}{#1}}
55: \newcommand{\skin}[1] {\mm{\rm skin\,}{#1}}
56: \newcommand{\body}[1] {\mm{\rm body\,}{#1}}
57: \newcommand{\env}[1] {\mm{\rm env\,}{#1}}
58: \newcommand{\diff} {\mm{\rm d}}
59:
60: \newcommand{\Remark}[1] {{\sf [#1]}}
61:
62: \newif\ifpdf\ifx\pdfoutput\undefined\pdffalse\else\pdfoutput=1\pdftrue\fi
63: \newcommand{\pdfgraphics}{\ifpdf\DeclareGraphicsExtensions{.pdf,.jpg}\else\fi}
64:
65: \mainmatter
66:
67: \title{Relaxed Scheduling in\\ Dynamic Skin Triangulation
68: \thanks{Research of the two authors is supported by
69: NSF under grant CCR-00-86013.}}
70:
71: %\titlerunning{Lecture Notes in Computer Science}
72:
73: \author{
74: %%Ho-Lun Cheng\thanks{Department of Computer Science, National
75: %% University of Singapore, Singapore.},
76: Herbert Edelsbrunner \inst{1}
77: \and
78: Alper \"{U}ng\"{o}r \inst{2}
79: }
80:
81: \institute{
82: Department of Computer Science,
83: Duke University, Durham, NC 27708, and Raindrop Geomagic,
84: Research Triangle Park, NC 27709,\\
85: \email{edels@cs.duke.edu} \vspace{.07in}
86: \and
87: Department of Computer Science,
88: Duke University, Durham, NC 27708,\\
89: \email{ungor@cs.duke.edu}
90: }
91:
92: \begin{document}
93: \pdfgraphics
94:
95: \maketitle
96:
97: \begin{abstract}
98: {\rm
99: We introduce relaxed scheduling as a paradigm for
100: mesh maintenance and demonstrate its applicability to
101: triangulating a skin surface in $\Rspace^3$.
102: }
103: \end{abstract}
104:
105: \vspace{0.1in}
106: {\small
107: \noindent{\bf Keywords.}
108: Computational geometry, adaptive meshing, deformation, scheduling.
109: }
110:
111: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112: \section{Introduction}
113: \label{sec1}
114: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115:
116: In this paper, we describe a relaxed scheduling paradigm for operations
117: that maintain the mesh of a deforming surface.
118: We prove the correctness of this paradigm for skin surfaces.
119:
120: \paragraph{Background.}
121: In 1999, Edelsbrunner \cite{Ede99} showed how a finite collection of spheres
122: or weighted points can be used to construct a $C^1$-continuous surface
123: in $\Rspace^3$.
124: It is referred to as the \emph{skin} or the \emph{skin surface} of the collection.
125: If the spheres represent the atoms of a molecule then the appearance of that
126: surface is similar to the molecular surface used in
127: structural biology \cite{Con83,LeRi71}.
128: The two differ in a number of details, one being that the former uses
129: hyperboloids to blend between sphere patches while the latter uses tori.
130: The skin surface is not $C^2$-continuous,
131: but its maximum normal curvature, $\kappa$, is continuous.
132: This property is exploited by Cheng {\em et al.}\ \cite{CDES01}, who describe
133: an algorithm that constructs a triangular mesh representing the skin surface.
134: In this mesh, the sizes of edges and triangles are inversely proportional
135: to the maximum normal curvature.
136: %
137: The main idea of the algorithm is to maintain the mesh while gradually growing
138: the skin surface to the desired shape,
139: as illustrated in Figure \ref{fig:deformation}.
140: \begin{figure}[hbt]
141: \vspace*{0.1in}
142: \centering
143: \centerline{
144: \includegraphics[height=1.6in]{Figs/surfaceA} \hspace{.15in}
145: \includegraphics[height=1.6in]{Figs/surfaceB} }
146: \caption{The mesh is maintained as the surface on the left grows
147: into that on the right}
148: \label{fig:deformation}
149: \end{figure}
150: The algorithm thus reduces the construction to a sequence of restructuring operations.
151: There are \emph{edge flips}, which maintain the mesh as the restricted Delaunay
152: triangulation of its vertices,
153: \emph{edge contractions} and \emph{vertex insertions},
154: which maintain a sampling whose local density is proportional to the maximum normal curvature,
155: and \emph{metamorphoses}, which adjust the mesh connectivity to
156: reflect changes in the surface topology.
157: %
158: Some of these operations are easier to schedule than others,
159: and the most difficult ones are the edge contractions and vertex insertions.
160: They depend on how the sampled points move with the surface as it deforms.
161: The quality of the mesh is guaranteed by maintaining size constraints
162: for all edges and triangles.
163: When an edge gets too short we contract it, and when a triangle gets too large
164: we insert a point near its circumcenter.
165: Both events can be recognized by finding roots of fairly involved functions.
166: Scheduling edge contractions and vertex insertions thus becomes a bottleneck,
167: both in terms of the robustness and the running time of the algorithm.
168:
169: \paragraph{Result.}
170: In this paper, we study how fast edges and triangles vary their size,
171: and we use that knowledge to schedule these elements in a relaxed fashion.
172: In other words, we do not determine when exactly an element violates
173: its size constraint, but we catch it before the violation happens.
174: Of course, the danger is now that we either update perfectly well-shaped
175: elements or we waste time by checking elements unnecessarily often.
176: To avoid the former, we introduce intervals or gray zones in which
177: the shapes of the elements are neither good nor unacceptably bad.
178: To avoid unnecessarily frequent checking, we prove lower bounds on how long an
179: element stays in the gray zone before its shape becomes unacceptably bad.
180: These bounds are different for edges and for triangles.
181: %
182: Consider first an edge $uv$.
183: Let $R = \dist{u}{v} / 2$ be its half-length and
184: $\varrho = 1 / \max \{\kappa(u), \kappa(v)\}$ the smaller radius of curvature
185: at its endpoints.
186: We use judiciously chosen constants $C$, $Q_0$ and $Q_1$ and call the edge
187: $$
188: \left . \begin{array}{l}
189: \mbox{\it acceptable} \\ \mbox{\it borderline} \\ \mbox{\it unacceptable}
190: \end{array} \right \}
191: \mbox{\rm ~~~~if~~~~}
192: \left \{ \begin{array}{l}
193: C/Q_0 < R/\varrho , \\
194: C/Q_1 < R/\varrho \leq C/Q_0 , \\
195: ~~~~~~~~~~~\, R/\varrho \leq C/Q_1 .
196: \end{array} \right .
197: $$
198: The middle interval is what we called the gray zone above.
199: Assuming $uv$ is acceptable, we prove it will not become unacceptable within
200: a time interval of duration $\Delta t = (2 \theta - \theta^2) \varrho^2$, where
201: \begin{eqnarray*}
202: \theta ~=~ \frac{R Q_1 - C \varrho}{R Q_1 + C \varrho} .
203: \end{eqnarray*}
204: In the worst case, $R$ is barely larger than $C \varrho / Q_0$, so we have
205: $\theta > (Q_1 - Q_0) / (Q_1 + Q_0)$ as a worst case bound.
206: We will see that $C = 0.06$, $Q_0 = 1.6$ and $Q_1 = 2.3$ are feasible choices for
207: the constants, and that for these we get $\theta > 0.179 \ldots$ and
208: $\Delta t / \varrho^2 > 0.326 \ldots$.
209: %
210: Consider next a triangle $uvw$.
211: Let $R$ be the radius of its circumcircle, and
212: $\varrho = 1 / \max \{ \kappa(u), \kappa(v), \kappa(w) \}$ the smallest
213: radius of curvature at its vertices.
214: We call $uvw$
215: $$
216: \left . \begin{array}{l}
217: \mbox{\it acceptable} \\ \mbox{\it borderline} \\ \mbox{\it unacceptable}
218: \end{array} \right \}
219: \mbox{\rm ~~~~if~~~~}
220: \left \{ \begin{array}{l}
221: ~~~~~~~~~~ R/\varrho < C Q_0 , \\
222: C Q_0 \leq R/\varrho < CQ_1 , \\
223: C Q_1 \leq R/\varrho .
224: \end{array} \right .
225: $$
226: Assuming $uvw$ is acceptable, we prove it will not become unacceptable within
227: a time interval of duration $\Delta t = (2 \theta - \theta^2) \varrho^2$, where
228: \begin{eqnarray*}
229: \theta ~=~ 1 - \sqrt[4]{R / (C Q_1 \varrho)} .
230: \end{eqnarray*}
231: In the worst case, $R$ is barely smaller than $C Q_0 \varrho$, so we have
232: $\theta > 1 - \sqrt[4]{Q_0 / Q_1}$.
233: For the above values of $C$, $Q_0$ and $Q_1$, this gives
234: $\theta > 0.086\ldots$ and $\Delta t / \varrho^2 > 0.165\ldots$.
235: It seems that triangles can get out of shape about twice as fast as edges,
236: but we do not know whether this is really the case because our bounds are not tight.
237:
238: \paragraph{Outline.}
239: Section \ref{sec2} reviews skin surfaces and the dynamic triangulation algorithm.
240: Section \ref{sec3} introduces relaxed scheduling as a paradigm to keep track of
241: moving or deforming data.
242: Section \ref{sec4} analyzes the local distortion within the mesh
243: and derives the formulas needed for the relaxed scheduling paradigm.
244: Section \ref{sec5} concludes the paper.
245:
246:
247: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
248: \section{Preliminaries}
249: \label{sec2}
250: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
251:
252: In this section, we introduce the necessary background from \cite{Ede99},
253: where skin surfaces were originally defined, and from \cite{CDES01},
254: where the meshing algorithm for deforming skin surfaces was described.
255:
256: \paragraph{Skin surfaces.}
257: We write $S_i = (z_i, r_i)$ for the sphere with center $z_i \in \Rspace^3$
258: and radius $r_i$ and think of it as the zero-set of the weighted square
259: distance function $\wdist{i}: \Rspace^3 \rightarrow \Rspace$ defined by
260: $\wdist{i} (x) = \dist{x}{z_i}^2 - r_i^2$.
261: The square radius is a real number and the radius is either a
262: non-negative real or a non-negative multiple of the imaginary unit.
263: We know how to add functions and how to multiply them by scalars.
264: For example, if we have a finite collection of spheres $S_i$ and
265: scalars $\sum \gamma_i = 1$ then
266: $\sum \gamma_i \wdist{i}$ is again a weighted square distance function,
267: and we denote by $S = \sum \gamma_i S_i$ the sphere that defines it.
268: The \emph{convex hull} of the $S_i$ is the set of such spheres obtained
269: using only non-negative scalars:
270: \begin{eqnarray*}
271: \Fset ~=~ \left\{ \sum \gamma_i S_i \mid
272: \sum \gamma_i = 1 \mbox{\rm ~and~}
273: \gamma_i \geq 0, \forall i \right\} .
274: \end{eqnarray*}
275: We also shrink spheres and write $\sqrt{S} = (z, r/\sqrt{2})$,
276: which is the zero-set of $2 \wdist{} - \wdist{} (z)$.
277: The \emph{skin surface} defined by the $S_i$
278: is then the envelope of the spheres in the convex hull, all scaled down by
279: a factor $1/\sqrt{2}$, and we write this as $F = \env{\sqrt{\Fset}}$.
280: Equivalently, it is the zero-set of the point-wise minimum over all functions
281: $2 \wdist{} - \wdist{} (z)$, over all $S \in \Fset$,
282: where $\wdist{}$ is the weighted square distance function defined by $S$.
283: At first glance, this might seem like an unwieldy surface, but we can
284: completely describe it as a collection of quadratic patches obtained by
285: decomposing the surface with what we call the mixed complex.
286: Its cells are Minkowski sums of Voronoi vertices, edges, polygons and
287: polyhedra with their dually corresponding
288: Delaunay tetrahedra, triangles, edges and vertices,
289: all scaled down by a factor $1/2$.
290: Instead of formally describing this construction, we illustrate it with a
291: two-dimensional example in Figure \ref{fig:mixed}.
292: \begin{figure}[hbt]
293: \vspace*{0.1in}
294: \centering
295: \centerline{\includegraphics[height=2.0in]{Figs/mixed}}
296: \caption{The mixed complex decomposes the skin curve and the area it bounds}
297: \label{fig:mixed}
298: \end{figure}
299: Depending on the dimension of the contributing Delaunay simplex,
300: we have four types of mixed cells.
301: Because of symmetry, we have only two types of surface patches, namely pieces
302: of spheres and of hyperboloids of revolution, which we frequently put in
303: Standard Form:
304: \begin{eqnarray}
305: \xi_1^2 + \xi_2^2 + \xi_3^2 ~&=&~ R^2 , \label{eqn:standardsphere} \\
306: \xi_1^2 + \xi_2^2 - \xi_3^2 ~&=&~ \pm R^2 , \label{eqn:standardhyperboloid}
307: \end{eqnarray}
308: where the plus sign gives the one-sheeted hyperboloid and the minus sign
309: gives the two-sheeted hyperboloid.
310:
311:
312: \paragraph{Meshing.}
313: The meshing algorithm triangulates the skin surface using edges and triangles
314: whose sizes adapt to the local curvature. Let us be more specific.
315: At any point $x \in F$, let $\kappa (x)$ be the maximum normal curvature at $x$.
316: In contrast to other notions of curvature, $\kappa$ is continuous over
317: the skin surface and thus amenable to controlling the local size of the mesh.
318: Call $\varrho (x) = 1/ \kappa (x)$ the \emph{local length scale} at $x$.
319: The vertices of the mesh are points on the surface.
320: For an edge $uv$, let $R_{uv} = \dist{u}{v} /2$ be half its length,
321: and for a triangle $uvw$, let $R_{uvw}$ be the radius of its circumcircle.
322: The algorithm obeys the Lower and Upper Size Bounds that require
323: edges not be too short and triangles not be too large:
324: \begin{description}\denselist
325: \item[{\rm [L]}] $R_{uv} / \varrho_{uv} ~>~ C/Q$ for every
326: edge $uv$, and
327: \item[{\rm [U]}] $R_{uvw} / \varrho_{uvw} ~<~ CQ$ for every triangle $uvw$,
328: \end{description}
329: where $\varrho_{uv}$ is the larger of $\varrho (u)$ and $\varrho (v)$,
330: $\varrho_{uvw}$ is the minimum of $\varrho (u)$, $\varrho (v)$ and $\varrho (w)$,
331: and $C$ and $Q$ are judiciously chosen positive constants.
332:
333: The particular algorithm we consider in this paper is dynamic,
334: in the sense that it maintains the mesh while the surface deforms.
335: We can use this algorithm to construct a mesh by starting with the empty surface
336: and growing it into the desired shape.
337: This is precisely the scenario in which our results apply.
338: To model the growth process, we use a time parameter and
339: let $S_i (t) = (z_i, \sqrt{r_i^2 + t})$ be the $i$-th sphere
340: at time $t \in \Rspace$.
341: We start at $t = - \infty$, at which time all radii are imaginary
342: and the surface is empty, and we end at $t = 0$,
343: at which time the surface has the desired shape.
344: This particular growth model is amenable to efficient computation because
345: it does not affect the mixed complex, which stays the same at all times.
346: Each patch of the surface sweeps out its mixed cell.
347: At any moment, we have a collection of points sampled on the surface,
348: and the mesh is the restricted Delaunay triangulation of these points,
349: as defined in \cite{Che93,EdSh97}.
350: Given the surface and the points, this triangulation is unique.
351: As the surface deforms, we move the points with it and update the mesh
352: as required.
353: From global and less frequent to local and more frequent these operations are:
354: \begin{enumerate}\denselist
355: \item topology changes that affect the local and global connectivity
356: of the surface and the mesh,
357: \item edge contractions and vertex insertions that locally remove or add
358: points to coarsen or refine the mesh, and
359: \item edge flips that locally adjust the mesh without affecting the
360: point distribution or the surface topology.
361: \end{enumerate}
362: For the particular growth model introduced above, the topology changes
363: are easily predicted using the filtration of alpha complexes as described
364: in \cite{EdMu94}.
365: To predict where and when we need to coarsen or refine the mesh is more
366: difficult and depends on how the points move to follow
367: the deforming surface.
368: This is the topic of this paper and will be discussed in detail in
369: the subsequent sections.
370: Finally, edge flips are relatively robust operations, which can be
371: performed in a lazy manner, without any sophisticated scheduling mechanism.
372:
373: \paragraph{Point motion.}
374: To describe the motion of the points sampled on the skin surface,
375: it is convenient to consider the trajectory of the surface over time.
376: Note that the $i$-th sphere at time $t$ is $S_i (t) = f_i^{-1} (t)$.
377: Similarly, the convex combination defined by coefficients $\gamma_i$
378: at time $t$ is $S(t) = f^{-1} (t)$, where $f = \sum \gamma_i f_i$.
379: We can represent the skin surface in the same manner by introducing
380: the function $g: \Rspace^3 \rightarrow \Rspace$ defined as the point-wise
381: minimum of the functions representing the shrunken spheres.
382: More formally,
383: $g(x) = \min \{ 2 f(x) - f(z) \}$, where the minimum is taken over all
384: spheres $S \in \Fset$ and $z$ is the center of $S$.
385: The skin surface at time $t$ is then $F(t) = g^{-1} (t)$,
386: so it is appropriate to call the graph of $g$ the \emph{trajectory} of
387: the skin surface.
388: %
389: We see that growing the surface in time is equivalent to sweeping out its
390: trajectory with a three-dimensional space that moves through time.
391: It is natural to let the points sampled on $F(t)$ move normal to the surface.
392: For a point $x = [\xi_1, \xi_2, \xi_3]^T$ on a sphere or hyperboloid
393: in Standard Form $\xi_1^2 + \xi_2^2 \pm \xi_3^2 = \pm R^2$,
394: the gradient is $\nabla g_x = 2 [\xi_1, \xi_2, \pm \xi_3]^T$.
395: The point $x$ moves in the direction of the gradient with a speed that is
396: inversely proportional to the length.
397: In other words, the velocity vector at a point $x$ is
398: \begin{eqnarray*}
399: \dot{x} ~=~ \frac{\diff x}{\diff t}
400: ~=~ \frac{\nabla g_x}{\norm{\nabla g_x}^2}
401: ~=~ \frac{\nabla g_x}{4 \norm{x}^2} .
402: \end{eqnarray*}
403: The speed of $x$ is therefore $\norm{\dot{x}} = 1 / (2 \norm{x})$.
404: The implementation of the relaxed scheduling paradigm crucially depends on the
405: properties of this motion.
406: %
407: We use the remainder of this section to describe a symmetry property of the
408: velocity vectors that is instrumental in the analysis of the motion.
409: Consider two mixed cells that share a common face.
410: The Standard Forms of the two corresponding surface patches differ by
411: a single sign, and so do the gradients.
412: If we reflect points in one cell across the plane of the common face into
413: the other cell then we preserve the velocity vector, as illustrated in
414: Figure \ref{fig:reflection}.
415: \begin{figure}[hbt]
416: \vspace*{0.1in}
417: \centering
418: \centerline{\includegraphics[height=1.9in]{Figs/reflection}}
419: \caption{Velocity vectors of a shrinking circle on the left and
420: of a hyperbola on the right.
421: The right portion of the edge $uv$ is reflected across
422: face shared by the two mixed cells}
423: \label{fig:reflection}
424: \end{figure}
425: We use this observation about adjacent mixed cells to relate the
426: velocity vectors of points in possibly non-adjacent cells.
427: Consider points $u$ and $v$ and let $x_1, x_2, \ldots, x_k$
428: be the intersection points with faces of mixed cells encountered as we
429: travel along the edge from $u$ to $v$.
430: Starting at $i = k$, we work backward and reflect the portion of
431: the edge beyond $x_i$ across the face that contains $x_i$.
432: In the general case, this portion is a polygonal path that leads from $x_i$
433: to the possibly multiply reflected image $\overline{v}$ of $v$.
434: After $k$ reflections we have a polygonal path from $u$ to the final $\overline{v}$.
435: The length of the path is equal to the length of the initial edge,
436: and hence $\dist{u}{\overline{v}} \leq \dist{u}{v}$.
437: We note that $\overline{v}$ does not necessarily lie in the mixed cell of $u$,
438: but its velocity vector --- which is the same as that of $v$ --- is consistent
439: with the family of spheres or hyperboloids that sweeps out that mixed cell.
440: In other words, the motion of $u$ and $\overline{v}$ is determined by
441: the same quadratic function.
442:
443:
444: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445: \section{Relaxed Scheduling}
446: \label{sec3}
447: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448:
449: In this section, we introduce relaxed scheduling as a paradigm for maintaining
450: moving or deforming data.
451: It is designed to cope with situations in which the precise moment for an
452: update is either not known or too expensive to compute.
453:
454: \paragraph{Correctness constraints.}
455: In the context of maintaining the triangle mesh of a skin surface,
456: we use relaxed scheduling to determine when to contract an edge and
457: when to insert a new vertex.
458: Since determining when the size of an edge or triangle stops to be acceptable
459: is expensive, we introduce a gray zone between acceptability and unacceptability
460: and update an element when we catch it inside that gray zone.
461: That this course of action is even conceivable is based on the correctness
462: proof of the dynamic skin triangulation algorithm for a range of its
463: controlling parameters.
464: The first three conditions defining that range refer to $\Eps$, $C$ and $Q$.
465: We have seen the latter two before in the formulation of the two
466: Size Bounds [L] and [U]:
467: $C$ controls how well the mesh approximates the surface, and $Q$ controls the
468: quality of the mesh.
469: Both are related to $\Eps$, which quantifies the sampling density.
470: \begin{description}
471: \item[{\rm (I)}] We require $0 < \Eps \leq \Eps_0$,
472: where $\Eps_0 = 0.279\ldots$ is a root of
473: $2 \cos ( \arcsin \frac{2 \Eps}{1 - \Eps} + \arcsin \Eps )
474: - \frac{2 \Eps}{1 - \Eps} = 0$.
475: \item[{\rm (II)}] $Q^2 - 4CQ > 2$.
476: \item[{\rm (III)}] $\frac{\delta^2}{1+\delta^2} - \frac{\delta^2}{4} > C^2 Q^2$,
477: where $\delta = \Eps - \frac{2C(\Eps+1)}{Q+2C}$.
478: \end{description}
479: It is computationally efficient to select the loosest possible bound
480: for the sampling density: $\Eps = \Eps_0$.
481: Then we get $\delta = 0.166 \ldots$ and, as noted in \cite{CDES01},
482: we may choose $C = 0.08$ and $Q = 1.65$ to satisfy Conditions (I) to (III).
483: Alternatively, we may lower $C$ to $0.06$ and are then free to pick $Q$ anywhere
484: inside the interval from $1.6$ to $2.3$.
485: The two choices of parameters are marked by a hollow dot and a white bar
486: in Figure \ref{fig:chart}.
487: %
488: The last two conditions refer to $h$, $\ell$ and $m$.
489: All three parameters control how metamorphoses that add or remove a handle
490: are implemented.
491: Since the curvature blows up at the point and time of a topology change,
492: we use a special and relatively coarse sampling inside spherical neighborhoods of
493: such points.
494: Assuming a unit radius of such neighborhoods, we turn the special sampling
495: strategy on and off when the skin surface enters and leaves the smaller spherical
496: neighborhood of radius $h < 1.0$.
497: If the skin enters as a two-sheeted hyperboloid we triangulate it using two
498: $\ell$-sided pyramids inside the unit sphere neighborhood.
499: If it enters as a one-sheeted hyperboloid we triangulate it as an $m$-sided
500: drum with a waist.
501: \begin{figure}[hbt]
502: \vspace*{0.1in}
503: \centering
504: \centerline{\includegraphics[height=1.1in]{Figs/DV}}
505: \caption{The triangulation of a two-sheeted and a one-sheeted hyperboloid
506: inside a unit neighborhood sphere around their apices}
507: \label{fig:DV}
508: \end{figure}
509: The conditions are stated in terms of the edges $ab$, $bc$ and $wx$ and the
510: triangles $abc$ and $vwx$, as defined in Figure \ref{fig:DV}.
511: Their sizes can all be expressed in terms of $h$, $\ell$ and $m$,
512: and we refer to \cite[Section 10]{CDES01} for the formulas.
513: \begin{description}\denselist
514: \item[{\rm (IV)}] $R_{ab}, R_{bc}, R_{wx} > C/Q$.
515: \item[{\rm (V)}] $R_{abc}, R_{vwx} < \min \{ Q, 2/Q \} Ch$.
516: \end{description}
517:
518: \paragraph{Quality buffer.}
519: The key technical insight about the dynamic skin triangulation algorithm is that
520: we can find constants $\Eps$, $C$, $h$, $\ell$, $m$ and $Q_0 < Q_1$
521: such that Conditions (I) to (V) are satisfied for all $Q \in [Q_0, Q_1]$.
522: This is illustrated in Figure \ref{fig:chart},
523: which shows the feasible region of points $(C, Q)$ assuming fixed values
524: for $\Eps$, $h$, $\ell$ and $m$.
525: \begin{figure}[hbt]
526: \vspace*{0.1in}
527: \centering
528: \centerline{\includegraphics[height=2.3in]{Figs/cond2345}}
529: \caption{The shaded feasible region of parameter pairs $(C, Q)$
530: for $\Eps = \Eps_0$, $h=0.993$, $\ell=6$ and $m=80$.
531: For $C = 0.06$ this region contains the interval $Q \in [1.6, 2.3]$.
532: The bounding curves are labeled by the corresponding constraints.
533: Redundant constraints are not shown}
534: \label{fig:chart}
535: \end{figure}
536: Instead of fixing $Q$ and contracting an edge when its size-scale ratio reaches
537: $C/Q$, we suggest to contract the edge any time its ratio is in the interval
538: $(C/Q_1, C/Q_0]$.
539: After the ratio enters this interval at $C/Q_0$ it can either leave again at $C/Q_0$
540: or it can get contracted, but it is not allowed to reach $C/Q_1$.
541: Vertex insertions are treated symmetrically.
542: Specifically, a triangle is removed by adding a vertex near its circumcenter,
543: and this can happen at any moment its size-scale ratio is in $[CQ_0, CQ_1)$.
544: The ratio can enter and leave the interval at $CQ_0$, but it is not allowed
545: to reach $CQ_1$.
546: We call $(C/Q_1, C/Q_0]$ and $[CQ_0, CQ_1)$ the \emph{lower} and
547: \emph{upper size buffers}.
548: The quality of the mesh is guaranteed because all edges and triangles satisfy
549: the two Size Bounds [L] and [U] for $Q = Q_1$.
550: Symmetrically, the correctness of the triangulation is guaranteed because
551: edge contractions and vertex insertions are executed only if the same bounds
552: are violated for $Q = Q_0$.
553:
554: \paragraph{Early warning.}
555: Recall that an edge is borderline iff its size-scale ratio is contained in the
556: lower size buffer, and it becomes unacceptable at the moment it reaches $C/Q_1$.
557: Similarly, a triangle is borderline iff its size-scale ratio is contained in the
558: upper size buffer, and it becomes unacceptable at the moment it reaches $CQ_1$.
559: The relaxed scheduling paradigm depends on an early warning algorithm that reports
560: an element before it becomes unacceptable.
561: That algorithm might err and produce false positives, but it may not let any
562: element slip by and become unacceptable.
563: False positives cost time but do not cause any harm, while unacceptable elements
564: compromise the correctness of the meshing algorithm.
565: In Figure \ref{fig:buffers}, false positives are marked by hollow dots and deletions
566: are marked by filled black dots.
567: \begin{figure}[hbt]
568: \vspace*{0.1in}
569: \centering
570: \centerline{\includegraphics[height=2.3in]{Figs/buffers}}
571: \caption{The two buffers are shaded and the two curves are possible
572: developments of size-scale ratios for an edge (dashed)
573: and a triangle (dotted).
574: The dots indicate moments at which the elements are tested
575: and finally removed}
576: \label{fig:buffers}
577: \end{figure}
578: All false positive tests of edges are represented by dots above the lower
579: size buffer.
580: To get a correct early warning algorithm we just need to test each edge
581: often enough so that its size-scale ratio cannot cross the entire lower size buffer
582: between two contiguous tests.
583: The symmetric rule applies to triangles.
584: Bounds on the amount of time it takes to cross the size buffers will be
585: given in Section \ref{sec4}.
586:
587: Note that we have selected the parameters to obtain a fairly long
588: interval $[Q_0, Q_1]$.
589: It is not clear whether or not this is a good idea or whether a shorter interval
590: would lead to a more efficient algorithm.
591: An argument \emph{for} a long interval is that the implied large size buffers
592: let us get by with less frequent and therefore fewer tests.
593: An argument \emph{against} a long interval is that large size buffers are more
594: likely to cause the deletion of elements that are on their way to better
595: health but did not recover fast enough and get caught before they could
596: leave the buffers.
597: It might be useful to optimize the length of the intervals through
598: experimentations after implementing the relaxed schedule as part of the
599: skin triangulation algorithm.
600:
601:
602: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
603: \section{Analysis}
604: \label{sec4}
605: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
606:
607: In this section, we derive lower bounds on the amount of time it takes
608: for an edge or triangle to change its size by more than some threshold value.
609: From these we will derive lower bounds on the time
610: it takes an element to pass through the entire size buffer.
611: We begin by studying the motion of a single point.
612:
613: \paragraph{Traveling point.}
614: We recall that the speed of a point $u$ on the skin surface is
615: $\norm{\dot{u}} = 1/(2\norm{u})$,
616: assuming we write the patch that contains it in Standard Form.
617: The distance traveled by $u$ in a small time interval is therefore maximized if
618: it heads straight toward the origin, which for example happens if
619: $u$ lies on a shrinking sphere.
620: Starting the motion at point $u_0$, which is the point $u$
621: at time $t_0$, we get
622: \begin{eqnarray}
623: \norm{u} ~=~ \sqrt{ \norm{u_0}^2 - (t - t_0) } ,
624: \label{eqn:norm}
625: \end{eqnarray}
626: for the point $u$ at time $t$.
627: This implies $t - t_0 = \norm{u_0}^2 - \norm{u}^2$,
628: so we see that $u$ reaches the origin at time $t = t_0 + \norm{u_0}^2$.
629: More generally, we reach the point $u_1 = (1-\theta) u_0$ between $u_0$
630: and the origin at time
631: $t_1 = t_0 + \norm{u_0}^2 - \norm{u_1}^2 = t_0 + (2 \theta - \theta^2) \norm{u_0}^2$.
632: Since the above analysis assumes the fastest way $u$ can possibly travel,
633: this implies that within an interval of duration $\Delta t = t_1 - t_0$,
634: the point $u_0$ cannot travel further than a distance
635: $\theta \varrho (u_0)$.
636: We use $\theta$ as a convenient intermediate quantity that gives us
637: indirect access to the important quantity, which is $\Delta t$.
638:
639: Recall from the Curvature Variation Lemma of \cite{CDES01}
640: that the difference in length scale between two points is at most
641: the Euclidean distance.
642: If that distance is $\dist{u_0}{u_1} \leq \theta \varrho (u_0)$
643: then the length scale at $u_1$ is between $1-\theta$ and $1+\theta$
644: times the length scale at $u_0$.
645: It follows that if we travel for a duration
646: $\Delta t = (2 \theta - \theta^2) \varrho^2 (u_0)$,
647: we can change the length scale only by a factor
648: \begin{eqnarray}
649: 1 - \theta ~\leq~ \frac{\varrho (u_1)}{\varrho (u_0)}
650: ~<~ 1 + \theta .
651: \label{eqn:length_scale}
652: \end{eqnarray}
653: The lower bound is tight, and the upper bound cannot be reached because
654: the distance $\theta \varrho^2 (u_0)$ from $u_0$ can only be achieved
655: if the length scale shrinks.
656: %
657: We will also be interested in the integral of $1 / (2 \norm{u}^2)$,
658: which is again maximized if $u$ moves straight toward the origin:
659: \begin{eqnarray*}
660: \int_{t_0}^{t_1} \frac{\diff t}{2 \norm{u}^2}
661: ~&\leq&~ \int_{t_0}^{t_1} \frac{\diff t}{2 \norm{u_0}^2 - (2t - 2t_0)} \\
662: &=&~ (- \frac{1}{2}) \ln \frac{\norm{u_0}^2 - (t_1 - t_0)} {\norm{u_0}^2} \\
663: &=&~ \ln \frac{\norm{u_0}}{\norm{u_1}} .
664: \end{eqnarray*}
665: Denoting the above integral by $X$ and choosing
666: $t_1 - t_0 = (2 \theta - \theta^2) \norm{u_0}^2$, as before, we have
667: \begin{eqnarray}
668: e^X ~\leq~ \frac{\norm{u_0}}{\norm{u_1}}
669: ~=~ \frac{\varrho(u_0)}{\varrho(u_1)}
670: ~\leq~ \frac{1}{1-\theta} .
671: \label{eqn:exponential}
672: \end{eqnarray}
673:
674: \paragraph{Edge length variation.}
675: Consider two points $u$ and $v$ on the skin surface
676: during a time interval $[t_0, t_1]$.
677: We assume that both points follow their trajectories undisturbed
678: by any mesh maintenance operations.
679: Let $u_0$ and $u_1$ be the point $u$ at times $t_0$ and $t_1$
680: and, similarly, let $v_0$ and $v_1$ be the point $v$ at these two moments.
681: We prove that if the time interval is short relative to the
682: length scale of the points then the distance between them cannot
683: shrink or grow by much.
684: \begin{description}
685: \item[{\sc Length Lemma.}]
686: Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0) \}$ and
687: $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$,
688: for some $0 \leq \theta \leq 1$.
689: Then
690: \begin{eqnarray*}
691: 1 - \theta ~\leq~ \frac{ \dist{u_1}{v_1} }{ \dist{u_0}{v_0} }
692: ~<~ \frac{1}{1-\theta} .
693: \end{eqnarray*}
694: \end{description}
695: \proof
696: The derivative of the distance between points $u$ and $v$ with respect to time is
697: \begin{eqnarray}
698: \frac{\diff \dist{u}{v}}{\diff t}
699: ~&=&~ \frac{\diff \dist{u}{v}}{\diff u} \frac{\diff u}{\diff t}
700: + \frac{\diff \dist{u}{v}}{\diff v} \frac{\diff v}{\diff t} \nonumber \\
701: ~&=&~ \frac{(u-v)^T}{\dist{u}{v}} (\dot{u} - \dot{v}) .
702: \label{eqn:derivative}
703: \end{eqnarray}
704: For example if $u$ and $v$ lie on a common sphere patch then
705: $\varrho = \varrho (u) = \varrho (v)$,
706: $\dot{u} = {\pm u} / (2 \varrho^2)$ and $\dot{v} = {\pm v} / (2 \varrho^2)$,
707: which implies
708: \begin{eqnarray*}
709: \frac{\diff \dist{u}{v}}{\diff t}
710: ~=~ \pm \frac{(u-v)^T}{\dist{u}{v}} \frac{(u-v)}{2 \varrho^2}
711: ~=~ \pm \frac{\dist{u}{v}}{2 \varrho^2} .
712: \end{eqnarray*}
713: We prove below that in the general case, the distance derivative stays
714: between these two extremes:
715: \begin{eqnarray}
716: - \frac{\dist{u}{v}}{2 \varrho^2}
717: ~\leq~ \frac{\diff \dist{u}{v}}{\diff t}
718: ~\leq~ \frac{\dist{u}{v}}{2 \varrho^2} ,
719: \label{eqn:length-bounds}
720: \end{eqnarray}
721: where $\varrho = \min \{ \varrho (u), \varrho (v) \}$.
722: To get the final result from (\ref{eqn:derivative}),
723: we divide by $\dist{u}{v}$, multiply by $\diff t$,
724: and use $\diff \ln x = \diff x / x$ to get
725: \begin{eqnarray*}
726: - \frac{\diff t}{2 \varrho^2} ~\leq~ \diff (\ln \dist{u}{v})
727: ~\leq~ \frac{\diff t}{2 \varrho^2} .
728: \end{eqnarray*}
729: Next we integrate over $[t_0, t_1]$ and exponentiate to eliminate
730: the natural logarithm:
731: \begin{eqnarray*}
732: {e^{-X}} ~\leq~ \frac{\dist{u_1}{v_1}}{\dist{u_0}{v_0}}
733: ~\leq~ e^X .
734: \end{eqnarray*}
735: The claimed pair of inequalities follows from (\ref{eqn:exponential})
736: and the observation that the upper bound for $X$ cannot be realized
737: when the distance derivative is positive.
738: To prove (\ref{eqn:length-bounds}) for general points $u$ and $v$,
739: it suffices to show that the length of $\dot{u} - \dot{v}$
740: is at most $\dist{u}{v} /(2 \varrho^2)$.
741: We have seen that this is true if $u$ and $v$ belong to a common sphere patch.
742: It is also true if $u$ and $v$ belong to a common hyperboloid patch
743: because
744: \begin{eqnarray*}
745: \dist{\dot{u}}{\dot{v}}
746: ~=~ \| {\frac{u'}{2 \varrho^2 (u)}} - {\frac{v'}{2 \varrho^2 (v)}} \|
747: ~\leq~ \frac{\dist{u}{v}}{2 \varrho^2} ,
748: \end{eqnarray*}
749: where the primed and unprimed vectors are the same, except that they have a
750: different sign in the third coordinate.
751: We need a slightly more elaborate argument if $u$ and $v$ do not
752: belong to the same mixed cell.
753: We then reflect $v$ across the faces of mixed cells that intersect
754: the edge $uv$.
755: As described in Section \ref{sec2}, such a sequence of reflections
756: does not affect the velocity vector.
757: The distance between $u$ and the image $\overline{v}$ of $v$ under the composition
758: of reflections is at most that between $u$ and $v$.
759: Hence,
760: \begin{eqnarray*}
761: \dist{\dot{u}}{\dot{v}} ~=~ \dist{\dot{u}}{\dot{\overline{v}}}
762: ~\leq~ \norm{ \frac{u-v}{2 \varrho^2} } ,
763: \end{eqnarray*}
764: as required.
765: \eop
766:
767: The lower bound in the Length Lemma is tight and realized
768: by points $u$ and $v$ on a common sphere patch.
769:
770:
771: \paragraph{Shrinking edge.}
772: Consider an edge $uv$, whose half-length at time $t_0$ is $R_0$.
773: As before, let $u_0$ and $v_0$ be the points $u$ and $v$ at
774: time $t_0$.
775: Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0) \}$.
776: We follow the two points during the time interval $[t_0, t_1]$,
777: whose duration is
778: $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$.
779: The Length Lemma implies that at time $t_1$,
780: the length of the edge satisfies
781: \begin{eqnarray}
782: \frac{\dist{u_1}{v_1}}{\dist{u_0}{v_0}}
783: ~=~ \frac{R_1}{R_0} ~\geq~ 1 - \theta .
784: \label{eqn:low_bnd_edge_shrink}
785: \end{eqnarray}
786: Our goal is to choose $\theta$ such that the edge at time $t_1$
787: is guaranteed to satisfy the Lower Size Bound for $Q = Q_1$.
788: Using $R_1 \geq (1-\theta) R_0$ from (\ref{eqn:low_bnd_edge_shrink}) and
789: $\varrho_1 < (1+\theta) \varrho_0$ from (\ref{eqn:length_scale}),
790: we note that $R_1 / \varrho_1 > C/Q_1$ is implied by
791: $(1-\theta) R_0 / (1+\theta) \geq C \varrho_0 / Q_1$.
792: In other words,
793: \begin{eqnarray}
794: \theta ~=~ \frac{R_0 Q_1 - C \varrho_0}{R_0 Q_1 + C \varrho_0}
795: \label{eqn:theta}
796: \end{eqnarray}
797: is sufficiently small.
798: The corresponding time interval during which we can be sure
799: that the edge $uv$ does not become unacceptably short has duration
800: $\Delta t = (2 \theta -\theta^2) \varrho_0^2$.
801: To get a better feeling for what these results mean, let us
802: write the half-length of $u_0 v_0$ as a multiple of the lower bound in [L]
803: for $Q = Q_0$: $R_0 = A C \varrho_0 / Q_0$ with $A > 1.0$.
804: We then get $\theta = ({A Q_1 - Q_0})/({A Q_1 + Q_0})$ and
805: $\Delta t$ from $\theta$ as before.
806: Table \ref{tab:edge_constants} shows the values of $\theta$
807: and $\Delta t$ for a few values of $A$.
808: \begin{table}[hbt]
809: \centering
810: \caption{For edges, the values of $\theta$ and $\Delta t$
811: for $Q_0 = 1.6$, $Q_1 = 2.3$
812: and a few typical values of $A$}
813: \label{tab:edge_constants}
814: \begin{tabular}{|r||r|r|} \hline
815: \multicolumn{1}{|c||}{$A$}
816: & \multicolumn{1}{c|}{$\theta$}
817: & \multicolumn{1}{c|}{$\Delta t/\varrho_0^2$} \\ \hline \hline
818: $1.0$ & $0.179\ldots$ & $0.326\ldots$ \\
819: $1.5$ & $0.366\ldots$ & $0.598\ldots$ \\
820: $2.0$ & $0.483\ldots$ & $0.733\ldots$ \\
821: $2.5$ & $0.564\ldots$ & $0.810\ldots$ \\
822: $3.0$ & $0.623\ldots$ & $0.858\ldots$ \\
823: $3.5$ & $0.668\ldots$ & $0.890\ldots$ \\
824: $4.0$ & $0.703\ldots$ & $0.912\ldots$ \\ \hline
825: \end{tabular}
826: \end{table}
827: %%The coefficient $A$ cannot get much larger than $4.0$ because such a long
828: %%edge forces a large triangle that is likely to violate the
829: %%Upper Size Bound [U].
830:
831: \paragraph{Height variation.}
832: Consider a triangle $uvw$ during a time interval $[t_0, t_1]$.
833: We assume that all three points follow their trajectories undisturbed
834: by any mesh maintenance operations.
835: Each vertex has a distance to the line spanned by the other two vertices,
836: and the \emph{height} $H$ of $uvw$ is the smallest of the three distances.
837: If $uv$ is the longest edge then $H = \dist{w}{w'}$,
838: where $w'$ is the orthogonal projection of $w$ onto $uv$.
839: We prove if the time interval is short relative to the length
840: scale at the points then the height cannot shrink or grow by much.
841: To state the claim we use indices 0 and 1 for points and heights
842: at times $t_0$ and $t_1$.
843: \begin{description}
844: \item[{\sc Height Lemma.}]
845: Let $\varrho_0 = \min \{ \varrho (u_0), \varrho (v_0), \varrho (w_0) \}$ and
846: $\Delta t = t_1 - t_0 = (2 \theta - \theta^2) \varrho_0^2$,
847: for some $0 \leq \theta \leq 1$.
848: Then
849: \begin{eqnarray*}
850: 1 - \theta ~\leq~ \frac{H_1}{H_0} ~<~ \frac{1}{1-\theta} .
851: \end{eqnarray*}
852: \end{description}
853: \proof
854: We prove that (\ref{eqn:length-bounds}) is also true if we
855: substitute the height $H$ for the length of the edge $uv$:
856: \begin{eqnarray}
857: - \frac{H}{2 \varrho^2} ~\leq~ \frac{\diff H}{\diff t}
858: ~\leq~ \frac{H}{2 \varrho^2} ,
859: \label{eqn:height-bounds}
860: \end{eqnarray}
861: where $\varrho = \min \{ \varrho (u), \varrho (v), \varrho (w) \}$.
862: The claimed pair of inequalities follows as explained in the
863: proof of the Length Lemma.
864: To see (\ref{eqn:height-bounds}) note first that the height of the
865: triangle is always determined by a vertex and a point on the opposite
866: edge, eg.\ $H = \dist{w}{w'}$.
867: Let $w' = (1-\lambda) u + \lambda v$.
868: If $u$ and $v$ belong to the same mixed cell then
869: $\nabla g_{w'} = (1-\lambda) \nabla g_u + \lambda \nabla g_v$
870: because the gradient varies linearly.
871: Along a moving line segment $uv$ the velocity vectors
872: vary linearly, hence $\dot{w}' = (1-\lambda) \dot{u} + \lambda \dot{v}$.
873: Since the gradients and the velocity vectors at $u$ and $v$
874: point in the same directions, they do the same at $w'$.
875: The length of the velocity vector at $w'$ is at most that of the
876: longer velocity vector at $u$ and $v$.
877: %%% and therefore $\norm{\dot{w}'} \leq \dist{u}{v} / \varrho^2$.
878: If $w$ belongs to the same mixed cell as $w'$, this implies
879: \begin{eqnarray*}
880: \dist{\dot{w}}{\dot{w}'} ~\leq~ \frac{\norm{w-w'}}{2 \varrho^2}
881: ~=~ \frac{H}{2 \varrho^2} ,
882: \end{eqnarray*}
883: from which (\ref{eqn:height-bounds}) follows.
884: If $u$, $v$ and $w$ do not belong to the same mixed cell then we
885: perform reflections, as in the proof of the Length Lemma,
886: and get (\ref{eqn:height-bounds}) because reflections do
887: not affect velocity vectors.
888: \eop
889:
890: In the following, we only need the lower bound in the Height Lemma,
891: which is tight and is realized points $u$, $v$ and $w$ on a common
892: sphere patch.
893:
894: \paragraph{Expanding triangle.}
895: We use both the Length Lemma and the Height Lemma to derive a lower bound
896: on the length of time during which a triangle that initially satisfied the
897: Upper Size Bound [U] for $Q = Q_0$ is guaranteed to satisfy the same for $Q = Q_1$.
898: We begin by establishing a relation between the circumradius $R = R_{uvw}$
899: of a triangle $uvw$ and its height and edge lengths.
900: Referring to Figure \ref{fig:radius_height}, we let $z$ denote the center of
901: the circumcircle.
902: Assuming $uv$ is the longest of the three edges, the height is
903: $H = \dist{w}{w'}$ and $v$ and $z$ lie on the same side of the line
904: passing through $u$ and $w$.
905: Let $z'$ be the midpoint of $uw$ and note that the angle at $z$
906: is twice that at $v$:
907: $\angle uzw = 2 \angle z'zw = 2 \angle uvw$.
908: This implies that the triangles $ww'v$ and $wz'z$ are similar,
909: and therefore $\dist{z'}{w} / R = H / \dist{v}{w}$.
910: It follows that the circumradius of $uvw$ is
911: \begin{eqnarray*}
912: R ~=~ \frac{\dist{u}{w} \ \dist{v}{w}}{2 H} .
913: \end{eqnarray*}
914: There are three ways to write twice the area as the product of an edge length
915: and the distance of the third vertex from the line of that edge:
916: $\dist{u}{v} \ H = \dist{u}{w} \ \dist{v}{v'} = \dist{v}{w} \ \dist{u}{u'}$.
917: Hence, the circumradius is also
918: \begin{eqnarray*}
919: R ~=~ \frac{\dist{u}{v} \ \dist{u}{w}}{2 \dist{u}{u'}}
920: ~=~ \frac{\dist{u}{v} \ \dist{v}{w}}{2 \dist{v}{v'}} .
921: \end{eqnarray*}
922: \begin{figure}[hbt]
923: \vspace*{0.1in}
924: \centering
925: \centerline{\includegraphics[height=1.8in]{Figs/radius_height}}
926: \caption{The triangle $uvw$ is similar to $wz'z$, which implies a relation
927: between the height $H$ and the circumradius $R$}
928: \label{fig:radius_height}
929: \end{figure}
930: For the remainder of this section, we use indices 0 and 1 for points, heights
931: and radii at times $t_0$ and $t_1$.
932: The above equations for the circumradius imply
933: \begin{eqnarray*}
934: \frac{R_1}{R_0} ~=~
935: \frac{\dist{u_1}{w_1}}{\dist{u_0}{w_0}}
936: \frac{\dist{v_1}{w_1}}{\dist{v_0}{w_0}}
937: \frac{\dist{w_0}{w'_0}}{\dist{w_1}{w'_1}} .
938: \end{eqnarray*}
939: Assuming $H_0 = \dist{w_0}{w_0'}$ is the height at time $t_0$,
940: we have $H_1 \leq \dist{w_1}{w_1'}$ at time $t_1$.
941: We can therefore use the Length Lemma to bound the first two ratios
942: and the Height Lemma to bound the third to get
943: \begin{eqnarray}
944: \frac{R_1}{R_0} ~<~ \frac{1}{(1-\theta)^3} .
945: \label{eqn:radius-bound}
946: \end{eqnarray}
947: We now choose $\theta$ such that a triangle that satisfies [U] for $Q = Q_0$
948: at time $t_0$ is guaranteed to satisfy [U] for $Q = Q_{1}$ at time $t_1$.
949: Using $R_1 < R_0 / (1-\theta)^3$ from (\ref{eqn:radius-bound}) and
950: $(1-\theta) \varrho_0 \leq \varrho_1$ from (\ref{eqn:length_scale}), we note
951: that $R_1 / \varrho_1 < C Q_1$ is implied by
952: $R_0 / (1-\theta)^4 \leq C Q_1 \varrho_0$.
953: In other words,
954: \begin{eqnarray}
955: \theta ~=~ 1 - \sqrt[4]{R_0 / (C Q_1 \varrho_0)}
956: \label{eqn:triangle-theta}
957: \end{eqnarray}
958: is sufficiently small.
959: It is convenient to write the circumradius of the triangle $u_0 v_0 w_0$
960: as a fraction of the upper bound in [U]:
961: $R_0 = C Q_0 \varrho_0 / A$ with $A > 1.0$.
962: Then, $\theta = 1 - \sqrt[4]{Q_0 / (A Q_1)}$.
963: Table \ref{tab:triangle_constants} shows the values of $\theta$
964: and $\Delta t$ for a few values of $A$.
965: \begin{table}[hbt]
966: \centering
967: \caption{For triangles, the values of $\theta$ and $\Delta t$ for
968: $Q_0 = 1.6$, $Q_1 = 2.3$ and a few typical values of $A$}
969: \label{tab:triangle_constants}
970: \begin{tabular}{|r||r|r|} \hline
971: \multicolumn{1}{|c||}{$A$}
972: & \multicolumn{1}{c|}{$\theta$}
973: & \multicolumn{1}{c|}{$\Delta t/\varrho_0^2$} \\ \hline \hline
974: $1.0$ & $0.086\ldots$ & $0.165\ldots$ \\
975: $1.5$ & $0.174\ldots$ & $0.319\ldots$ \\
976: $2.0$ & $0.232\ldots$ & $0.410\ldots$ \\
977: $2.5$ & $0.273\ldots$ & $0.472\ldots$ \\
978: $3.0$ & $0.306\ldots$ & $0.518\ldots$ \\
979: $3.5$ & $0.332\ldots$ & $0.554\ldots$ \\
980: $4.0$ & $0.354\ldots$ & $0.583\ldots$ \\ \hline
981: \end{tabular}
982: \end{table}
983:
984: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
985: \section{Discussion}
986: \label{sec5}
987: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
988:
989: The main contribution of this paper is the introduction of relaxed scheduling
990: as a paradigm for maintaining moving or deforming data,
991: and the demonstrations of its applicability to scheduling edge contractions
992: and vertex insertions maintaining skin surfaces.
993:
994: \paragraph{Algorithm design.}
995: We view the dynamic skin triangulation algorithm, of which relaxed scheduling
996: is now a part, as an interesting exercise in rational algorithm design.
997: What are the limits for proving meshing algorithms correct?
998: This design exercise gives us a glimpse on how complicated meshing problems can be.
999: Perhaps more importantly, it illustrates what it might take to prove other
1000: meshing algorithms correct.
1001: We especially highlight the role of constant parameters in the algorithm
1002: and how they control the algorithm as well as the constructed mesh.
1003: In our example, the important parameters are $C$,
1004: which controls how closely the mesh approximates the surface,
1005: and $Q$, which controls the quality of the mesh.
1006: The effort of proving the various pieces of the algorithm correct
1007: has lead to inequalities for these parameters.
1008: In other words, we have identified a feasible region which is necessary
1009: for our proofs and sufficient for the correctness of the algorithm.
1010: The detailed knowledge of this feasible region has inspired the idea
1011: of relaxed scheduling, and it was necessary to formulate it in detail
1012: and to prove its correctness.
1013: %
1014: Many meshing algorithms are based on parameters that are fine-tuned
1015: in the experimental phase of software design.
1016: We suggest that in the absence of detailed knowledge of limits,
1017: fine-tuning is a necessary activity that gropes for a place in the
1018: feasible region where correctness is implied.
1019: Of course, it might happen that this region is empty, but this is
1020: usually difficult to determine.
1021:
1022: \paragraph{Future work.}
1023: It is not our intention to criticize work in mesh generation for the
1024: lack of correctness proofs.
1025: Indeed, it would be more appropriate to criticize our own work for the
1026: lack of generality.
1027: Although we laid out a complete algorithm for maintaining the mesh
1028: of a deforming surface, we are a far cry from being able to prove its
1029: correctness for any surface other than the skin surface
1030: introduced in \cite{Ede99}.
1031: We have also not been able to extend the algorithm beyond the
1032: deformations implied by growing the spheres that define the surface.
1033: For example, it would be desirable to maintain the mesh for deformations
1034: used for morphing as described in \cite{CEF01}.
1035: Generalizing the algorithm to include this application and proving
1036: it correct may be within reach.
1037:
1038: Another worthwhile task is the implementation of relaxed scheduling
1039: as part of the dynamic skin algorithm.
1040: Are our lower bounds for the necessary $\Delta t$ sufficient to eliminate
1041: edge contractions and vertex insertions as a bottleneck of the algorithm?
1042: Can these lower bounds be improved in any significant manner?
1043: Can we improve the performance by fine-tuning the parameters, in particular
1044: $Q_0$ and $Q_1$, while staying within the proved feasible region?
1045:
1046:
1047: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1048: \section*{Acknowledgments}
1049: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1050: The authors thank Robert Bryant for helpful discussions concerning the
1051: proof of the Length Lemma.
1052:
1053:
1054: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1055: \begin{thebibliography}{[MT1]}
1056: %%%%%%%%%%%%%%%%%%%%%%%%%%%
1057:
1058: {\small
1059:
1060: \bibitem{CDES01}
1061: {\sc H.-L.\ Cheng, T.\ K.\ Dey, H.\ Edelsbrunner and J.\ Sullivan.}
1062: Dynamic skin triangulation.
1063: \emph{Discrete Comput.\ Geom.} {\bf 25} (2001), 525--568.
1064:
1065: \bibitem{Con83}
1066: {\sc M.\ L.\ Connolly.}
1067: Analytic molecular surface calculation.
1068: \emph{J.\ Appl.\ Crystallogr.} {\bf 6} (1983), 548--558.
1069:
1070: \bibitem{CEF01}
1071: {\sc H.-L.\ Cheng, H.\ Edelsbrunner and P.\ Fu.}
1072: Shape space from deformation.
1073: \emph{Comput.\ Geom.\ Theory Appl.} {\bf 19} (2001), 191--204.
1074:
1075: \bibitem{Che93}
1076: {\sc L.\ P.\ Chew}.
1077: Guaranteed-quality mesh generation for curved surfaces.
1078: {\em In} Proc.\ 9th Ann.\ Sympos.\ Comput.\ Geom., 1993, 274--280.
1079:
1080: %%\bibitem{Cre84}
1081: %%{\sc T.\ E.\ Creighton.}
1082: %%\emph{Proteins. Structures and Molecular Principles.}
1083: %%Freeman, New York, 1984.
1084:
1085: \bibitem{Ede99}
1086: {\sc H.\ Edelsbrunner.}
1087: Deformable smooth surface design.
1088: \emph{Discrete Comput.\ Geom.} {\bf 21} (1999), 87--115.
1089:
1090: \bibitem{EdMu94}
1091: {\sc H.\ Edelsbrunner and E.\ P.\ M\"{u}cke.}
1092: Three-di\-men\-sion\-al alpha shapes.
1093: \emph{ACM Trans.\ Graphics\/} {\bf 13} (1994), 43--72.
1094:
1095: \bibitem{EdSh97}
1096: {\sc H.\ Edelsbrunner and N.\ R.\ Shah.}
1097: Triangulating topological spaces.
1098: \emph{Internat.\ J.\ Comput.\ Geom.\ Appl.} {\bf 7} (1997), 365--378.
1099:
1100: \bibitem{LeRi71}
1101: {\sc B.\ Lee and F.\ M.\ Richards.}
1102: The interpretation of protein structures: estimation of
1103: static accessibility.
1104: \emph{J.\ Mol.\ Biol.} {\bf 55} (1971), 379--400.
1105:
1106: }
1107:
1108: \end{thebibliography}
1109:
1110:
1111: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1112: %% \clearpage
1113: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1114: %%\paragraph{Things to do or think about.}
1115: %%\begin{itemize}\denselist
1116: %%\end{itemize}
1117: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1118:
1119:
1120: %\newpage
1121: \section*{Appendix}
1122:
1123: \vspace*{-.2in}
1124:
1125: \begin{table}[hbt]
1126: \centering
1127: \caption{Notation for important geometric concepts,
1128: functions, variables, and constants}
1129: \label{tab:Notation}
1130: \begin{tabular}{ll}
1131: $\wdist{i} : \Rspace^3 \rightarrow \Rspace$
1132: & weighted (square) distance function \\
1133: $S_i = (z_i, r_i)$ & zero-set of $\wdist{i}$;
1134: sphere with center $z_i$ and radius $r_i$\\
1135: $\Fset$ & convex hull of spheres $S_i$ \\
1136: $F = \env{\sqrt{\Fset}}$ & skin surface \\
1137: $\kappa, \varrho = 1/\kappa$
1138: & maximum curvature, length scale \\
1139: $Q_0 \leq Q \leq Q_1$& constant controlling quality \\
1140: $\Eps, C, h, \ell, m$& additional constants \\
1141: & \\
1142: $g: \Rspace^3 \rightarrow \Rspace$
1143: & point-wise min of the $2f-f(z)$ \\
1144: $F(t) = g^{-1}(t)$ & skin surface at time $t$ \\
1145: $t, \theta$ & time parameter, relative travel distance \\
1146: $[t_0, t_1]$ & time interval \\
1147: $\Delta t = t_1-t_0$ & duration \\
1148: $u, u', \overline{u}$ & point, projection, reflection \\
1149: $\nabla g_u, \dot{u}$ & gradient, velocity vector \\
1150: $uv, uvw, H, R$ & edge, triangle, height, radius
1151: \end{tabular}
1152: \end{table}
1153:
1154:
1155: \end{document}
1156: