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

The application of illustrative visualization has increased in recent years. The principle goal behind the concept of illustrative visualization is a meaningful, expressive, and simplified depiction of a problem, a scene or a situation. As an example, running people are represented running stickmans, which can be seen in the Olympic games, and other objects become simplified line drawings, see Fig. 1. More complex examples can be found in medical atlases. Most anatomical structures are painted and illustrated with pencils and pens. Gray’s anatomy is one of the famous textbooks for medical teaching. Most other textbooks in this area orient to depict anatomy with art drawing, too.

Fig. 1
figure 1

Visual abstraction of the four Olympic disciplines: (a) archery, (b) basketball, (c) football and (d) handball in the style of the pictograms of the Olympic Games 2012 in London

Other than simplified representation, illustrative visualization is not restricted to these fields. Illustrative techniques are essential for focus-and-context visualizations. Consider a scene with anatomical structures and one specific (important) structure. The specific structure may be strongly related to the surrounding objects. Therefore, hiding the other objects is not a viable option. In contrast, depicting all structures leads to visual clutter and optical distraction of the most important structures. Focus-and-context visualization is characterized by a few local regions that are displayed in detail and with emphasis techniques, such as a saturated color. Surrounding contextual objects are displayed in a less prominent manner to avoid distraction from focal regions. Medical examples are vessels with interior blood flow, livers with inner structures including vascular trees and possible tumors, proteins with surface representation and interior ribbon visualization. Focus-and-context visualization is not restricted to medical data. An example is the vehicle body and the interior devices. The user or engineer needs the opportunity to illustrate all devices in the same context.

There are numerous methods for different illustration techniques. This survey is focused on a specific illustrative visualization category: feature lines. Feature lines are a special group of line drawing techniques. Another class of line drawing methods is hatching. Hatching tries to convey the shape by drawing a bunch of lines. Here, the spatial impression of the surface is even more improved. Several methods exist to hatch the surface mesh, see [15, 20, 30, 39, 53, 56]. In contrast, feature lines try to generate lines at salient regions only. Not only for illustrative visualization, feature lines can also be used for rigid registrations of anatomical surfaces [46] or for image and data analysis in medical applications [12]. The goal of this survey is to convey the reader to the different feature line methods and offer a tutorial with all the knowledge to be able to implement each of the methods.

1.1 Organization

We first give an overview of the mathematical background. In Sect. 2, we introduce the necessary fundamentals of differential geometry. Afterwards, we adapt these fundamentals to triangulated surface meshes in Sect. 3. Section 4 discusses general aspects and requirements for feature lines. Next, we present different feature line methods in Sect. 5 and compare them in Sect. 6. Finally, Sect. 7 holds the conclusion of this survey.

2 Differential Geometry Background

This section presents the fundamentals of differential geometry for feature line generation, which will be crucial for the further sections. We present the basic terms and properties. This section is inspired by differential geometry books [10, 11, 28].

2.1 Basic Prerequisites

A surface \(f: I \subset \mathbb{R}^{2} \rightarrow \mathbb{R}^{3}\) is called a parametric surface if f is an immersion. An immersion means that all partial derivatives \(\frac{\partial f} {\partial x_{i}}\) are injective at each point. The further calculations are mostly based on the tangent space of a surface. The tangent space \(\mathcal{T}_{p}f\) of f is defined as the linear combination of the partial derivatives of f:

$$\displaystyle{\mathcal{T}_{p}f\,:=\,\mathop{\mathrm{span}}\nolimits \Big\{ \frac{\partial f} {\partial x_{1}}\Big\vert _{\mathbf{x}=\mathbf{u}}, \frac{\partial f} {\partial x_{2}}\Big\vert _{\mathbf{x}=\mathbf{u}}\Big\}.}$$

Here, \(\mathop{\mathrm{span}}\nolimits\) is the space of all linear combinations. Formally: \(\mathop{\mathrm{span}}\nolimits \{\mathbf{v}_{1},\mathbf{v}_{2}\}\,:=\,\{\alpha \mathbf{v}_{1} +\beta \mathbf{v}_{2}\,\vert \,\alpha,\beta \in \mathbb{R}\}\). With the tangent space, we can define a normalized normal vector n. The (normalized) normal vector n(u) at p = f(u) is defined such that for all elements \(\mathbf{v} \in \mathcal{T}_{p}f\) the equation \(\langle \mathbf{v},\mathbf{n}(\mathbf{u})\rangle = 0\) holds, where \(\langle.,.\rangle\) denotes the canonical Euclidean dot product. Therefore, n(u) is defined as:

$$\displaystyle{\mathbf{n}(\mathbf{u}) = \frac{ \frac{\partial f} {\partial x_{1}} \Big\vert _{\mathbf{x}=\mathbf{u}} \times \frac{\partial f} {\partial x_{2}} \Big\vert _{\mathbf{x}=\mathbf{u}}} {\big\Vert \frac{\partial f} {\partial x_{1}} \Big\vert _{\mathbf{x}=\mathbf{u}} \times \frac{\partial f} {\partial x_{2}} \Big\vert _{\mathbf{x}=\mathbf{u}}\big\Vert }.}$$

This map is also called the Gauss map. Figure 2 depicts the domain of a parametric surface as well as the tangent space \(\mathcal{T}_{p}f\) and the normal n.

Fig. 2
figure 2

The basic elements for differential geometry. A parametric surface is given and the partial derivatives create the tangent space

2.2 Curvature

The curvature is a fundamental property to identify salient regions of a surface that should be conveyed by feature lines. Colloquially spoken, it is a measure of how far the surface bends at a certain point. If we consider ourselves to stand on a sphere at a specific point, it does not matter in which direction we go, the bending will be the same. If we imagine we stand on a plane at a specific point, we can go in any direction, there will be no bending. Without knowing any measure of the curvature, we can state that a plane has zero curvature and that a sphere with a small radius has a higher curvature than a sphere with a higher radius. This is due to the fact that a sphere with an increasing radius becomes locally more a plane. Intuitively, the curvature depends also on the direction in which we decide to go. On a cylinder, we have a bending in one direction but not in the other. Painting the trace of a walk on the surface and view it in 3D space, we could treat this as a 3D curve. The definition of the curvature of a curve may be adapted to the curvature of a surface. The adaption of this concepts is explained in the following. Let \(c: I \subset \mathbb{R} \rightarrow \mathbb{R}^{3}\) be a 3D parametric curve with \(\Vert \frac{dc} {dt}\Vert = 1\). The property of constant length of the derivative is called arc length or natural parametrization. One can show that such a parametrization exists for each continuous, differentiable curve that is an immersion. So, if we want to measure the size of bending, we can use the norm of the second derivative of the curve. Therefore, the (absolute) curvature κ(t) at a time point t is defined as:

$$\displaystyle{\kappa (t) =\big\Vert c''(t)\big\Vert.}$$

To determine the curvature on a certain point of the surface in a specific direction, we can employ a curve and calculate its curvature. This approach is imperfect because curves that lie in a plane can have non-vanishing curvature, e.g., a circle, whereas we claimed to have zero curvature on a planar surface. Therefore, we have to distinguish which part of the second derivative of the curve contributes to the tangent space and which contributes to the normal part of the surface. Decomposing the second derivative of the curve into tangential and normal part of the surface yields:

$$\displaystyle{c''(t) =\mathop{\underbrace{ \mathop{\mathrm{proj}}\nolimits _{\mathcal{T}_{p}f}c''(t)}}\limits _{\text{tangential part}} +\mathop{\underbrace{ \langle c''(t),\mathbf{n}\rangle \mathbf{n}}}\limits _{\text{normal part}},}$$

where c(t) = p and \(\mathop{\mathrm{proj}}\nolimits _{E}\mathbf{x}\) means the projection of the point x onto the space E, see Fig. 3. The curvature κ c (p) of the surface at p along the curve c is defined as the coefficient of the normal part:

$$\displaystyle{ \kappa _{c}(\,p) =\langle c''(t),\mathbf{n}\rangle. }$$
(1)
Fig. 3
figure 3

The curve’s second derivative is decomposed into the tangential and normal part

Hence, we know that \(c'(t) \in \mathcal{T}_{p}f\) and \(\langle c'(t),\mathbf{n}\rangle = 0\). Deriving the last equation yields:

$$\displaystyle\begin{array}{rcl} \frac{d} {dt}\langle c'(t),\mathbf{n}\rangle & =& 0 {}\\ \frac{d} {dt}\langle c'(t),\mathbf{n}\rangle & =& \langle c''(t),\mathbf{n}\rangle +\langle c'(t), \frac{\partial \mathbf{n}} {\partial t} \rangle. {}\\ \end{array}$$

We obtain

$$\displaystyle{\langle c''(t),\mathbf{n}\rangle = -\langle c'(t), \frac{\partial \mathbf{n}} {\partial t} \rangle.}$$

Combining this equation with Eq. (1) yields

$$\displaystyle{ \kappa _{c'(t)}(\mathbf{p}) = -\langle c'(t), \frac{\partial \mathbf{n}} {\partial t} \rangle. }$$
(2)

Thus, the curvature of a surface at a specific point in a certain direction can be calculated by a theorem by Meusnier. We call the vectors v, w at p the maximal/ minimal principle curvature directions of the maximal and minimal curvature, if κ v (p) ≥ κ v(p), κ w (p) ≤ κ v(p) for all directions \(\mathbf{v}' \in \mathcal{T}_{p}f\). If such a minimum and maximum exists, then v and w are perpendicular, see Sect. 2.5 for a proof. If we want to determine the curvature in direction u, we first need to normalize u, v, w and can then determine κ u (p) by:

$$\displaystyle{ \kappa _{\mathbf{u}}(\mathbf{p}) =\langle \mathbf{u},\mathbf{v}\rangle ^{2}\kappa _{ \mathbf{v}}(\mathbf{p}) +\langle \mathbf{u},\mathbf{w}\rangle ^{2}\kappa _{ \mathbf{w}}(\mathbf{p}). }$$
(3)

The coefficients of the curvature are the decomposition of the principle curvature directions with the vector u.

2.3 Covariant Derivative

The essence of the feature line generation is the analysis of local variations in a specific direction, i.e., the covariant derivative. Therefore, the covariant derivative is a crucial concept for feature line methods. We consider a scalar field on a parametric surface \(\varphi: f(I) \rightarrow \mathbb{R}\). One can imagine this scalar field as a heat or pressure (as well as a curvature) distribution. The directional derivative of \(\varphi\) in direction v can be written as \(D_{\mathbf{v}}\varphi\) and is defined by:

$$\displaystyle{D_{\mathbf{v}}\varphi (\mathbf{x}) =\lim _{h\rightarrow 0}\frac{\varphi (\mathbf{x} + h\mathbf{v}) -\varphi (\mathbf{x})} {h}.}$$

If \(\varphi\) is differentiable at x, the directional derivative can be simplified:

$$\displaystyle{D_{\mathbf{v}}\varphi (\mathbf{x}) =\langle \nabla \varphi (\mathbf{x}),\mathbf{v}\rangle,}$$

where ∇ denotes the gradient. The gradient is an operator applied to a scalar field and results in a vector field. When we want to extend the definition of the derivative to an arbitrary surface, we first need to define the gradient of surfaces. In the following, we make use of the covariant derivative. The standard directional derivative results in a vector which lies somewhere in the 3D space, whereas the covariant derivative is restricted to stay in the tangent space of the surface. The gradient is a two-dimensional vector. Actually, we need a three-dimensional vector in the tangent space of the surface. Here, we employ the gradient and use it as coefficients of the tangential basis. Unfortunately, this leads to wrong results because of the distortions of the basis of the tangent space, see Fig. 4. The basis is not necessarily an orthogonal normalized basis as in the domain space and can therefore lead to distortions of the gradient on the surface.

Fig. 4
figure 4

Given: a scalar field in the domain. Determining the gradient and using it as coefficient for the basis tangent vectors leads to the wrong result (grey). Balancing the distortion with the inverse of the metric tensor yields the correct gradient on the surface (black)

One way to calculate this vector is to use the plain scalar field \(\varphi: \mathbb{R}^{3} \rightarrow \mathbb{R}\). Afterwards, we are able to attain the gradient in three-dimensional space and project it on the tangent space. However, we want to use the gradient of \(\varphi: \mathbb{R}^{2} \rightarrow \mathbb{R}\) in the domain of a parametric surface and compensate the length distortion such that we can use it as coordinates with the basis in the tangent space. One important fact is when multiplying the gradient with the i-th basis vector, one obtains the partial derivative of \(\varphi\) with x i . Hence, we know that the three-dimensional gradient \(\nabla \varphi\) lies in the tangent space. Therefore, it can be represented as a linear combination of \(\frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}}\) with coefficients α, β:

$$\displaystyle{\nabla \varphi =\alpha \cdot \frac{\partial f} {\partial x_{1}} +\beta \cdot \frac{\partial f} {\partial x_{2}}.}$$

Multiplying both sides with the basis vectors and using the relation \(\frac{\partial \varphi } {\partial x_{i}} =\langle \nabla \varphi, \frac{\partial f} {\partial x_{i}}\rangle\), we obtain an equation system:

$$\displaystyle{ \left (\begin{array}{*{10}c} \frac{\partial \varphi } {\partial x_{1}} \\ \frac{\partial \varphi } {\partial x_{2}} \end{array} \right )\ =\ \left (\begin{array}{*{10}c} \alpha \cdot \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{1}} \rangle +\beta \cdot \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}} \rangle \\ \alpha \cdot \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}} \rangle +\beta \cdot \langle \frac{\partial f} {\partial x_{2}}, \frac{\partial f} {\partial x_{2}} \rangle \end{array} \right )\ =\ \mathop{\underbrace{\left (\begin{array}{*{10}c} \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{1}} \rangle & \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}} \rangle \\ \langle \frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}} \rangle & \langle \frac{\partial f} {\partial x_{2}}, \frac{\partial f} {\partial x_{2}} \rangle \end{array} \right )}}\limits _{g\,:=\,}\left (\begin{array}{*{10}c} \alpha \\ \beta \end{array} \right ). }$$

The matrix g is called the metric tensor. This tensor describes the length and area distortion from \(\mathbb{R}^{2}\) to the surface. The last equation yields the coefficients α, β when multiplied with the inverse of g:

$$\displaystyle{\left (\begin{array}{*{10}c} \alpha \\ \beta \end{array} \right ) = g^{-1}\left (\begin{array}{*{10}c} \frac{\partial \varphi } {\partial x_{1}} \\ \frac{\partial \varphi } {\partial x_{2}} \end{array} \right ).}$$

This leads to a general expression of the gradient for a scalar field \(\varphi: \mathbb{R}^{n} \rightarrow \mathbb{R}\):

$$\displaystyle{ \nabla \varphi =\sum _{ i,j=1}^{n}\Bigg(g^{ij} \frac{\partial \varphi } {\partial x_{j}}\Bigg) \frac{\partial } {\partial x_{i}}, }$$
(4)

where g ij is the i, j-th matrix entry from the inverse of g and \(\frac{\partial } {\partial x_{i}}\) means the basis. Now, we are able to determine the covariant derivative of a scalar field by first determining its gradient and afterwards using the dot product:

$$\displaystyle{D_{w}\varphi =\langle \nabla \varphi,w\rangle.}$$

2.4 Laplace-Beltrami Operator

The Laplace-Beltrami operator is needed for a specific feature line method and will therefore be introduced. The Laplace operator is defined as a composition of the gradient and the divergence. When interpreting the vector field as a flow field, the divergence is a measure of how much more flow leaves a specific region than flow enters. In the Euclidean space, the divergence \(\mathop{\mathrm{div}}\nolimits \varPhi\) of a vector field \(\varPhi: \mathbb{R}^{n} \rightarrow \mathbb{R}^{n}\) is the sum of the partial derivatives of the components Φ i :

$$\displaystyle{ \mathop{\mathrm{div}}\nolimits \varPhi =\sum _{ i=1}^{n} \frac{\partial } {\partial x_{i}}\varPhi _{i}. }$$

The computation of the divergence for a vector field \(\varPhi: \mathbb{R}^{n} \rightarrow \mathbb{R}^{n}\) in Euclidean space is straightforward. However, for computing the divergence to an arbitrary surface we have to be aware of the length and area distortions. Without giving a derivation of the divergence, the components Φ i of the vector field have to be weighted by the square root of the determinant \(\sqrt{\vert g\vert }\) of the metric tensor g before taking the derivative. The square root of the determinant of g describes the distortion change from the Euclidean space to the surface. Formally, the divergence of a vector field \(\varPhi: \mathbb{R}^{n} \rightarrow \mathbb{R}^{n}\) with a given metric tensor g is given by:

$$\displaystyle{ \mathop{\mathrm{div}}\nolimits \varPhi = \frac{1} {\sqrt{\vert g\vert }}\sum _{i=1}^{n} \frac{\partial } {\partial x_{i}}\Bigg(\sqrt{\vert g\vert }\ \varPhi _{i}\Bigg). }$$
(5)

Given the definition of the gradient and the divergence, we can compose both operators to obtain the Laplace-Beltrami operator \(\varDelta \varphi\) of a scalar field \(\varphi: \mathbb{R}^{n} \rightarrow \mathbb{R}\) on surfaces:

$$\displaystyle{ \varDelta \varphi =\mathop{ \mathrm{div}}\nolimits \nabla \varphi = \frac{1} {\sqrt{\vert g\vert }}\sum _{i,j=1}^{n} \frac{\partial } {\partial x_{i}}\Bigg(\sqrt{\vert g\vert }\,g^{ij}\ \frac{\partial \varphi } {\partial x_{j}}\Bigg). }$$
(6)

2.5 Shape Operator

In Sect. 2.2, we noticed that the curvature of a parametric surface at a specific point p in a certain direction can be determined by Eq. (2):

$$\displaystyle{\kappa _{c'(t)}(\mathbf{p}) = -\langle c'(t), \frac{\partial \mathbf{n}} {\partial t} \rangle.}$$

Actually, this means that the curvature in the direction c′(t) is a measure of how much the normal changes in this direction, too. Given is \(\mathbf{v} \in \mathcal{T}_{\mathbf{p}}f\) with p = f(u) and \(\vert \mathbf{v}\vert = 1\). Then, we determine the coefficients α, β of v with the basis \(\frac{\partial f} {\partial x_{1}}, \frac{\partial f} {\partial x_{2}}\):

$$\displaystyle{\left (\begin{array}{*{10}c} \alpha \\ \beta \end{array} \right ) = g^{-1}\left (\begin{array}{*{10}c} \langle \mathbf{v}, \frac{\partial f} {\partial x_{1}} \rangle \\ \langle \mathbf{v}, \frac{\partial f} {\partial x_{2}} \rangle \end{array} \right ).}$$

We use (α, β) to determine the derivative of n along v by using the two-dimensional curve \(\tilde{c}(t) = \mathbf{u} + t\binom{\alpha }{\beta }\) and calculate:

$$\displaystyle{D_{\mathbf{v}}\mathbf{n}\,:=\, \frac{d} {dt}\mathbf{n}(\tilde{c}(t)).}$$

We define S(v) : = − D v n. This linear operator is called Shape Operator (also Weingarten Map or Second Fundamental Tensor). One can see that \(S( \frac{\partial f} {\partial x_{i}}) = \frac{\partial \mathbf{n}} {\partial x_{i}}\) holds. Note that this operator can directly operate on the 3D space with a three-dimensional vector in the tangent space, as well as the 2D space with the coefficients of the basis. Therefore, it can be represented by a matrix S. Recall Eq. (2), we substitute c′ with v and \(\frac{\partial \mathbf{n}} {\partial t}\) by S v:

$$\displaystyle{\kappa _{\mathbf{v}}(\mathbf{p}) =\langle \mathbf{v},S\mathbf{v}\rangle.}$$

We want to show that the principle curvature directions are the eigenvectors of S. Assuming \(\mathbf{v}_{1},\mathbf{v}_{2} \in \mathbb{R}^{2}\) are the normalized eigenvectors with the eigenvalues \(\lambda _{1} \geq \lambda _{2}\). Every normalized vector w can be written as a linear combination of v 1, v 2: \(\mathbf{w} =\alpha \mathbf{v}_{1} +\beta \mathbf{v}_{2}\) with \(\Vert w\Vert =\Vert \alpha \mathbf{v}_{1} +\beta \mathbf{v}_{2}\Vert =\alpha ^{2} +\beta ^{2} + 2\alpha \beta \langle \mathbf{v}_{1},\mathbf{v}_{2}\rangle = 1\). Therefore, we obtain:

$$\displaystyle{ \kappa _{\mathbf{w}}(\mathbf{p}) =\langle \mathbf{w},S\mathbf{w}\rangle = \frac{1} {2}[(\alpha ^{2} -\beta ^{2})(\lambda _{ 1} -\lambda _{2}) +\lambda _{1} +\lambda _{2}]. }$$
(7)

One can see from Eq. (7) that κ w (p) reaches a maximum if \(\beta = 0,\alpha = 1\), and a minimum is reached if \(\alpha = 0,\beta = 1\). If the eigenvalues (curvatures) are not equal, we can show that the principle curvature directions are perpendicular. For this, we need to show that S is a self-adjoint operator. Thus, the equation \(\langle S\mathbf{v},\mathbf{w}\rangle =\langle \mathbf{v},S\mathbf{w}\rangle\) holds. We show this by using the property \(\langle \mathbf{n}, \frac{\partial f} {\partial x_{i}}\rangle = 0\) and derive this with x j :

$$\displaystyle{\langle \frac{\partial \mathbf{n}} {\partial x_{j}}, \frac{\partial f} {\partial x_{i}}\rangle +\langle \mathbf{n}, \frac{\partial ^{2}f} {\partial x_{i}\partial x_{j}}\rangle = 0.}$$

We demonstrate that S is a self-adjoint operator with the basis \(\frac{\partial f} {\partial x_{i}}\):

$$\displaystyle\begin{array}{rcl} \langle S( \frac{\partial f} {\partial x_{i}}), \frac{\partial f} {\partial x_{j}}\rangle & =& \langle -\frac{\partial \mathbf{n}} {\partial x_{i}}, \frac{\partial f} {\partial x_{j}}\rangle =\langle \mathbf{n}, \frac{\partial ^{2}f} {\partial x_{i}\partial x_{j}}\rangle =\langle -\frac{\partial \mathbf{n}} {\partial x_{j}}, \frac{\partial f} {\partial x_{i}}\rangle =\langle S( \frac{\partial f} {\partial x_{j}}), \frac{\partial f} {\partial x_{i}}\rangle. {}\\ \end{array}$$

Now, we show that the eigenvectors (principle curvature directions) are perpendicular if the eigenvalues (curvatures) are different:

$$\displaystyle{\lambda _{1}\langle \mathbf{v}_{1},\mathbf{v}_{2}\rangle =\langle S\mathbf{v}_{1},\mathbf{v}_{2}\rangle =\langle \mathbf{v}_{1},S\mathbf{v}_{2}\rangle =\lambda _{2}\langle \mathbf{v}_{1},\mathbf{v}_{2}\rangle.}$$

The equation is only true if v 1, v 2 are perpendicular (and \(\lambda _{1}\neq \lambda _{2}\) holds).

3 Discrete Differential Geometry

This section adapts the continuous differential geometry to discrete differential geometry, the area of polygonal meshes that approximate continuous geometries. The following notation is used in the remainder of this paper. Let \(M \subset \mathbb{R}^{3}\) be a triangulated surface mesh. The mesh consists of vertices i ∈ V with associated positions \(\mathbf{p}_{i} \in \mathbb{R}^{3}\), edges E = { (i, j) | i, j ∈ V }, and triangles T = { (i, j, k) | (i, j), (j, k), (k, i) ∈ E}. We write n i as the normalized normal vector at vertex i. If nothing else is mentioned, we refer to normal vectors at vertices. Furthermore, \(\mathcal{N}(i)\) denotes the neighbors of i. So, for every \(j \in \mathcal{N}(i),(i,j) \in E\) holds. Furthermore, if we use a triangle for calculation, we always use this notation: given a triangle △ = (i, j, k) with vertices p i , p j , p k , and the edges are defined as \(\mathbf{e}_{1} = \mathbf{p}_{i} -\mathbf{p}_{j},\mathbf{e}_{2} = \mathbf{p}_{j} -\mathbf{p}_{k},\mathbf{e}_{3} = \mathbf{p}_{k} -\mathbf{p}_{i}\).

3.1 Voronoi Area

We need to introduce the term Voronoi area, as it is important for the determination of the curvature. So, given are points in a 2D space. Every point is spread out in equal speed. If two fronts collide, they stop to spread out further at this region. After all fronts stopped, every point lies in a region that is surrounded by a front. This region is called a Voronoi region. Formally, given distinct points \(\mathbf{x}_{i} \in \mathbb{R}^{2}\) in the plane, the Voronoi region for the point x k is defined as the set of points V (x k ) with

$$\displaystyle{ V (\mathbf{x}_{k}) =\{ \mathbf{x} \in \mathbb{R}^{2}\,:\ \Vert \mathbf{x} -\mathbf{x}_{ k}\Vert \leq \Vert \mathbf{x} -\mathbf{x}_{j}\Vert,\,j\neq k\}. }$$

See Fig. 5a for an example of a Voronoi diagram. To obtain the Voronoi area of a vertex on a surface mesh, the Voronoi area of each incident triangle is accumulated. The Voronoi area calculation is based on the method by Meyer et al. [33]. In case of a non-obtuse triangle, the Voronoi area at p i is determined by the perpendicular bisector of the edges incident to p i . The point of intersection, the midpoint of the incident edges and the point itself define the endpoints of the Voronoi area. The triangle area of the Voronoi region equals:

$$\displaystyle{ \mathcal{A}_{\bigtriangleup }(\mathbf{p}_{i}) = \frac{1} {8}\Big(\Vert \mathbf{e}_{1}\Vert ^{2} \cdot \cot (\mathbf{e}_{ 2},\mathbf{e}_{3}) +\Vert \mathbf{e}_{3}\Vert ^{2} \cdot \cot (\mathbf{e}_{ 1},\mathbf{e}_{2})\Big). }$$

In case of an obtuse triangle, the Voronoi area is equal half of the triangle area if the angle at p i is obtuse. Otherwise it is a quarter of the triangle area, see Fig. 5b.

Fig. 5
figure 5

The Voronoi diagram of different settings. In (a) Voronoi diagram of a set of points is determined. In (b) the Voronoi area is calculated. If one of the triangles is obtuse, the area leaves the triangle

3.2 Discrete Curvature

The calculation of the curvatures as well as the principle curvature directions are important for a number of feature line techniques. Several approaches exist to approximate the curvatures. Some methods try to fit an analytic surface (higher order polynomials) to the mesh and determine the curvatures analytically [5, 17]. Another approach estimates the normal curvature along edges first and then estimates the shape operator [6, 18, 33, 38, 48]. Other approaches are based on the calculation of the shape operator S [1, 8, 42]. We use the curvature estimation according to [42]. After S is determined on a triangle basis, it is adapted to vertices. We already defined that S v yields the change of the normal in the direction of v:

$$\displaystyle{S\mathbf{v} = D_{\mathbf{v}}\mathbf{n}.}$$

This property is used to assess S for each triangle. When applying S to the edge e 1, it should result in n i n j because of the change of the normals along the edge. We need a basis of the tangent space of the triangle:

$$\displaystyle{\tilde{\mathbf{e}}_{1} = \frac{\mathbf{e}_{1}} {\vert \mathbf{e}_{1}\vert },\ \ \ \ \ \tilde{\mathbf{e}}_{2} = \frac{\mathbf{e}_{2}} {\vert \mathbf{e}_{2}\vert }.}$$

Afterwards, we build the orthogonal normalized basis vectors x , y by:

$$\displaystyle{ \begin{array}{l} \mathbf{x}_{\bigtriangleup }\,:=\,\tilde{\mathbf{e}}_{1},\ \ \ \ \ \mathbf{y}_{\bigtriangleup }\,:=\,\frac{\mathbf{x}_{\bigtriangleup }\times (\tilde{\mathbf{e}}_{2}\times \mathbf{x}_{\bigtriangleup })} {\Vert \mathbf{x}_{\bigtriangleup }\times (\tilde{\mathbf{e}}_{2}\times \mathbf{x}_{\bigtriangleup })\Vert }.\end{array} }$$
(8)

Applying the aforementioned property of the shape operator to all edges according to the basis leads to the following equation system:

$$\displaystyle\begin{array}{rcl} S\left (\begin{array}{*{10}c} \langle \mathbf{e}_{1},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{e}_{1},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right )& =& \left (\begin{array}{*{10}c} \langle \mathbf{n}_{i} -\mathbf{n}_{j},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{n}_{i} -\mathbf{n}_{j},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right ) \\ S\left (\begin{array}{*{10}c} \langle \mathbf{e}_{2},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{e}_{2},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right )& =& \left (\begin{array}{*{10}c} \langle \mathbf{n}_{j} -\mathbf{n}_{k},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{n}_{j} -\mathbf{n}_{k},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right ) \\ S\left (\begin{array}{*{10}c} \langle \mathbf{e}_{3},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{e}_{3},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right )& =& \left (\begin{array}{*{10}c} \langle \mathbf{n}_{k} -\mathbf{n}_{i},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{n}_{k} -\mathbf{n}_{i},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right ),{}\end{array}$$
(9)

see Fig. 6 for an illustration. Here, we have three unknowns (the matrix entries of the symmetric matrix \(S = \binom{e\ f}{f\ g}\)) and six linear equations.Thus, a least square method can be applied to fit the shape operator to approximate curvature for each triangle. Next, we need to calculate S for each vertex of the mesh. As the triangle basis normally differs from each vertex tangent space basis, we need to transform the shape operator according to the new coordinate system. First, we assume that the normal n of the face is equal to the incident vertex normal n i . Hence, the basis (x , y ) of the triangle is coplanar to the basis (x i , y i ) of the incident vertex i. Assuming we have the shape operator given in the vertex basis, then the entries can be determined by:

$$\displaystyle\begin{array}{rcl} e_{p}& =& \left (\begin{array}{*{10}c} 1&0 \end{array} \right )\left (\begin{array}{*{10}c} e_{p} &f_{p} \\ f_{p}& g_{p} \end{array} \right )\left (\begin{array}{*{10}c} 1\\ 0 \end{array} \right ) = \mathbf{x}_{i}^{T}S\mathbf{x}_{ i} {}\\ f_{p}& =& \left (\begin{array}{*{10}c} 1&0 \end{array} \right )\left (\begin{array}{*{10}c} e_{p} &f_{p} \\ f_{p}& g_{p} \end{array} \right )\left (\begin{array}{*{10}c} 0\\ 1 \end{array} \right ) = \mathbf{x}_{i}^{T}S\mathbf{y}_{ i} {}\\ g_{p}& =& \left (\begin{array}{*{10}c} 0&1 \end{array} \right )\left (\begin{array}{*{10}c} e_{p} &f_{p} \\ f_{p}& g_{p} \end{array} \right )\left (\begin{array}{*{10}c} 0\\ 1 \end{array} \right ) = \mathbf{y}_{i}^{T}S\mathbf{y}_{ i}.{}\\ \end{array}$$

As we have determined the shape operator in the basis (x , y ), we can express the basis of the vertex by expressing the new coordinate system with the old basis \(\mathbf{x}_{i} =\alpha \mathbf{x}_{\bigtriangleup } +\beta \mathbf{y}_{\bigtriangleup }\):

$$\displaystyle\begin{array}{rcl} \alpha & =& \langle \mathbf{x}_{i},\mathbf{x}_{\bigtriangleup }\rangle {}\\ \beta & =& \langle \mathbf{x}_{i},\mathbf{y}_{\bigtriangleup }\rangle. {}\\ \end{array}$$

The entry e p can be determined by:

$$\displaystyle{ e_{p} = \left (\begin{array}{*{10}c} \alpha &\beta \end{array} \right )S\left (\begin{array}{*{10}c} \alpha \\ \beta \end{array} \right ). }$$
(10)

The other entries can be calculated by analogous calculations. For the second case, we rotate the coordinate system of the triangle around the cross product of the normal such that the basis of the vertex and the triangle are coplanar. Finally, we use this to determine the shape operator of the vertices. We determine the shape operators for all incident triangles of a vertex. Afterwards, we rotate the coordinate systems of the triangles to be coplanar with the basis of the vertex. Next, we re-express the shape operator in terms of the basis of the vertex. Then, we weight the shape operator according to the Voronoi area of the triangle and accumulate this tensor. Finally, we divide the accumulated shape operator by the sum of the weights. The eigenvalues provide the principle curvatures, and the eigenvectors give the principle curvature directions according to the basis. The pseudo-code 1 summarizes the algorithm.

Fig. 6
figure 6

The shape operator estimation is based on a local coordinate system, the edges and the normals

Algorithm 1 Pseudo-code for the curvature estimation.

for  each triangle:

   Build basis accord. to Eq. (8)

   Determine S accord. to Eq. (9)

   for  each vertex incident  to the triangle:

      Rotate the triangle basis to the vertex basis

      Determine S in the new basis accord. to Eq. (10)

      Add this tensor weighted by the voronoi area

   end

end

for  each vertex:

   Divide S by the sum of the weights

   Determine the eigenvalues and eigenvectors

end

Please note that this algorithm can be generalized to obtain higher-order derivatives. It can be used to determine the derivative of the curvature as it is important for a specific feature line method. Formally, the derivative of the shape operator has the form:

$$\displaystyle{ C = \left (\begin{array}{*{10}c} D_{\mathbf{v}}S &D_{\mathbf{w}}S \end{array} \right ) = \left (\begin{array}{*{10}c} \left (\begin{array}{*{10}c} a&b\\ b &c \end{array} \right )\ \left (\begin{array}{*{10}c} b&c\\ c &d \end{array} \right ) \end{array}\right ). }$$
(11)

For the determination of the change of the curvature in direction u, the tensor C has to be multiplied multiple times:

$$\displaystyle{ D_{\mathbf{u}}\kappa =\langle \mathbf{u},\left (\begin{array}{*{10}c} D_{\mathbf{v}}S \cdot \mathbf{u}&D_{\mathbf{w}}S \cdot \mathbf{u} \end{array} \right )\cdot \mathbf{u}\rangle. }$$
(12)

3.3 Discrete Covariant Derivative

First, we consider a linear 2D scalar field \(\varphi (\mathbf{x}) =\alpha \cdot x_{1} +\beta \cdot x_{2}+\gamma\) and its gradient:

$$\displaystyle{ \nabla \varphi = \left (\begin{array}{*{10}c} \frac{\partial } {\partial x_{1}} \varphi \\ \frac{\partial } {\partial x_{2}} \varphi \end{array} \right ) = \left (\begin{array}{*{10}c} \alpha \\ \beta \end{array} \right ). }$$
(13)

To determine the gradient of a triangle △ = (i, j, k) with scalar values \(\varphi _{i}\,:=\,\varphi (\mathbf{p}_{i}),\varphi _{j}\,:=\,\varphi (\mathbf{p}_{j})\), and \(\varphi _{k}\,:=\,\varphi (\mathbf{p}_{k})\), we build a basis according to Eq. (8) and transform the points \(\mathbf{p}_{i},\mathbf{p}_{j},\mathbf{p}_{k} \in \mathbb{R}^{3}\) to \(\mathbf{p}'_{i},\mathbf{p}'_{j},\mathbf{p}'_{k} \in \mathbb{R}^{2}\) by:

$$\displaystyle{ \mathbf{p}'_{i} = \left (\begin{array}{*{10}c} 0\\ 0 \end{array} \right )\qquad \mathbf{p}'_{j} = \left (\begin{array}{*{10}c} \langle \mathbf{p}_{j} -\mathbf{p}_{i},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{p}_{j} -\mathbf{p}_{i},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right )\qquad \mathbf{p}'_{k} = \left (\begin{array}{*{10}c} \langle \mathbf{p}_{k} -\mathbf{p}_{i},\mathbf{x}_{\bigtriangleup }\rangle \\ \langle \mathbf{p}_{k} -\mathbf{p}_{i},\mathbf{y}_{\bigtriangleup }\rangle \end{array} \right ). }$$

This transformation describes an isometric and conformal map. The next step is a linearization of the scalar values \(\varphi _{i},\varphi _{j},\varphi _{k}\). We want to determine a scalar field \(\varphi '(\mathbf{x}') =\alpha \cdot x_{1}' +\beta \cdot x_{2}'+\gamma\) such that

$$\displaystyle{ \varphi '(\mathbf{p}'_{i}) =\varphi _{i}\qquad \varphi '(\mathbf{p}'_{j}) =\varphi _{j}\qquad \varphi '(\mathbf{p}'_{k}) =\varphi _{k} }$$

holds. These conditions yield the following equation system:

$$\displaystyle{ \left (\begin{array}{*{10}c} \alpha &\beta \end{array} \right )\left (\begin{array}{*{10}c} \mathbf{p}'_{i}&\mathbf{p}'_{j}&\mathbf{p}'_{k} \end{array} \right )+\left (\begin{array}{*{10}c} \gamma &\gamma &\gamma \end{array} \right ) = \left (\begin{array}{*{10}c} \varphi _{i}&\varphi _{j}&\varphi _{k} \end{array} \right ). }$$

With \(\mathbf{p}'_{i} = \tbinom{0}{0}\) we obtain the following solution:

$$\displaystyle\begin{array}{rcl} \gamma & =& \varphi _{i}, {}\\ \left (\begin{array}{*{10}c} \alpha &\beta \end{array} \right )& =& \left (\begin{array}{*{10}c} \varphi _{j} -\varphi _{i}&\varphi _{k} -\varphi _{j} \end{array} \right )\left (\begin{array}{*{10}c} \mathbf{p}'_{j}&\mathbf{p}'_{k} \end{array} \right )^{-1}.{}\\ \end{array}$$

According to Eq. (13), the gradient of \(\varphi '\) is determined by \(\tbinom{\alpha }{\beta }\).

The basis x , y yields the gradient in 3D:

$$\displaystyle{ \nabla \varphi =\alpha \cdot \mathbf{x}_{\bigtriangleup } +\beta \cdot \mathbf{y}_{\bigtriangleup }. }$$

Figure 7 illustrates the gradient of a triangle. To determine the gradient per vertex, we use the same procedure as for the shape operator estimation. We transform the basis and weight the triangle gradient according to its proportion of the Voronoi area.

Fig. 7
figure 7

A triangle with different scalar values

3.4 Discrete Laplace-Beltrami Operator

Several methods exist to discretize the Laplace-Beltrami operator on surface meshes. For an overview, we recommend the state of the art report by Sorkine [45]. The operator can be presented by the generalized formula:

$$\displaystyle{ \varDelta \varphi (\mathbf{p}_{i}) =\sum _{j}w_{ij}\ \Big(\varphi (\mathbf{p}_{j}) -\varphi (\mathbf{p}_{i})\Big). }$$

Different weights w j give different discrete Laplace-Beltrami operators. For presenting different versions of this operator it is preferable that it fulfills some properties motivated by the smooth Laplace-Beltrami operator:

  • (Sym) The weights should be symmetric w ij  = w ji .

  • (Loc) If (i, j) ∉ E then w ij  = 0.

  • (Pos) All weights should be non-negative.

  • (Lin) If p i is contained in a plane and \(\varphi\) is linear, then \(\varDelta \varphi (\mathbf{p}_{i}) = 0\) should hold.

In the following, we introduce different discrete Laplace-Beltrami operators.

Combinatorial For the combinatorial Laplace-Beltrami operator we have:

$$\displaystyle{ w_{ij} = \left \{\begin{array}{@{}l@{\quad }l@{}} 1,\quad &\text{if}\ (i,j) \in E\\ 0,\quad &\text{otherwise}. \end{array} \right. }$$

This version may result in non-zero values on planar surfaces for linear scalar fields. Therefore, it violates (Lin).

Uniform Taubin [49] suggested the uniform Laplace-Beltrami operator. The weights are determined by the number of neighbors of p i :

$$\displaystyle{ w_{ij} = \left \{\begin{array}{@{}l@{\quad }l@{}} \frac{1} {\mathop{\mathrm{N}}\nolimits (i)},\quad &\text{if}\ (i,j) \in E \\ 0, \quad &\text{otherwise}. \end{array} \right. }$$

These weights also violate (Lin).

Floater’s Mean Value Floater [14] proposed the mean value weights by the tangent of the corresponding angles:

$$\displaystyle{ w_{ij} = \left \{\begin{array}{@{}l@{\quad }l@{}} \frac{\tan (\delta _{ij}/2)+\tan (\gamma _{ij}/2)} {\Vert \mathbf{p}_{i}-\mathbf{p}_{j}\Vert },\quad &\text{if}\ (i,j) \in E \\ 0, \quad &\text{otherwise}. \end{array} \right. }$$

See Fig. 8 for the angles. These weights violate (Sym).

Fig. 8
figure 8

This figure illustrates the triangles with the angles for the weight calculation

Cotangent Weights MacNeal [31] suggested the cotangent weights:

$$\displaystyle{ w_{ij} = \left \{\begin{array}{@{}l@{\quad }l@{}} \frac{\cot (\alpha _{ij})+\cot (\beta _{ji})} {2},\quad &\text{if}\ (i,j) \in E\\ 0, \quad &\text{otherwise}. \end{array} \right. }$$

See Fig. 8 for the angles. On general meshes the weights can violate (Pos).

Belkin Weights Belkin [2] suggested to determine weights over the whole surface:

$$\displaystyle{ \varDelta \varphi (\mathbf{p}_{i}) = \frac{1} {4\pi h^{2}(\mathbf{p}_{i})}\sum _{\bigtriangleup _{k}}\frac{A(\bigtriangleup _{k})} {3} \sum _{j\in \bigtriangleup _{k}}e^{-\frac{\Vert \mathbf{p}_{i}-\mathbf{p}_{j}\Vert ^{2}} {4h(\mathbf{p}_{i})} }\Big(\varphi (\mathbf{p}_{j}) -\varphi (\mathbf{p}_{i})\Big), }$$

where A(△ k ) denotes the area of the triangle △ k and h corresponds intuitively to the size of the neighborhood. This violates the (Loc) property.

Results The discussion leads to the question if there is any discrete Laplace-Beltrami operator which fulfills all required properties for an arbitrary surface mesh and, furthermore, if this operator converges pointwise to the Laplace-Beltrami operator on smooth surfaces. Wardetzky et al. [52] showed that there is no such operator. The proof is based on a Schönhardt polytope which demonstrate that there is no Laplace-Beltrami operator, which does not violate any condition. One example of a discrete Laplace operator can be obtained using linear finite elements over the polyhedral surface. Hildebrandt et al. [21] proved that if a sequences of surface meshes converges to a smooth surface in Hausdorff distance and the normal fields converge, then the Laplace operators converge in the operator norm. Despite of convergence, this operator is not perfect in the sense of [52], because for meshes with obtuse triangles, their weights may be non-positive weights. As a consequence, a maximum principle for the solutions of the discrete Dirichlet problem cannot be guaranteed.

3.5 Isolines on Discrete Surfaces

For feature line methods, it is essential not to restrict the lines to the edges, as it is not desirable to perceive the mesh edges. Given is a surface mesh and a scalar field, we want to depict the zero crossing of the scalar field. Therefore, we linearize the scalar values for each triangle according to the values of the incident points. Afterwards, we look for points on an edge such that the linearized values of the scalar values of the connecting points are equal to zero. Having two points on two edges of a triangle, we connect them. Suppose we have a triangle with scalar values \(\varphi _{i}> 0,\varphi _{j}> 0\) and \(\varphi _{k} <0\). Thus, we know that somewhere on edge e 2 and e 3 there is a zero crossing. We determine \(t = \frac{\varphi _{k}} {\varphi _{k}-\varphi _{j}}\) and multiply t with edge e 2. This yields the position of the zero crossing on the edge. The position on the edge e 3 is determined as well. Afterwards, both points will be connected, see Fig. 9.

Fig. 9
figure 9

In (a) the position of the zero crossing is determined and the points are connected. In (b) the isoline through a mesh is depicted

4 General Requirements of Feature Lines

The generation of feature lines leads to several requirements, which have to be considered for acquiring appropriate results.

Smoothing Most of the feature line methods use higher order derivatives. Therefore, the methods assume sufficiently smooth input data. For data acquired with laser scanners or industrial measurement process, smoothness cannot be expected. Discontinuities represent high frequencies in the surface mesh and lead to the generation of distracting (and erroneous) lines. Several algorithms exist, which smooth the surface by keeping relevant features. Depending on the feature line method, different smoothing algorithms can be applied. If the algorithm only uses the surface normals and the view direction, it is sufficient to simply smooth the surface normals. Geometry-based approaches, however, require to smooth the mesh completely. Operating only on scalar values, an algorithm which smoothes the scalar field around a certain region may be applied, too.

Frame Coherence The application of feature line approaches or in general for non-photorealistic rendering makes it crucial to provide methods that are frame-coherent. This means, during the interaction the user should not be distracted by features that pop out or disappear suddenly. A consistent and continuous depiction of features should be provided in consecutive frames of animation.

Filtering Feature line algorithms may generate lines on salient regions as well as lines that result from small local irregularities, which may not be necessary to convey the surface shape or even annoying and distracting. Filtering of feature lines to set apart relevant lines from distracting ones is a crucial part of a feature line generation. User-defined thresholds may control the rate of tolerance for line generation. Some algorithms use an underlying scalar field for thresholding. Lines are only drawn if the corresponding scalar value exceeds the user-defined threshold. Other methods integrate along a feature line, determine the value, and decide to draw the whole line instead of filtering some parts. We will also mention the filtering method of each presented feature line generation method.

5 Feature Lines

Line drawings were used extensively for medical visualization tasks, such as displaying tissue boundaries in volume data [4, 51], vascular structures [41], neck anatomy [27] and brain data [24, 47]. Furthermore, some higher order feature lines were qualitatively evaluated on medical surface data [29]. The importance of feature lines in medical visualization is discussed in [40]. Feature line methods can be divided into image-based and object-based methods. Image-based approaches are not in the focus of this survey. These methods are based on an image as input. All calculations are performed on the image with the pixels containing, for instance, an RGB or grey value. Usually, the image is convolved with different kernels to obtain the feature lines. The resulting feature lines are represented by pixels in the image space. These lines are mostly not frame-coherent. Comprehensive overviews of different feature line methods in image space are given by Muthukrishnan and Radha [34], Nadernejad et al. [35], and Senthilkumaran and Rajesh [44]. This section presents selected object-based feature line methods. We will explain the methods and limitations. Further information on line drawings can be found in  [40, 43].

5.1 Contours

We refer to a silhouette as a depiction of the outline of an object as this is the original definition by Étienne de Silhouette. The contour is defined as the loci of points where the normal vector and the view vector are mutually perpendicular (Fig. 10):

$$\displaystyle{ \langle \mathbf{n},\mathbf{v}\rangle = 0, }$$

where n is the normal vector and v is the view vector which points towards the camera. For the discrete case, we highlight edges as a contour whenever the sign of the dot product of the view vector with the normals of the incident triangle normals changes. The contour yields a first impression of the surface mesh. On the other hand, it is not sufficient to depict the surface well. The contour is not appropriate to gain a spatial impression of the object. Furthermore, it cannot depict salient regions, for instance strong edges.

Fig. 10
figure 10

The brain model with contours

Summary In the first place, the contour is necessary for gaining a first impression on the shape of the object. Unfortunately, spatial cues, as for instance strong edges, are not depicted.

5.2 Crease Lines

Crease lines are a set of edges where incident triangles change strongly. The dihedral angle, i.e., the angle of the normals of the corresponding incident triangles, along the edges is calculated. The edge belongs to a crease line if the dihedral angle exceeds a user-defined threshold τ. As the change of the normals is an indicator of the magnitude of the curvature, one can state that all points contribute to a feature line if the underlying absolute value of the maximum curvature exceeds a threshold (Fig. 11):

$$\displaystyle{ \kappa _{i} \geq \tau \ \text{ or }\ \langle \mathbf{n}_{i},\mathbf{n}_{j}\rangle \geq \tau ', }$$
Fig. 11
figure 11

The brain model with crease lines and contours

for adjacent triangles with corresponding normals n i , n j . Afterwards, all adjacent vertices which fulfill the property are connected. These feature lines need to be computed only once, since they are not view-dependent. Furthermore, these lines are only drawn along edges.

Summary Crease lines display edges where the dihedral angle is large. Strong edges are appropriately depicted, but if the object has small features, this method is not able to depict only important edges. This is caused by the local determination of the dihedral angle without concerning a neighborhood. Even smoothing the surface mesh would not deliver proper line drawings. Furthermore, this method is only able to detect features on edges.

5.3 Ridges and Valleys

Ridges and valleys were proposed by Interrante et al. [23] and adapted to triangulated surface meshes by Ohtake et al. [37]. These feature lines are curvature-based and not view-dependent. The computation is based on the principle curvature κ 1 as well as the associated principle curvature direction k 1 with \(\vert \kappa _{1}\vert \geq \vert \kappa _{2}\vert\). Formally, ridges and valleys are defined as the loci of points at which the principle curvatures assume an extremum in the principle direction:

$$\displaystyle{ D_{\mathbf{k}_{1}}\kappa _{1} = 0. }$$

According to two constraints, the sets of points are called (Fig. 12)

$$\displaystyle{ D_{\mathbf{k}_{1}}D_{\mathbf{k}_{1}}\kappa _{1}\left \{\begin{array}{@{}l@{\quad }l@{}} <0,\quad &\text{and}\ \,\kappa _{1}> 0\text{: ridges} \\> 0,\quad &\text{and}\ \,\kappa _{1} <0\text{: valleys.} \end{array} \right. }$$
(14)

To determine the ridge and valley lines, we first need to compute the principle curvatures and their associated principle curvature directions, recall Sect. 3.2. Afterwards, we determine the gradient of κ 1 for each vertex, see Sect. 3.3. Finally, we compute the dot product of the gradient and the associated principle curvature direction k 1. This yields the scalar value of \(D_{\mathbf{k}_{1}}\kappa _{1}\) for each vertex. Next, we distinguish between ridges and valleys and determine \(D_{\mathbf{k}_{1}}D_{\mathbf{k}_{1}}\kappa _{1}\) for each vertex. Here, we need again the gradient of each vertex with the value \(D_{\mathbf{k}_{1}}\kappa _{1}\) and determine the dot product of the result with k 1. Hence, we gain two scalar values per vertex: \(D_{\mathbf{k}_{1}}\kappa _{1}\) and \(D_{\mathbf{k}_{1}}D_{\mathbf{k}_{1}}\kappa _{1}\). Afterwards, we assess the zero-crossing of the first scalar value, recall Sect. 3.5. We connect the zero crossings in every triangle for which one condition of Eq. (14) holds. The filtering of the lines is again performed by employing an user-defined threshold. The integral along each ridge and valley line is determined according to the underlying curvature. If the magnitude of the integral exceeds the threshold for ridges or valleys, the line is drawn.

Fig. 12
figure 12

The brain model with ridges and valleys, and contours

Summary

The calculation is solely based on the curvature and therefore view-independent. This method is able to detect small features. The filtering depends on the underlying curvature and the length of the curve. Therefore, a long line with small curvature has also the chance to be drawn as a small line with high curvature. This strategy emphasizes also long feature lines. Ridges and valley lines are very susceptible to noise, since this method is of third order. Therefore, small discontinuities on the surface mesh lead to erroneous derivatives and this error propagates for each further derivative. A crucial task for this method is to guarantee a smoothed mesh to obtain reasonable results. Other approaches use surface fitting [37, 55] or a combination of discrete curvature approximation and smoothing techniques [22] to obtain a smoothed surface. From an artist’s point of view, some features may be more highlighted than others from different points of view. This is caused by the different perception of an object and by various light positions. For this, the ridge and valley lines are not appropriate due to the restriction of view-independent results.

5.4 Suggestive Contours

Suggestive contours are view-dependent feature lines introduced by DeCarlo et al. [9]. They extend the definition of the contour. These lines are defined as the set of minima of \(\langle \mathbf{n},\mathbf{v}\rangle\) in the direction of w, where n is the surface normal, v is the view vector which points towards the camera, and \(\mathbf{w} = (\mathbf{Id} -\mathbf{n}\mathbf{n}^{T})\mathbf{v}\) is the projection of the view vector on the tangent plane. Formally:

$$\displaystyle{ D_{\mathbf{w}}\,\langle \mathbf{n},\mathbf{v}\rangle = 0\ \text{ and }\ D_{\mathbf{w}}D_{\mathbf{w}}\,\langle \mathbf{n},\mathbf{v}\rangle> 0. }$$

Another equivalent definition of the suggestive contours is given by the radial curvature κ r . It is defined as the curvature in direction of w. As seen in Eq. (3), this curvature can be determined by knowing the principle curvature directions as well as the corresponding curvatures. Therefore, the definition of the suggestive contours is equivalent to the set of points at which the radial curvature κ r is equal 0 and the directional derivative of κ r in direction w is positive (Fig. 13):

$$\displaystyle{ \kappa _{r} = 0\ \text{ and }\ D_{\mathbf{w}}\kappa _{r}> 0. }$$

The filtering strategy is to apply a small threshold to eliminate suggestive contour points where the radial curvature in direction of the projected view vector is very low. Additionally, a hysteresis threshold is applied to increase granularity.

Fig. 13
figure 13

The brain model with suggestive contours and contours

Summary Suggestive contours extend the normal definition of the contour. This method depicts zero crossing of the diffuse light in view direction. This can be seen as inflection points on the surface. This method is of second order only and thus less susceptible to noise. Unfortunately, suggestive contours are not able to depict some sorts of sharp edges, which are in fact noticeable features. For instance, a rounded cube has no suggestive contours.

5.5 Apparent Ridges

Apparent ridges were proposed by Judd et al. [25]. These feature lines extend the definition of ridges by a view-dependent curvature term. Therefore, a projection operator P is used to map the vertices on a screen plane V. The orthonormal basis of the screen plane is given by (v 1, v 2). Assume we have a parametrized surface \(f: I \subset \mathbb{R}^{2} \rightarrow \mathbb{R}^{3}\). Then the projection of f onto V is given by:

$$\displaystyle{ P(\mathbf{x}) = \left (\begin{array}{*{10}c} \langle \mathbf{v}_{1},f(\mathbf{x})\rangle \\ \langle \mathbf{v}_{2},f(\mathbf{x})\rangle \end{array} \right ). }$$

The Jacobian J P of P can be expressed as:

$$\displaystyle{ J_{P} = \left (\begin{array}{*{10}c} \langle \mathbf{v}_{1}, \frac{\partial f} {\partial x_{1}} \rangle & \langle \mathbf{v}_{1}, \frac{\partial f} {\partial x_{2}} \rangle \\ \langle \mathbf{v}_{2}, \frac{\partial f} {\partial x_{1}} \rangle & \langle \mathbf{v}_{2}, \frac{\partial f} {\partial x_{2}} \rangle \end{array} \right ). }$$

In the discrete case with surface meshes, the Jacobian can be expressed by a basis for the tangent plane (e 1, e 2):

$$\displaystyle{ J_{P} = \left (\begin{array}{*{10}c} \langle \mathbf{v}_{1},\mathbf{e}_{1}\rangle & \langle \mathbf{v}_{1},\mathbf{e}_{2}\rangle \\ \langle \mathbf{v}_{2},\mathbf{e}_{1}\rangle & \langle \mathbf{v}_{2},\mathbf{e}_{2}\rangle \end{array} \right ). }$$

If a point p′ on the screen plane is not a contour point, there exists a small neighborhood where the inverse of P exists. Normal vectors n′ at a point p′ on the screen plane are defined as n′(p′) : = n( p −1(p′)). The main idea is to build a view-dependent shape operator S′ at a point p′ on the screen as

$$\displaystyle{ S'(\mathbf{w}') = D_{\mathbf{w}'}\mathbf{n}' }$$

where w′ is a vector in the screen plane. The view-dependent shape operator is therefore defined as:

$$\displaystyle{ S' = S\,J_{P}^{-1}. }$$

Here, the basis of the tangent space expressing S and J P must be the same. In contrast to the shape operator, the view-dependent shape operator is not a self-adjoint operator, recall Sect. 2.5. Therefore, it is not guaranteed that S′ has two eigenvalues, but it has a maximum singular value κ 1′ (Fig. 14):

$$\displaystyle{ \kappa _{1}' =\max _{\Vert \mathbf{w}\Vert =1}\Vert S'(\mathbf{w}')\Vert. }$$

This is equivalent to find the maximum eigenvalue of ST S′ and to take the square root.

Fig. 14
figure 14

The brain model with apparent ridges

The corresponding singular eigenvector t′ is called the maximum view-dependent principle direction. The rest of the method is similar to the ridge and valley methods. Formally, apparent ridges are defined as the loci of points at which the view-dependent principle curvature assumes an extremum in the view-dependent principle direction:

$$\displaystyle{ D_{\mathbf{t}'}\kappa _{1}' = 0\ \text{ and }\ D_{\mathbf{t}'}D_{\mathbf{t}'}\kappa _{1}' <0. }$$

The sign of κ′ is always positive. To distinguish between ridge lines and valley lines, we may compare the sign of the object-space curvature:

$$\displaystyle{ \kappa _{1}\left \{\begin{array}{@{}l@{\quad }l@{}} <0,\quad &\text{ridges} \\> 0,\quad &\text{valleys.}\end{array} \right. }$$

The calculation of the directional derivative is different from the other methods. This calculation is performed with finite differences. Therefore, we transform the singular eigenvector t′ to object space t using the corresponding basis of the associated vertex i. Furthermore, we need the opposite edges of the vertex and determine two points w 1, w 2 on the edges such that t and the edges are orthogonal and w 1, w 2 are the dropped perpendiculars of t to the corresponding edges. The directional derivatives are determined by averaging the finite differences of the curvatures between p i and w 1, w 2. The curvature of w 1, w 2 is assessed by linear interpolation of the endpoints of the associated edge. Having the principle view-dependent curvature direction t′, we need to make it consistent over the mesh because it is not well-defined. Therefore, t′ is flipped in opposite direction whenever it does not point to the direction where the view-dependent curvature is increasing. The zero-crossings are determined by checking if the principle view-dependent curvature directions of the vertices along an edge point are in the same direction. Only in this case there is no zero-crossing. Pointing in different directions means that the enclosing angle is greater than 90 degrees. The zero crossing is determined by interpolating the values of the derivatives. To locate only maxima, a perpendicular is dropped from each vertex to the zero crossing line. If the perpendiculars of the vertices of an edge make an acute angle with their principle view-dependent curvature directions, the zero crossing is a maximum. Otherwise, the zero crossing is a minimum. To eliminate unimportant lines, a threshold based on the view-dependent curvature is used.

Summary Apparent ridges incorporate the advantages of the ridges and valley lines as well as the view dependency. They extend the ridge and valley definition by introducing view-dependent curvatures. This method is able to depict salient regions as sharp edges. Unfortunately, the third order computation leads to low frame rates and to visual clutter if the surface mesh is not sufficiently smoothed.

5.6 Photic Extremum Lines

Photic extremum lines (PELs) were introduced by Xi et al. [54]. These feature lines depict regions of the surface mesh with significant variations of illuminations. This method is based on the magnitude of the light gradient. Formally, these lines are defined as the set of points where the variation of illumination along its gradient direction reaches a local maximum (Fig. 15):

$$\displaystyle{ D_{\mathbf{w}}\Vert \nabla f\Vert = 0\ \text{ and }\ D_{\mathbf{w}}D_{\mathbf{w}}\Vert \nabla f\Vert <0, }$$

with \(\mathbf{w} = \tfrac{\nabla f} {\Vert \nabla f\Vert }\). Normally, f is used as the headlight illumination: \(f\,:=\,\langle \mathbf{n},\mathbf{v}\rangle\) with n as the normal vector and v as the view-vector. PELs have more degrees of freedom to influence the result by adding more light sources. Thus, the scalar value of f changes by adding the light values of the vertices by other lights. Noisy photic extremum lines are filtered by a threshold which is based on the integral of single connected lines. The strength T of a line with points x 0, , x n is determined by:

$$\displaystyle{ T =\int \Vert \nabla f\Vert =\sum _{ i=0}^{n-1}\frac{\Vert \nabla f(\mathbf{x}_{i})\Vert +\Vert \nabla f(\mathbf{x}_{i+1})\Vert } {2} \Vert \mathbf{x}_{i} -\mathbf{x}_{i+1}\Vert. }$$

If T is less than a user-defined threshold, the line is canceled out.

Fig. 15
figure 15

The brain model with photic extremum lines

Summary Photic extremum lines are strongly inspired by edge detection in image processing and by human perception of a change in luminance. It uses the variation of illumination. The result may be improved by adding lights. Beside the filtering strategy to integrate over the lines and accumulate the magnitude of the gradient, the noise can also be reduced by adding a spotlight that directs to certain regions. Nevertheless, smoothing is necessary to gain reasonable results. Here, the smoothing of the normal is sufficient as the computation is mainly based on the normals. However, the computation has high performance costs. The original work was improved by Zhang et al. [57] to significantly increase the runtime.

5.7 Demarcating Curves

Demarcating curves were proposed by Kolomenkin et al. [26]. These feature lines are defined as the transition of a ridge to a valley line. To determine these lines, the derivative of the shape operator has to be calculated, recall Eq. (11):

$$\displaystyle{ C = \left (\begin{array}{*{10}c} D_{\mathbf{v}}S &D_{\mathbf{w}}S \end{array} \right ). }$$

The demarcating curves are defined as the set of points where the curvature derivative is maximal (Fig. 16):

$$\displaystyle{ \langle \mathbf{w},S\mathbf{w}\rangle = 0\ \text{ with }\ \mathbf{w} =\arg \max _{\Vert \mathbf{v}\Vert =1}D_{\mathbf{v}}\kappa. }$$

The values for w can be analytically found as the roots of a third order polynom. This is obtained by setting \(\mathbf{v} = \binom{\sin (\theta )}{\cos (\theta )}\) and combining this with Eq. (12). A user-defined threshold eliminates demarcating curves, if it exceeds the value of D w κ.

Fig. 16
figure 16

The brain model with demarcating curves and contours

Summary Demarcating curves are view-independent feature lines displaying regions where the change of the curvature is maximal. Therefore, higher-order derivatives are used. A 2 × 2 × 2 rank-3 tensor is determined. This method can be used to illustrate bumps by surrounding curves. The advantage of the method is to enhance small features. Especially when combined with shading, this approach has its strength in illustrating archaeology objects where specific details are important, e.g., old scripts. For this application, view-dependent illustration techniques are not recommended because details need to be displayed for every camera position. Contrary, due to higher-order derivatives, the method is sensitive to noise and is not well suited for illustrative visualization.

5.8 Laplacian Lines

Laplacian lines were proposed by Zhang et al. [58]. The introduction of these lines was inspired by the Laplacian-of-Gaussian (LoG) edge detector in image processing and aims at a similar effect for surface meshes. The idea of the LoG method is to determine the Laplacian of the Gaussian function and to use this kernel as a convolution kernel for the image. Laplacian lines calculate the Laplacian of an illumination function f and determine the zero crossing as feature lines. To remove noisy lines, the lines are only drawn if the magnitude of the illumination gradient exceeds a user-defined threshold τ:

$$\displaystyle{ \varDelta f = 0\ \text{ and }\ \Vert \nabla f\Vert \geq \tau, }$$

where Δ is the discrete Laplace-Beltrami operator on the surface mesh and f is the illumination with \(f\,:=\,\langle \mathbf{n},\mathbf{v}\rangle\). Here, the discrete Laplace-Beltrami operator with the Belkin weights is used, as introduced in Sect. 3.4. The advantage of this method is the simplified representation of the Laplacian of the illumination:

$$\displaystyle\begin{array}{rcl} \varDelta f(\mathbf{p})& =& \varDelta \langle \mathbf{n},\mathbf{v}\rangle {}\\ & =& \langle \varDelta \mathbf{n},\mathbf{v}\rangle. {}\\ \end{array}$$

Here, Δ n is the vector Laplace operator in the Euclidean space (Fig. 17).

Fig. 17
figure 17

The brain model with Laplacian lines

This is just a composite of the Laplacian of the different components. Thus, the algorithm consists of a preprocessing step to calculate the Laplace-Beltrami operator with the Belkin weights of the components of the normal Δ n. During runtime, the algorithm detects the zero crossings of \(\langle \varDelta \mathbf{n},\mathbf{v}\rangle\) and checks if the magnitude of \(\Vert \nabla f\Vert\) exceeds the user-defined threshold.

Summary The Laplacian lines are strongly inspired by edge detection algorithms in image processing. This method is based on the Laplacian-of-Gaussian. Basically, the method searches for zero crossings in the Laplacian of the illumination. The computational effort can be simplified by a preprocessing step. Thus, interactive frame rates for geometric models of moderate size are possible during the interaction. Similar to other higher order methods, this approach also assumes well smoothed surface normals. The Belkin weights for the Laplace-Beltrami operator have a smoothing effect for the Laplacian line generation. This method illustrates sharp edges well, but is not suitable for round corners.

6 Discussion and Comparison

This section deals with general properties of the different feature line methods. We discuss the different approaches to derive first recommendations which method may be used for which kind of geometry. First, we list all feature line methods in Table 1 and name different properties and the order of the corresponding method. Furthermore, in Fig. 18 the higher-order feature lines are illustrated on an analytic function.

Fig. 18
figure 18

Drawing of an analytic function with illustrated feature line positions. In (a) the ridges are denoted in orange and the valleys are illustrated in cyan. For this function with fixed view direction, the apparent ridges coincide with ridge and valley lines. In (b) the suggestive contours and the demarcating curves are the same. In (c) the photic extremum lines and the Laplacian lines coincide

Table 1 List of different feature line methods with derivative order and view dependency

The benefit of feature lines is motivated by the visual perception. In [32] it is stated that the first stage of the assessment of the shape is done by extracting features, such as contours. These characteristics help to understand the shape. The illustration of shapes with feature lines cannot be seen as an alternative to shading. It is rather an additional concept. Kolomenkin et al. [26] showed that their demarcating lines support the shading and can extract text from archaeology objects. However, for examining structures where the whole object inherits important information, feature lines should not be used solely. For data where the scene can be divided into focus and context objects, feature lines can be applied to the context objects. Furthermore, feature lines can also be used to enhance focus with additional shading.

Depending on the underlying model, we may recommend different techniques. Most of the feature lines are able to depict the contour, but this depends strongly on the bending of the surface at the contour. Especially apparent ridges and photic extremum lines are able to draw contour lines, but in our experiments we noticed that activating the contour enhances the visual impression because some parts of the contour were missing. If the surface model is an assembly with sharp edges we recommend to use ridge and valley lines or apparent ridges. These features often appear in medical models like implants or prostheses. For simple models with only a few sharp edges, crease lines may be appropriate as well. If the models have a lot of round edges the answer for the right feature line method is a matter of taste. These features appear in models like vascular surfaces or organs. For scenarios where it is important to illustrate details for every camera position, we recommend ridges and valleys as well as demarcating curves. From an artistic point of view, suggestive contours, photic extremum lines, and Laplacian lines should be chosen. The reason for this suggestion is that especially for a rounded cube the photic extremum lines and Laplacian lines generate double lines around the feature to denote the rounded edge. If the user wants to visualize the line along the edge, the ridge and valley lines or the apparent ridges should be used. For this case, the crease line approach is not useful because it depicts only edges with specific greater value of the dihedral angle. Therefore, too many lines may be generated. If the surface has many crevices, we recommend the suggestive contours. They illustrate the inflection points of valleys. Round corners are often represented in many organic structures like livers or bones, see Fig. 20 for a femur model or a skull model.

Table 2 lists all possible features and Fig. 19 shows the different features. Please note that the assessment of the suitability of a method—marked in the table—necessarily is a subjective assessment by the authors and two artists. For instance, regarding the property whether the methods are able to detect round edges, we mean if it detects the specific round feature. As already mentioned, it does not reflect the ability to enhance the round edge from an illustrative or artist point of view. This concerns the ability to depict bumps. In agreement with artist, the bump shown from a sideway (s.w.) perspective would be illustrated such that it depicts the smooth transition from the ground to the dent. The drawing of the surrounding circle of the bump is not desirable as it conveys a sharp transition from the bump to the ground. For bumps shown from the top perspective it is sufficient if a round circle is drawn. Bumps can occur as polyps or blebs on a cerebral aneurysm. Especially blebs are important anatomical features to be detected because they are an indicator for rupture. Blebs can also occur as polyps in CT colonography.

Fig. 19
figure 19

Different surface features are illustrated with shading (SH) and in different high-order feature line methods: suggestive contours (SC), ridge and valley (RV), apparent ridges (AR), photic extremum lines (PEL), demarcating curves (DC), and Laplacian lines (LL)

Table 2 List of supported feature by the methods

We also listed the property deformation in the table. This characteristic means if the corresponding method is able to illustrate the features of deformable surfaces, e.g., animated objects, in real-time. As an example, Oeltze et al. [36] analyzed myocardial perfusion data. The focus lies on the examination of the infarction scarf on the left ventricle. In this paper, the left ventricle is illustrated as context information. Using the time-dependent data, it would also be possible to illustrate the context information with some feature line methods during the animation.

For example suggestive contours have two definitions of how to assess the feature lines. One is curvature-based and the other is light-based. With the second definition, no preprocessing is needed to assess the curvature and the principle curvature directions. This is in contrast to ridges and valleys and apparent ridges. Therefore, these algorithms are not able to compute the feature lines during the deformation. Photic extremum lines are also able to compute the feature lines during runtime because of the light and view dependency. The Laplacian lines need to precompute the Laplacian of the normals. Hence, this method is not suited for deformations.

Furthermore, Fig. 20 shows some exemplary models illustrated with higher order feature lines. Three typical models in the discrete differential geometry field (cow, Buddha, Max Planck) as well as three models from the medical image data (brain, femur, skull) are presented.

Fig. 20
figure 20

Selected models depicted in shading and higher-order feature lines

In summary, current feature lines are not suitable for the depiction of anatomical structures directly derived from medical image data because the underlying surfaces are too noisy. Advanced smoothing algorithms are necessary to reduce artifacts, but preserve important anatomical structures. For the depiction of a sparse representation of the model in a context-aware manner, the feature line methods can be used.

6.1 Medical Application

As stated, feature line methods can be seen as an illustrative visualization method that can enhance shading or as an alternative in the focus-and-context visualization. In this section, we list different application fields where illustrative visualization is useful for effectively depicting medical data. At the end, we list possible fields where feature lines can be used to encode context information.

Fischer et al. [13] proposed to use illustrative visualizing tools to depict structures of hidden surfaces. The rendering style is tailored for understanding spatial relationships and for visualizing hidden objects. Born et al. [3] used illustrative techniques to depict stream surfaces. Their techniques are very useful for the visualizing of complex flow structures. In the area of brain data, Jainek et al. [24] suggested to use a hybrid visualization method to illustrate mesh and volume rendering. Their approach is efficient for the exploration in clinical research. Chu et al. [7] proposed a guideline of various rendering techniques. They combined, e.g., isophote-based line hatching and silhouette drawing, for illustrative vascular visualization. Different rendering techniques for medical applications were presented by Tietjen et al. [50]. An example for illustrative visualization for liver surgery can be found in [19].

Glaßer et al. [16] presented an approach to visualize 3D cluster results. Here, the medical researcher can analyze the whole 3D scene with different cluster results where he can also select interesting objects. The surrounding objects become context information. Thus, we propose to illustrate them with feature lines. In this case, we used the contour because the objects does not inherit much features. Figure 21a illustrates the main object with unselected objects illustrated with feature lines.

In the field of endoscopic views, the identification of polyps is necessary. Once the polyps are detected, they can be illustrated in such a way that the endoscopic views are used for context information. In Fig. 21b, we used suggestive contours for the vessel and diffuse shading for the polyps.

In Fig. 21c, we visualized the portal vein and three liver segments. The portal vein is illustrated in diffuse shading in red. The liver segments are visualized in diffuse shading with transparency and photic extremum lines.

Fig. 21
figure 21

Different medical application fields where feature lines can be used to illustrate surrounding objects. In (a) a 3D cluster results is depicted. One cluster is shaded and the others are illustrated with contour lines. In (b) the vessel is illustrated with suggestive contours and shading is used for the polyps. In (c), we visualized the portal vein with diffuse shading and three liver segments visualized in diffuse shading with transparency and photic extremum lines.

7 Conclusion

We have summarized the most common feature line methods for object space-based presentations of 3D meshes as they are frequently used in medicine and molecular biology. The presentation of the different methods was also covered by two basic sections. We did not only list the most common feature line methods and their calculation in the discrete space, but also provided the mathematical background to explain the calculation from the differential geometry point of view. Our goal was to present an extensive list of feature lines on the one hand, and to equip the reader with basic knowledge of differential geometry on the other hand. The graduated student may be able to follow the different methods and to implement every feature line algorithm based on our explanations in the field of discrete differential geometry. Therefore, our survey and tutorial may also be used by students who are new in the field of illustrative rendering. Furthermore, this survey may also be used as a starting point for the development of new feature line methods. The potential of advanced and recently introduced feature line techniques is currently not exploited in the display of medical surface models. The careful application of these methods and perception-based evaluations are left open for future work.