Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Tensor fields have been a major research topic in scientific visualization and medical imaging, due to their wide applicability in physics, chemistry, and biology. Examples of tensor fields in these domains include stress and strain tensors in solid mechanics, velocity gradient tensors in fluid dynamics, and diffusion tensors in medical imaging. In contrast, considerably less research effort has been given to tensors in geometry processing.

Fortunately, increasing attention has been given to tensor fields by the geometry processing community in recent years. Results in tensor field analysis and visualization have been borrowed from communities that traditionally deal with tensors (scientific visualization, medical imaging) and applied to geometry processing applications such as non-photorealistic rendering, surface parameterization, and geometry remeshing.

In differential geometry, there are three tensor fields describing the geometry of the surface. They are termed the first, second, and third fundamental forms, and are usually denoted by I, II, and III, respectively. However, these three forms are not independent as they are related by an Eq. [8]. Consequently, one often focuses on the first two fundamental forms, which can be expressed in the language of metric tensor and curvature tensor, respectively. In the next sections, we will describe these tensors and their applications in geometry processing.

2 Metric Tensor

In this section we describe applications in geometry processing related to the metric tensor.

In the early days of computer graphics when processing speed and memory of computers are much lower than their counterparts today, modeling 3D geometry with complex details was often considered computationally prohibitive. Yet, the ability to render such details is essential to the realism of the synthesized images. To deal with this challenge, the idea of texture maps was employed. Basically, the geometry of a surface is modeled with two complementary components. The first component is a surface that approximates the target surface but has much lower geometric details. The second component is a texture map which is an image that contains fine geometry details. When wrapping the texture onto the surface appropriately, the resulting rendering has perceptually similar visual quality to images generated by directly modeling the surface with high geometry detail. Thanks to the hardware setup, the texture map approach is much faster than the geometry-only approach. The idea of using texture maps in representing high geometry details has inspired much research in image-based rendering [17].

To connect the two components in this approach, i.e., the surface S and the texture map I (represented as an 2D image), a correspondence between the two must be established. This correspondence, i.e., a map τ from S to I is referred to as the surface parameterization for S. One example of this is the world map for the Earth.

Generating a high-quality parameterization given an arbitrary surface is both important and challenging. For example, due to topological constraints, the surface must be cut open in order to be flattened [7]. The curves along which the surface is cut open are referred to as seams. Seams require special care as they lead to texture discontinuity when wrapping the texture back to the surface. However, an even more challenging problem is distortion. Distances can be distorted, so can angles and areas. In cartography, such problems can lead to false notions such as that Greenland is larger than Australia and that the South Pole (a point) is a line. In computer graphics, such distortions lead to uneven sampling rates over the surface, since regions of the same area in the surface may be given drastically different areas in the texture map. Consequently, geometry details in regions receiving less-than-average portion of the texture map typically go through more aggressive low-pass filters when the surface signal is stored in the texture map than regions receiving more-than-average portions of the map. This results in greater loss in the details of the surface signal for regions receiving less-than-average areas in the texture map. To ensure the visual realism for regions receiving the smallest share in the texture domain, one has to use a texture map with a rather large size, which leads to slower performance during rendering. Given that regions in the surface receiving more than a fair share of the parameterization space can already achieve sufficiently high visual quality even with smaller-sized texture maps, increasing the size of the texture map is essentially a waste for such regions. See Fig. 1 for one such example. Next, we will review the cause of distortion and means to reduce distortion.

Fig. 1
figure 1

Distortion in the parameterization (bottom) leads to uneven sampling rates on the surface and blurring for regions in the surface that have received less-than-average areas in the texture domain (e.g., Buddha’s face and torso). This in turns leads to the loss of details in the texture patterns (top: right). Compare it with the true signal (left). Notice that the base on which the Buddha stands has a larger-than-average share of the texture map and therefore has preserved finer details in the texture map

Consider a surface S represented as a triangular mesh and a parameterization τ that maps every triangle t i in S to some triangle τ(t i ) in the plane. Note that sometimes the inverse map of τ, denoted by \(\delta =\tau ^{-1}\), is referred to as the parameterization for S. We will stay consistent with literature in computer graphics in which τ is considered the parameterization (also known as texture coordinates). However, our discussion on measuring distortion will be based on δ.

In graphics hardware, a triangle is often the unit of processing. For texture mapping, the signals inside a triangle in the texture domain will be lifted to the corresponding triangle on the surface S through δ as follows:

$$\displaystyle{ \delta (f_{a}\tau (v_{a}) + f_{b}\tau (v_{b}) + f_{c}\tau (v_{c})) = f_{a}(v_{a}) + f_{b}(v_{b}) + f_{c}(v_{c}) }$$
(1)

in which v a , v b , and v c are the vertices of the triangle t in S, and f a , f b , and f c are the barycentric coordinates of points inside t. Notice that δ is piecewise linear which means the distortion is constant over each triangle. To measure distortion, let us assume the total area of the surface is equal to the total area in the texture map. Under this assumption, it is easy to see that a triangle t ∈ S has a zero stretch only when t is isomorphic to τ(t). However, when the two triangles are not identical, it is not immediately clear how to measure their difference, i.e., the distortion. For example, the two triangles may be similar (same angle distributions and different areas), or have the same area but different angle distribution, or both. Should we penalize angle distortions more than area distortions, or the other way around? How much of area distortion would be considered equivalent to angle distortion? When mapping t to a similar triangle τ(t), how to measure distortion when τ(t) is larger than t and vice versa? All of these questions trace back to a fundamental problem: the distortion is not a scalar, but a tensor.

Let us examine Eq. 1 more closely. Given a triangle t ∈ S, δ t , the restriction of δ on t, is a bijective linear map. Consider two mutually perpendicular, unit vectors w 1 and w 2 in \(\tau (t) \subset \mathbb{R}^{2}\). The squared length of w i is given by \(\vert w_{i}\vert ^{2} = w_{i} \cdot w_{i} = 1\) for i = 1, 2. The angle between the vectors is related to the dot product w 1 ⋅ w 2 = 0. Finally, the squared area of the parallelogram spanned by w 1 and w 2 is given by \(\vert w_{1} \times w_{2}\vert ^{2} = (w_{1} \cdot w_{1})(w_{2} \cdot w_{2}) - (w_{1} \cdot w_{2})^{2} = 1\).

We are interested in similar quantities for \(\delta _{t}(w_{i})\) because the difference in these quantities can give us the distortion in distance, angle, and areas, respectively. Note that δ t can be represented as a 3 × 2 matrix M t that maps a vector w in the plane to a vector M t w in \(\mathbb{R}^{3}\). The squared length of δ(w i ) is

$$\displaystyle{ \vert \delta _{t}(w_{i})\vert ^{2} = (M_{ t}w_{i} \cdot M_{t}w_{i}) = w_{i}{^\prime}(M_{t}{^\prime}M_{t})w_{i} }$$
(2)

Notice that the difference between the lengths of w i and \(\delta _{t}(w_{i})\) can only be attributed to the symmetric matrix \(G_{t} = M_{t}{^\prime}M_{t}\). It is straightforward to verify that G t is also responsible for the angular and areal distortions. G, the tensor field whose restriction to a triangle t is G t , is referred to as the metric tensor. In the ideal setting, i.e., when a triangle t ∈ S and τ(t) are isometric, G t is the identity matrix Id. A parameterization that satisfies this for every triangle is referred to as isometric parameterization. However, when distortion is present, how to measure distortion from the metric tensor is a challenging topic. Various measures have been proposed, with respect to which the parameterization algorithms have been optimized. A popular approach is to strive for conformal parameterizations which preserve angles between any pair of vectors. Another possible criterion is equiareal parameterizations which preserve areas of the parallelograms spanned by any vector pair. The metric tensor G corresponding to the conformal parameterization and equiareal parameterization satisfies G t  = k t Id and det(G t ) = 1, respectively, for every triangle t. Note that G is isometric if and only if G is both conformal and equiareal. The eigenvalues of G t correspond to the largest and smallest squared lengths of any unit planar vector under the map δ t , while the eigenvectors of G t correspond to directions in which these lengths are achieved. Usually only the eigenvalues are considered important for texture mapping purposes. In terms of the eigenvalues σ t, 1 ≥ 0 and σ t, 2 ≥ 0, G t is isometric, conformal, and equiareal if \(\sigma _{t,1} =\sigma _{t,2} = 1\), σ t, 1 = σ t, 2, and σ t, 1 σ t, 2 = 1, respectively.

Various measures have been proposed based on σ t, 1 and σ t, 2, essentially providing a tradeoff between conformal and equiareal parameterizations. Example measures include

  1. 1.

    \(\sqrt{(\sigma _{t,1 } +\sigma _{t,2 } )(1/\sigma _{t,1 } + 1/\sigma _{t,2 } )}\) [11]

  2. 2.

    \(\frac{1} {2}(\sqrt{\sigma _{t,1}} -\sqrt{\sigma _{t,2}})^{2}\) [6, 20]

  3. 3.

    \(\sqrt{\sigma _{t,1 } +\sigma _{t,2}}\) [26]

  4. 4.

    \((\sigma _{t,1} - 1)^{2} + (\sigma _{t,2} - 1)^{2}\) [32]

Note that the first two energy formulations from the above consider conformal parameterization as the ideal case, thus ignoring areal distortion. The third energy strikes a balance between conformal and equiareal parameterization. However, in some cases when there are distortions, this energy evaluates to the same as the isometry, such as when \(\sigma _{t,1} = 1 + u\) and \(\sigma _{t,2} = 1 - u\) for 0 < u < 1. The fourth energy is minimized if and only if the map is isometric. There are other energy terms not defined directly in terms of the metric tensors, such as the angle-based flattening measure [27] which strive for conformal parameterization.

More recently, there has been work on parameterizing a genus zero triangular mesh surface over a sphere, with applications in remeshing. The general approach is to construct a compatible partition of the mesh surface and the sphere, such as an octahedral partitioning. This allows the sphere and the mesh surface to be mapped onto a common planar domain D. The spherical parameterization is then the composite of the parameterization of the sphere over D and the inverse map of the parameterization of the mesh surface. In this case the metric tensor from the sphere to the mesh surface is also the composition of the metric tensors of the sphere and the mesh surface with respect to D, and the distortions between the sphere and the mesh can again be measured using distortions in the planar parameterizations.

While the original and still primary use of the surface parameterization (and the metric tensor) is in texture mapping, additional applications have been identified, such as fluid simulation on surfaces [28], texture synthesis [24], surface compression [9], and triangular remeshing [2]. With surface parameterization, the computation on mesh surfaces can be transferred into similar (but typically simpler) computations in the plane. The ability to measure distortion in the parameterization is key to achieving desired results as it needs to be reversed when performing the computation in the plane.

Surface parameterization has received much attention from the geometry processing community. However, the focus has been on some derived scalar quantity from the eigenvalues of the metric tensor per triangle. Eigenvectors are typically not considered, and the use of the tensors are isolated, i.e., per triangle. In this sense it is hardly treated as a tensor field, which has structures unique to it. In the next section, we will examine another popular tensor in the geometry processing community, the curvature tensor.

3 Curvature Tensor

The curvature tensor describes the bending of the surface. It has been used in various graphics applications such as non-photorealistic rendering and geometry remeshing.

First, let us consider the curvature of a planar curve γ. Suppose a person is travelling along γ at a constant speed, e.g., the speed limit. Due to the bending of the curve, the person constantly changes his forward direction. However, since he is travelling at a constant speed, the change in his travel direction at any given moment must be perpendicular to the forward direction at the moment. The curvedness of the road can be measured by how sharply the traveler turns. More formally, let γ(s) be parameterized by arc length s (equivalent to the milemarkers along the road), the forward travel direction is the tangent to the curve, i.e., T(s). Since the traveler travels at a constant speed C > 0, we have | T(s) | 2 ≡ C 2. Differentiating both sides with respect to s results in

$$\displaystyle{ T(s) \cdot N(s) = 0 }$$
(3)

where N(s) = T′(s) is the normal to the curve. The signed curvature at a point γ(s) is given by κ(s) = T(s) × N(s).

Let us now consider surfaces. Given a smooth surface \(S \subset \mathbb{R}^{3}\), there are infinitely many curves passing through any point p ∈ S. Moreover, they may have different curvatures at p. Fortunately results from classical differential geometry state that the curvatures are not a function of individual curves, but of the tangent space at p [8]. More formally, two curves γ 1 and γ 2 in S have the same curvature at p if they have the same tangent vectors at p. In addition, given a tangent vector v at p, the curvature corresponding to v is a quadratic function κ(v) = vKv where K is a symmetric matrix known as the curvature tensor. The eigenvalues of K are referred to as principal curvatures, and eigenvectors as principal directions. The larger eigenvalue κ 1 is referred to as the major eigenvalue, and the smaller eigenvalue κ 2 as the minor eigenvalue. Their corresponding eigenvectors are referred to as the major and minor principal directions, respectively.

Unlike the metric tensor which is positive definite, the curvature tensor can have negative eigenvalues. Applying the well-known isotropic-deviatoric decomposition to the diagonalized curvature tensor results in

$$\displaystyle{ \left (\begin{array}{*{10}c} \kappa _{1} & 0 \\ 0& \kappa _{2} \end{array} \right ) = \frac{\kappa _{1} +\kappa _{2}} {2} \left (\begin{array}{*{10}c} 1&0\\ 0 &1 \end{array} \right )+\frac{\kappa _{1} -\kappa _{2}} {2} \left (\begin{array}{*{10}c} 1& \quad 0\\ 0 &-1 \end{array} \right ) }$$
(4)

Let us consider the vector \(\left (\begin{array}{*{10}c} \frac{\kappa _{1}-\kappa _{2}} {2} \\ \frac{\kappa _{1}+\kappa _{2}} {2}\end{array} \right )\) and write it in the polar form:

$$\displaystyle\begin{array}{rcl} \rho = \sqrt{(\frac{\kappa _{1 } -\kappa _{2 } } {2} )^{2} + (\frac{\kappa _{1} +\kappa _{2}} {2} )^{2}} = \frac{\sqrt{\kappa _{1 }^{2 } +\kappa _{ 2 }^{2}}} {\sqrt{2}} & &{}\end{array}$$
(5)
$$\displaystyle\begin{array}{rcl} \phi =\tan ^{-1}(\frac{\kappa _{1} +\kappa _{2}} {\kappa _{1} -\kappa _{2}})& &{}\end{array}$$
(6)

ρ is the tensor magnitude of the curvature tensor and is zero only when the surface is locally planar. It is referred to as the curvedness. Recall that κ 1 ≥ κ 2. Consequently, ϕ is well defined and satisfies \(-\pi /2 \leq \theta \leq \pi /2\). It is referred to as the shape index [18]. Figure 2 illustrates the power of this decomposition with the classification over the bunny surface. \(H = \frac{\kappa _{1}+\kappa _{2}} {2}\) is referred to as the mean curvature, which is not only the average between the principal curvatures, but the average of the curvatures corresponding to the set of all unit tangent vectors. The quantity \(\frac{\kappa _{1}-\kappa _{2}} {2}\) shows the anisotropy in the curvature. It achieves minimal value only in spherical regions in the surface. Note that in the discussion of the shape index we do not consider planar regions since it is where the curvedness is zero and can therefore be considered as having any shape index. The quantity \(G = (\frac{\kappa _{1}+\kappa _{2}} {2} )^{2} - (\frac{\kappa _{1}-\kappa _{2}} {2} )^{2} =\kappa _{ 1}\kappa _{2}\) measures the relative strength between the isotropic and anisotropic parts of the curvature tensor. It is referred as the Gaussian curvature. If positive, the point of interest is more isotropic than it is anisotropic, i.e., elliptical. If negative, the point is more anisotropic, i.e., hyperbolic. When zero, the point is cylindrical. Results from classical differential geometry states that the total Gaussian curvature over a closed two-dimensional manifold S with g handles is 2π χ(S), where \(\chi (S) = 2 - 2g\) is the Euler characteristic of S [8].

Fig. 2
figure 2

Surface classification scheme based on the shape index \(\phi \in [\pi /2,\pi /2]\) is color mapped to the (blue, red) arc in HSV color space: Left top: continuous mapping. Bottom: binned classification. The legend (right) shows surfaces patches which are locally similar to points with given values (This figure is a courtesy of [22], ©2012 IEEE)

We now return to the discussion of the eigenvectors of the curvature tensor. Recall that the eigenvectors of the metric tensor do not play a prominent role in surface parameterization. This is not the case for the curvature tensor in graphics, as the principal curvature directions are important geometric characterization of the surface. In pen-and-ink sketching, Interrante [12] has shown that curves following the principal curvature directions can better illustrate a shape in visualization. Moreover, artists typically draw hatches along principal curvature directions despite not having necessary mathematical background in differential geometry.

We define a major hyperstreamline as a curve whose tangent coincides with the major principal curvature directions everywhere along its path. A minor hyperstreamline can be defined in a similar fashion. Major and minor hyperstreamlines must intersect perpendicularly, since the major and minor principal directions at a point in the surface are mutually perpendicular. However, eigenvectors are not well-defined at points where κ 1 = κ 2, i.e., spherical points. Such points are referred to as the umbilical points, which are the equivalent of singularities in vector fields. An umbilical point can be measured in terms of the local tensor field behavior around it. More specifically, consider an isolated umbilical point p 0 which has a neighborhood inside which no other umbilical points exist. Assume this neighborhood N is a topological disk. When travelling along the boundary of the neighborhood ∂ N, the normalized eigenvectors along the curve are also travelling on the Gauss circle S 1. Due to tensor field continuity, when one finishes travelling ∂ N once, the eigenvectors must have also travelled the Gauss circle a number of times. However, due to sign ambiguity in the eigenvectors, it is possible that the eigenvectors have travelled only half of the circle instead of the full circle. It can be shown that in general the eigenvectors must have travelled \(\frac{L} {2}\) times around the Gauss circle where L is an integer. Moreover, L is independent of the size and shape of the neighborhood N as long as N does not contain additional umbilical points beyond p 0 in its interior or on its boundary. Consequently, \(\frac{L} {2}\) is considered as the index of p 0 and is denoted by I(p 0). Note that the index is zero if and only if p 0 is not an umbilical point.

The two most fundamental types of umbilical points are wedges (index 1∕2) and trisectors (index \(-1/2\)). Interestingly, they correspond to the two simplest ways of reversing travel directions when driving a car: U-turn (wedge) and three-point-turn (trisector). See Fig. 3 (top). In addition, umbilical points appear in natural locations in the surface (Fig. 3 (bottom)).

Fig. 3
figure 3

Two most fundamental umbilical points in the curvature tensor: (top-left) wedge, and (top-right) trisector. Umbilical points appear in natural locations in shapes (middle and bottom): wedges in yellow and trisectors in blue. Shown in the bottom are also the major hyperstreamlines (middle) and minor hyperstreamlines (bottom)

Given a closed, two-dimensional manifold S whose umbilical points are all isolated, Delmarcelle and Hesselink [5] show that

$$\displaystyle{ 2\pi \sum _{J}I(\mathbf{p}_{i}) =\chi (S) }$$
(7)

where J is the set of the umbilical points in S. It is interesting to note that the distribution of two seemingly unrelated quantities from the curvature tensor, i.e., the Gaussian curvature and the index of the umbilical points, are both constrained by the topology of the underlying surface. The curvature tensor can be computed using a number of methods [3, 21, 23, 25]. We refer interested readers to these papers for details.

Next we consider some graphics and geometry applications in which the curvature tensor plays a prominent role.

3.1 Non-photorealistic Rendering

Pen-and-ink sketching is a well-researched topic in Non-Photorealistic Rendering (NPR). In a typical setting, a set of lines (hatches), usually monochromatic (e.g., black) are placed against a background (typically white). The locations and densities of the lines are used to outline the shapes, present the main features in the objects, and convey the shading. An NPR system must determine the location, orientation, and density of hatches. Most existing automatic hatching algorithms differ in how they extract some or all of this information.

3.1.1 Feature Line Drawing

The first class of algorithms extract line features from the shapes and highlight these lines. These classes of algorithms have direct application in engineering illustration and CAD and medical data visualization. Consequently, the lines are typically chosen to reflect the underlying geometry without the effect of shading. The difference among this class of algorithms lies in how line features are defined and extracted. We will review some of line definitions that are most relevant to the curvature tensor.

The most commonly used lines in line drawing are perhaps visible contours. Line drawing based only on visible contours is sometimes referred to as silhouette drawing. Notice that contours are view-dependent. When the viewpoint is changed, the set of contour points is also changed. However, intrinsic features in a mesh, like sharp edges, are not guaranteed to be part of the contour for any appropriate viewpoint. This has led to view-independent line features, such as ridges and valleys which can be defined in terms of the curvature tensor.

A point p ∈ S is a ridge point if the following conditions are met:

  1. 1.

    κ 1 >  | κ 2 | , i.e., the absolutely maximal bending occurs in the major principal curvature direction.

  2. 2.

    p is a local maxima of κ 1 on the unique major hyperstreamline containing p

Similarly, a point p ∈ S is a valley point if

  1. 1.

    κ 2 >  | κ 1 | , i.e., the absolutely maximal bending occurs in the minor principal curvature direction, and

  2. 2.

    p is a local minima of κ 2 on the unique minor hyperstreamline containing p

We will omit the details for computing ridges and valleys here and instead refer interested readers to [23, 25] (Fig. 4).

Fig. 4
figure 4

A comparison of a number of feature-based drawing techniques (This figure is a courtesy of [14], ©2007 ACM)

It has been noted that visible contours often do not produce sufficient lines that reveal the underlying geometry. On the other hand, ridges and valleys are not view-independent. To address these difficulties, the concepts of suggestive contours [4], apparent ridges [14], and demarcating curves [19] are introduced. Both suggestive contours and apparent ridges are view-dependent, while demarcating curves are view-independent.

Roughly speaking, points on suggestive contours given a viewpoint V are not part of the contours with respect to V, but contours with respect to some nearby viewpoint. More formally, a point p ∈ S is on the suggestive contour with respect to viewpoint V if

$$\displaystyle{ D_{\mathbf{w}}\kappa _{r} > 0 }$$
(8)

where w is the projection of Vp onto the tangent plane at p, κ r is the curvature at p in the direction w, and D w κ r is the derivative of κ r in the direction of w. Equivalently, a point is on the suggestive contour if it is a local minima of N ⋅ (Vp). The computation of suggestive contours can be performed in both object-space and image-space, leading to different tradeoffs between accuracy and numerical stability.

Another view-dependent feature measure is apparent ridges. Apparent ridges differ from ridges as the latter is derived from the curvature tensor, while the former from the projected curvature tensor onto the image space. Due to the distortion in orthographic and perspective projections, the projected curvature tensor differs from the curvature tensor. Apparent ridges are therefore the ridges extracted from the projected curvature tensor. One of the main motivations behind apparent ridges is to capture places where luminance would change rapidly should the model be shaded. This notion is in a way related to the idea of suggestive contours as the latter also tries to capture lines that are not features in the current but nearby viewpoints.

Finally, demarcating curves are considered in addition to ridges and valleys. Demarcating curves are transition points between ridges and valleys, much in the same sense as that inflection points of a function f (f″ = 0) are the transition between local maxima (f′ = 0 and f″ < 0) and local minima (f′ = 0 and f″ > 0). More formally, the gradient of the curvature tensor, C ijk , is a third-order tensor. Given v = v i, a unit tangent vector, \(C_{\mathit{ijk}}v^{i}v^{j}v^{k}\) gives the rate of curvature change in v. The direction in which this change is the largest is defined as the direction for maximal normal curvature variation. A point p is on the demarcating curve if \(v_{\mathbf{p}}^{T}Kv_{\mathbf{p}} = 0\) where v p is the direction for maximal normal curvature variation at p.

While feature lines have been a powerful tool in illustrating shapes, they are not often well-suited for surfaces that lack lines features, such as smooth surfaces like a cylinder. In addition, feature-based line drawing primarily aims to revealing geometric features rather than shading effects. Hatching is a more suitable alternative in these cases, which we review next.

3.1.2 Illustration of Smooth Surfaces

Drawing as a form of art often captures our attention in terms of the shading effect and varying geometric details, even when there are few geometric features (such as ridges and valleys) present in the shape. For example, consider a cylinder of an infinite height. Line features as described in Sect. 3.1.1 can only capture the silhouette of the cylinder, i.e., two straight lines. It would be difficult, without drawing the caps of the cylinder, to realize that it is a cylinder.

Hatching provides a nice alternative way of illustrating the shapes in this case. Hatches are used to present the shading effect as well as the internal bending in the geometry, thus making it possible to understand the geometry of an otherwise featureless surface. The key issues for hatching are:

  1. 1.

    How to use hatches to present geometric details?

  2. 2.

    How to use hatches to provide shading effects?

Interrante [12] shows that when hatches follow the principal curvature directions, the shape is best illustrated. Moreover, the lighting effect can be simulated with the density of hatches. Denser hatches indicates lower luminance, while lower or no hatches indicates bright spots or highlight under the viewing condition. Cross-hatching, i.e., drawing two families of mutually perpendicular lines can increase the darkness of a region without increasing the density of the hatches. Consequently, cross-hatched regions are often reserved for deep shadows, while single-hatched regions (only one family of hatches) are used for regions that are neither in deep shadows nor in the highlight (Fig. 5).

Fig. 5
figure 5

The process of generating a hatch-based drawing from an input model

As mentioned earlier, the principal curvature directions can be computed using a number of methods [3, 21, 23, 25]. Once the curvature tensor field has been computed, a family of evenly spaced hyperstreamlines can be generated for the major principal curvature field and the minor principal curvature field, respectively. Generating evenly spaced hyperstreamlines can be achieved by adapting techniques generating evenly spaced streamlines in vector fields [13]. These two families of hyperstreamlines will be used to generate two images, one for the major and the other for the minor hyperstreamlines. We refer to these two images as I 1 and I 2, respectively. In addition, an image I 3 based on visible contours are also generated. Furthermore, a pixel with a value of 1 is white and a value of 0 is black. These three images will then be composed into a single image as follows:

$$\displaystyle{ I(p) = \left \{\begin{array}{ll} \quad \quad 0 &\mbox{ if $I_{3}(p)$=0} \\ \quad \quad 1 &\mbox{ if in highlight} \\ \mathit{min}(I_{1}(p),I_{2}(p))&\mathrm{if\ in\ shadow} \\ \quad \quad I_{2}(p) &\mathrm{otherwise} \end{array} \right. }$$
(9)

Note that in the above one can also choose to always use I 1(p) for single-hatched regions. Another means of generating I 1 and I 2 is to first project the principal directions onto the image plane and trace hyperstreamlines in the image plane. This alternative is view-dependent but typically is fast enough for interactive applications. In contrast, the object-based approach requires much time for pre-processing but is then ready for interactive display, except when the resolution is changed.

3.2 Quadrangular and Triangular Remeshing

The curvature tensor has also been used in geometry remeshing, which refers to generating a new mesh from an input mesh (typically triangular) subject to some optimization criteria. If the output mesh is also triangular, the process is referred to as triangular remeshing. On the other hand, if the output is a quad mesh, the process is referred to as quadrangular remeshing.

Classical triangular remeshing approaches place a set of points on the input mesh surface according to some density constraints [2, 10, 29, 30]. These points will be the vertices of the output mesh. The density of the points is usually required to reflect the geometry in the input. Consequently, some forms of curvature (mean curvature, Gaussian curvature, etc.) are considered as part of the density function. Delauney triangulation or centroidal Voronoi tessellation can then be performed on the point set to generate the triangulation.

Alliez et al. [1] revitalize the topic of quadrangular remeshing. In their pioneering work, a quad-dominant mesh is generated by intersecting one family of evenly spaced major hyperstreamlines with one family of evenly spaced minor hyperstreamlines. Since the two families intersect at the right angle, the resulting quad-dominant mesh consists of mostly nice rectangles. Moreover, the edges in the mesh follow the principal curvature directions and therefore have low approximation error.

Due to numerical issues, there are usually an excessive number of umbilical points in the output mesh, leading to a large number of irregular vertices, i.e., the valency is not four. Irregular vertices, especially when misplaced, can lead to difficulties in subsequent mesh processing. Zhang et al. [31] introduce operations to control the number and location of umbilical points by cancelling a pair of umbilical points with opposite tensor indexes, or by moving an umbilical point to a more appropriate location. We refer to [31] for details.

To remove T-junctions, which occur when the tracing of a hyperstreamline stops without reaching an umbilical point, Kälberer et al. [15, 16] make use of the mathematical concept of covering space and convert the tensor field to a vector field in the covering space. The vector field is then made curl-free through the Hodge decomposition, and the quadrangulation is performed in the covering space which nicely maps to a pure quad mesh (no T-junctions) in the original input mesh.

Nieser et al. [22] use a similar idea (covering space) for triangulation. Unlike quadrangular remeshing, in which both the major and minor principal directions can be used as edges in the remeshed quad mesh, in triangular remeshing at most one can be used. To deal with this they make use of the shape index and ensure that the edges in the triangles will be aligned with the minor eigenvector directions in ridge-like regions and the major eigenvector directions in valley-like regions.

4 Conclusion

Tensor fields are important to not only scientific visualization and medical imaging, but also computer graphics and geometry processing. In this chapter we review two of the most popular tensors, the metric tensor and the curvature tensor, with applications in surface parameterization, non-photorealistic rendering, and remeshing. We expect that more graphics and geometry applications will be identified for tensor fields, and we believe that research in tensor fields can continue to benefit the visualization, image processing, and graphics communities.