<figure><img src="image_73.png" /><figcaption>**Figure 9.7: 2D curve tracking by active contours (Bénard et al., 2012)** — The contour curves extracted from a galloping horse are tracked by active contours (left) ensuring a coherent parameterization of the strokes (right) during the animation.</figcaption></figure>

deviations from the base path leads to a rather smooth animation, whereas a “wild” style with strong geometric distortions or using strong textures may lead to visual artifacts such as popping or sliding. This is a recurrent but still mostly open problem in non-photorealistic rendering (Bénard et al., 2011). In the following, we will summarize the main solutions to improve temporal coherence of line drawing animations.

**2D curve tracking.** The general objective is to establish correspondences between strokes of subsequent frames and derive from them a coherent space-time parameterization. View-independent lines, such as creases or ridges and valleys, that are fixed on the 3D surface can leverage the underlying surface parameterization to ensure such correspondences. In contrast, view-dependent lines such as contours move on the surface and their geometry and even topology change from frame to frame. Consequently most approaches directly compute correspondences in image-space. This is related to computer-assisted rotoscoping which aims to track edges in videos (Agarwala et al., 2004; O’Donovan and Hertzmann, 2012) with the benefit that perfect motion information can be computed from 3D animations. Disney “Paperman” (Whited et al., 2012) precisely follows such an approach to propagate hand-drawn strokes over CG renders. The main drawback of this system is that artists need to manually merge or split strokes when their topology should change to adapt to the animation.

The curve tracking method of Bénard et al. (2012) lifts this limitation. It uses active contours (a.k.a. snakes) that automatically update their position, arrangement and topology to match the contour animation (Figure 9.7). However, based on heuristics, this method cannot guarantee that the strokes are faithfully depicting the contours, especially at junctions.

For more robustness, Ben-Zvi et al. (2015) turn the problem of curve tracking into one of matching. Since matching full curves would be impractical due to topological changes, they seek to find a mapping between the vertices of the strokes in frame $f_i$ and $f_{i+1}$ (Figure 9.8). This mapping aims at minimizing the distance between matched vertices, after moving the points in $f_i$ to $f_{i+1}$ according to the animation motion field. The mapping should also maximize the number of matched vertices, favor one-to-one matches, and maintain the spatial ordering of the vertices on the strokes as much as possible. These objectives can be expressed as a constrained optimization problem on a bipartite graph whose nodes on
<figure><img src="image_74.png" /><figcaption>**Figure 9.8: 2D curve matching** (Ben-Zvi et al., 2015) — Starting from the strokes at frame $f_i$ in blue and $f_{i+1}$ in red (a), point correspondences are computed (b) by a constrained optimization, from which consistent sub-strokes can be extracted (c).</figcaption></figure>

<figure><img src="image_75.png" /><figcaption>**Figure 9.9: Parameterization propagation** (Kalnins et al., 2003) — The strokes at frame $f_i$ (b) are sampled uniformly along their arc-length (c) and propagated by reprojection in the new camera (d) and local search in image-space (e). Coherently parameterized strokes are created by potentially splitting new contour curves and fitting a continuous function to the samples balancing uniformity in 2D with coherence in 3D (f).</figcaption></figure>

each side of the graph are the vertices in each frame and whose edges connect any pair of vertices from different frames. Coherent sub-strokes are eventually constructed from these point-wise correspondences by splitting inconsistent curves (Figure 9.8c). A major drawback of this method is the computation cost of the point-matching algorithm which does not scale well with the number of curves.

**Parameterization propagation.** Another solution to these topological issues is to propagate the parameterization of the strokes instead of their geometry. Building upon the work of Bourdev (1998), this is the key idea of Kalnins et al. (2003). They sample the parametrization of the strokes at frame $f_i$ uniformly along their arc-length (Figure 9.9c), and
<figure><img src="image_76.png" /><figcaption>**Figure 9.10: Space-time parameterization** (Buchholz et al., 2011) — Temporally coherent textured strokes are computed by parameterizing the space-time surface swept by the contours over time.</figcaption></figure>

reproject those samples in the camera of the next frame $f_{i+1}$ following the 3D animation to approximate the contour motion (Figure 9.9d). Then, they locally search in image-space the location of the closest contour paths in the new view (Figure 9.9e). Samples from different brushes of frame $f_i$ may end up on the same contour path in frame $f_{i+1}$. In such a case, the contour path needs to be split into multiple strokes with consistent parameterization samples. Eventually, each stroke parameterization is computed by optimizing an energy function that balances the competing goals of uniform image-space arc-length parameterization and coherence on the object surface. This method ensures a temporally coherent parameterization for contours with simple topology at interactive framerates. However, since more complex objects, such as the Stanford Bunny, generate contours made of many tiny fragments, topological simplification (Section 9.3) needs to be applied first, otherwise the strokes may get increasingly fragmented over time.

**Space-time parameterization.** The above methods consider only two animation frames at a time. Buchholz et al. (2011) proposed considering the entire animation as a whole, building a space-time parameterization of the strokes over time (Figure 9.10). To do so, they build the space-time surface swept by the contours over time, taking into account merging and splitting events. This allows minimizing distortions and “popping” artifacts over the whole sequence, rather than greedily processing each frame one-at-a-time. This comes however at the price of expensive computations (up to several minutes for few seconds of animation).

**Motion of contours across time.** Some theoretical analysis of how contours evolve over time is provided by Cipolla and Giblin (2000); Plantinga and Vegter (2006). Plantinga and Vegter (2006) additionally provide a fast algorithm for tracking contours of implicit surfaces over time, with guaranteed topological correctness, under orthographic projection.
# CONCLUSION

The techniques we have described here provide an account for how to make line drawings from 3D models. In organizing the information from the past few decades of research on this topic, we hope that this material will be useful for future practitioners and researchers.

The methods described here present a range of design choices. On one extreme, hardware rendering methods allow real-time performance and relatively simple implementation, but only a narrow range of rendering styles. Interpolated contours are much more flexible and allow for many more rendering styles, though with some implementation effort, and some potential artifacts appearing on smooth surfaces. In the other extreme, methods that attempt to correctly compute all curves for smooth surfaces are currently the most complex; providing full correctness guarantees remains a research problem. Within this range of options, there are more design choices to be made, such as which visibility tests to use besides ray tests, which strategies to use to propagate visibility, what numerical robustness strategies to try. These choices make tradeoffs between stylistic control, accuracy, efficiency, and complexity of implementation. Our community does not yet have the experience of building real systems that would allow us to make recommendations about many of these choices. However, at a high level, knowing one's requirements for stylistic variation, real-time performance, and accuracy can guide one to one of the three main approaches listed above.

## 10.1 Open research problems

The work presented here has been developed for applications in entertainment, art, and scientific visualization. There are several games that have used hardware line-drawing methods, and 3D methods have shown up in a few films here and there, such as in Disney's Paperman, and the Freestyle NPR line drawing algorithms have been incorporated in the free Blender package. Still, many of the most sophisticated methods here have not made it into commercial use.

These research areas were very active in the 90's and 2000's, and now there is little effort. This is particularly evident at SIGGRAPH, the flagship venue for this research; now most research, when it appears, is at more specialized, less-impactful venues. There are many possible reasons for this stagnation. We believe that it does not reflect a lack of interest in these problems, but, rather, the difficulty for many researchers outside the area in identifying
known research projects. It should be obvious from this tutorial that there are some clear, open research problems that are purely geometric in nature.

For professional stylization applications (e.g., films), one would ideally like to have a space-time planar map of a scene, including space-time correspondences and complete curve topology, and no existing system for this has even been attempted, to our knowledge. The engineering effort involved may be well beyond what is achievable by a single graduate student working alone, without truly heroic effort and understanding of the geometric, numerical, and artistic considerations involved.

Once developed, such a system would create a variety of new engineering, authoring, and workflow challenges and opportunities.

Since these problems first arose, there has been tremendous progress in other areas of geometric modeling and simulation. The fundamental difficulty for correct curve topology is that a single incorrect visibility test at a seemingly-insignificant little triangle can cause enormous visibility errors. This parallels problems that can occur in other areas of modeling and simulation. For example, when simulating a hanging piece of cloth, a single little missed collision can lead to massive interpenetrations that ruin the simulation: a single non-robust test causes topological catastrophe. The geometric modeling and simulation communities have developed robust geometric tools and techniques to prevent these problems. It may now be time to revisit the line drawing problem with this new knowledge in hand.

A separate problem is to build artist-friendly tools for authoring artistic styles. There have been various approaches explored in the literature, such as rotoscoping (Kalnins et al., 2002; Sabiston, 2001; Whited et al., 2012; Cardona and Saito, 2015) and procedural authoring (Grabli et al., 2010).

Machine learning and example-based rendering could provide a way to author styles. So far, there has been very little effort combining machine learning and 3D NPR; exceptions include (Kalogerakis et al., 2012; Bénard et al., 2013; Fišer et al., 2016).

Whatever the future work, the methods described in this tutorial provide the first part of the story, but the rest is yet to be written.

## 10.2 Acknowledgements

We thank Doug DeCarlo for comments on a draft of this tutorial, and a reviewer for extremely detailed comments.
# FUNDAMENTALS OF DIFFERENTIAL GEOMETRY

This chapter presents the fundamentals of differential geometry that are useful to define smooth surface contours. It is based on the books and courses of Cipolla and Giblin (2000); Rusinkiewicz et al. (2008); Crane et al. (2013).

## A.1 Geometry of surfaces

The geometry of a 3D surface can be described using a map $f: M \subset \mathbb{R}^2 \to \mathbb{R}^3$ from a region $M$ in the Euclidean plane $\mathbb{R}^2$ to a subset $f(M)$ of $\mathbb{R}^3$. It is called a parametric surface if $f$ is an immersion, that is its partial derivatives $\frac{\partial f}{\partial u}$ and $\frac{\partial f}{\partial v}$ are injective at each point of $M$. In this case, $f$ defines an immersed surface; a surface where, for every point $\mathbf{u}$ of $M$, a definite 2-dimensional tangent plane is associated at $\mathbf{p} = f(\mathbf{u})$, or, simply, $\mathbf{p}(\mathbf{u})$ (Figure A.1).

A vector $\mathbf{n} \in \mathbb{R}^3$ is normal to the tangent plane at $\mathbf{p}$ if, for all tangent vectors $\mathbf{t}$ at $\mathbf{p}$, $\mathbf{n} \cdot \mathbf{t} = 0$, where $\cdot$ is the canonical Euclidean dot product on $\mathbb{R}^3$. Since the tangent plane at $\mathbf{p}$ can be defined as a linear combination of the partial derivatives of the immersion $f$, the unit

<figure><img src="image_77.png" /><figcaption>**Figure A.1: Parametric surface** — The immersive map $f: M \subset \mathbb{R}^2 \to \mathbb{R}^3$ associates to each parametric location $\mathbf{u}$ a unique 3D point $\mathbf{p}$; the normal $\mathbf{n}$ at that point is defined as the cross-product of the partial derivatives of the parameterization.</figcaption></figure>
surface normal **n** at **p** is defined as:

$$ \mathbf{n}(\mathbf{u}) = \frac{\left. \frac{\partial f}{\partial u} \right|_{\mathbf{x}=\mathbf{u}} \times \left. \frac{\partial f}{\partial v} \right|_{\mathbf{x}=\mathbf{u}}}{\left\| \left. \frac{\partial f}{\partial u} \right|_{\mathbf{x}=\mathbf{u}} \times \left. \frac{\partial f}{\partial v} \right|_{\mathbf{x}=\mathbf{u}} \right\|} $$

Note that interchanging the two partial derivatives takes **n** to −**n**. If we can choose a consistent direction for **n** for all points **p**, M is *orientable*. For orientable surfaces, **n** can be seen as a continuous map, called the *Gauss map*, which associates each point of M with its unit normal, viewed as a point on the unit sphere S².

## A.2 Curvature

Informally, the curvature describes how much a surface bends at a certain point and in a particular direction. For instance, an (infinite) cylinder curves around in a circle along one direction, and is completely flat along another direction. It is common to treat surface curvature in terms of 3D curves contained in the surface. We thus first need to define the curvature of a 3D curve.

**Curvature of a curve.** Let $c: I \subset \mathbb{R} \to \mathbb{R}^3$ be a 3-dimensional parametric curve with unit speed, i.e., with arc-length or natural parameterization: $||\frac{dc}{dt}|| = 1$. The curvature of $c$ is measured by the rate at which the unit tangent vector changes as we move along $c$. This change is split into two pieces: the unit vector **n**, called the *principal normal*, which describes the direction of change, and a scalar $\kappa \in \mathbb{R}$, called the *curvature*, which expresses the magnitude of change:

$$ \frac{d^2 c}{dt^2} = \mathbf{t}' = -\kappa \mathbf{n}. $$

Assuming that $\kappa$ is never zero, the plane spanned by **t** and **n** is the *osculating plane*. The vector **b** orthogonal to the osculating plane is called the *binormal* of the curve: $\mathbf{b} = \mathbf{t} \times \mathbf{n}$. The orthonormal coordinate frame made of **t**, **n**, **b** is called the *Frenet frame* (Figure A.2).

For any point $\mathbf{p} = c(t)$, the circle S in the osculating plane with centre $\mathbf{p} + \mathbf{n}/\kappa$ is called the *osculating circle* of $c$ at $\mathbf{p}$. This circle best approximates $c$ at $\mathbf{p}$, meaning that it has the same tangent direction **t** and curvature vector $\kappa\mathbf{n}$, or that their first and second derivatives agree. It corresponds to the circle passing through $\mathbf{p}$ and two infinitely close points on $c$, one approaching from the left and one from the right of $\mathbf{p}$. The radius and center of the osculating circle are often referred to as the *radius of curvature* and *center of curvature*, respectively.

The *torsion* $\tau$ of $c$ measures the tendency of the curve to leave its osculating plane, i.e., the way the normal and binormal twist around the curve. The *Frenet-Serret formula* describes how the **t**, **n**, **b** frame changes along the curve:

$$ \mathbf{t}' = -\kappa \mathbf{n}, \quad \mathbf{n}' = \kappa \mathbf{t} - \tau \mathbf{b}, \quad \mathbf{b}' = \tau \mathbf{n}. $$
<figure><img src="image_78.png" /><figcaption>**Figure A.2: Curvature of a curve** — The curvature $κ$ of the 3D parametric curve $c$ at $p = c(t)$ corresponds to the inverse of the radius of the osculating circle $S$ in the osculating plane (in gray) defined by the tangent **t** and principal normal **n**.</figcaption></figure>

<figure><img src="image_79.png" /><figcaption>**Figure A.3: Normal curvature** — The curvature $κ_n$ of the curve at the intersection of the surface $f(M)$ and the plane spanned by the normal **n** and tangent direction **t** is the normal curvature of $M$ at **p** in the direction **t**.</figcaption></figure>

For our purpose, the important formula is the second one, which shows that we can get the curvature by extracting the tangential part of $\mathbf{n}'$.

**Normal curvature of a surface.** Going back to surfaces, consider the plane containing a given point $\mathbf{p}$ on the surface $f(M)$, a vector $\mathbf{t}$ in the tangent plane at that point and the associated normal $\mathbf{n}$. This plane intersects the surface in a curve, and the curvature $κ_n$ of this curve is called the *normal (or sectional) curvature* in the direction $\mathbf{t}$ (Figure A.3). Using the Frenet-Serret formula, we can get the normal curvature along $\mathbf{t}$ by extracting the tangential
<figure><img src="image_80.png" /><figcaption>Figure A.4: Surface categorization based on Gaussian curvature.</figcaption></figure>

part of $\mathbf{n}'$:

$$ \kappa_n(\mathbf{t}) = \frac{\mathbf{t} \cdot \mathbf{n}'}{\|\mathbf{t}\|^2}. $$

This means that the normal curvature is a measure of how much the normal changes in the direction $\mathbf{t}$. Note that it is signed, meaning that the surface can bend toward or away from the normal, but it is not affected by the length of $\mathbf{t}$. Since $\mathbf{n}$ is a unit vector, its derivative $\mathbf{n}'$ is perpendicular to $\mathbf{n}$, hence in the tangent plane of $\mathbf{p}$. $\mathbf{n}'$ is also called the *shape operator* $S(\mathbf{t})$.

**Principal, Gaussian and Mean curvature.** For a given point $\mathbf{p}$, the unit vectors $\mathbf{e}_1$ and $\mathbf{e}_2$ along which the normal curvature is maximal and minimal, respectively, are called the *principle directions at p*; the associated curvature values $\kappa_1$ and $\kappa_2$ are called the *principal curvatures*. If $\kappa_1 = \kappa_2$, every direction is principal and the point is called an *umbilic* (Figure A.4a). Otherwise, there are two orthogonal principle directions (i.e., $\mathbf{e}_1 \cdot \mathbf{e}_2 = 0$). Principal directions and curvatures respectively corresponds to eigenvectors and eigenvalues of the shape operator:

$$ S(\mathbf{e}_i) = \kappa_i \mathbf{e}_i. $$

The Gaussian curvature $K$ is equal to the product of the principal curvatures:

$$ K = \kappa_1 \kappa_2, $$

and the mean curvature $H$ is their average:

$$ H = \frac{\kappa_1 + \kappa_2}{2}. $$

Based on the sign of its Gaussian curvature, a surface point is called (Figure A.4):

* elliptic if $K > 0$, i.e., $\kappa_1$ and $\kappa_2$ have the same sign;

* parabolic if $K = 0 \Rightarrow \kappa_1 = 0$ or $\kappa_2 = 0$;

* hyperbolic if $K < 0$, i.e., $\kappa_1$ and $\kappa_2$ have opposite signs.
Surfaces with zero Gaussian curvature are called *developable surfaces*, because they can be flattened out into a plane without distortions. For example, a cylinder always has one of its principal curvature equal to zero. Surfaces with zero mean curvature are called *minimal surfaces* because they locally minimize surface area. Since $κ_1 = -κ_2$ on minimal surfaces, they tend to look like saddles, which is also a good example of surfaces with negative Gaussian surfaces. On the other hand, surfaces with positive Gaussian curvature tend to look like hemispheres.

**The fundamental forms.** Even though they do not introduce new geometric ideas, the fundamental forms are important for historical reasons. The first fundamental form **I** corresponds to the metric induced by the map **f**, which measures the inner product between any two vectors **x**, **y** in the tangent plane at **p**:

$$ \mathbf{I}(\mathbf{x}, \mathbf{y}) = \mathbf{x} \cdot \mathbf{y}. $$

The second fundamental form **II** at **p** is a symmetric bilinear form specified by:

$$ \mathbf{II}(\mathbf{x}, \mathbf{y}) = S(\mathbf{x}) \cdot \mathbf{y} = S(\mathbf{y}) \cdot \mathbf{x}. $$

With those notations, the normal curvature in the tangent direction **t** can be re-written as:

$$ \kappa_n = \frac{\mathbf{II}(\mathbf{t}, \mathbf{t})}{\mathbf{I}(\mathbf{t}, \mathbf{t})}. $$

**Principal coordinates.** Using the principal directions $e_1, e_2$ as a local basis for the tangent plane at **p** leads to the *principal coordinates*. When the vectors **x** and **y** are expressed in principal coordinates, the second fundamental form corresponds to the following diagonal matrix:

$$ \mathbf{II}(\mathbf{x}, \mathbf{y}) = \mathbf{x}^{\top} \begin{bmatrix} \kappa_1 & 0 \\ 0 & \kappa_2 \end{bmatrix} \mathbf{y}. $$

This leads to Euler formula stating that the normal curvature in the direction $[\cos \theta, \sin \theta]^{\top}$ expressed in principal coordinates, where $\theta$ is the angle measured between this direction and $e_1$, is:

$$ \kappa_n(\theta) = \kappa_1 \cos^2 \theta + \kappa_2 \sin^2 \theta. $$
CONVEX AND CONCAVE
CONTOURS

We now show that concave contour edges cannot be visible.

Any triangle lies in a supporting plane that cuts space into two half-spaces. The surface normal points to one of these half-spaces. We can say that a shape is **in front of** the face when it is in the half-space that the normal points to. For example, a face is **front-facing** when the camera **c** is on the front side of the face. Likewise, a face is **back-facing** when the camera is **in back of the face**.

**Definition B.0.1** (Concave/convex edge). A mesh edge on an orientable mesh is concave if each triangle is in front of the other. (That is, triangle A is in front of triangle B and vice-versa.) Otherwise, if they are each in back of the other, the face is convex.

These cases are visualized in Figure B.1. It is easier to think about convexity in terms of the angle $\theta$ between the two oriented faces: the edge is convex if $\theta < \pi$, and concave otherwise. (If $\theta = \pi$, then the edge can never be a contour.) However, computing $\theta$ is somewhat tricky.

<figure><img src="image_81.png" /><figcaption>**Figure B.1:** Concave/convex edge — Cross-section plane for a mesh edge between triangles $t_1$ and $t_2$, with normals $n_1$ and $n_2$. The cross-section is some 3D plane perpendicular to the edge between the two triangles. The two faces divide space in four quadrants: I,II,III, and IV. For example, I is the set of points in front of both faces, and II is in front of $t_1$ and behind $t_2$. (a) Concave case: $\theta < \pi$. Each face is in front of the other. In this case, the edge cannot be a visible contour. (b) Convex case: $\theta > \pi$. Each face is behind the other.</figcaption></figure>
<figure><img src="image_82.png" /><figcaption>**Figure B.2: Front-facing/back-facing edges** — A contour generator edge is *back-facing*, resp. *front-facing*, when its adjacent face nearest to the camera position **c** is back-facing (B), resp. front-facing (F). The “interior” of the mesh (assumed closed) is depicted in grey for illustration purpose. Front-facing contour edges are always convex edges on the surface, and back-facing contours are always concave.</figcaption></figure>

Intuitively, concave edges should not be visible when they are contours, because, from
the camera's point-of-view, they are hidden inside the surface.

**Theorem B.0.1.** On an orientable mesh where back-faces are never visible, a contour on a concave edge is never visible.

*Proof*. The two faces on the edge divide 3D space into four quadrants (Figure B.1a) where the viewpoint **c** can lie. For the edge to be a contour, the viewpoint must be in either quadrant II or IV; otherwise, both faces are either front-facing or back-facing. If the camera is in quadrant II, triangle **t**₂ is back-facing, and thus must be invisible. Moreover, **t**₂ occludes **t**₁, at least in the vicinity of the edge. Hence, the edge is invisible. The same reasoning directly applies to case IV. □

Furthermore, a contour on a convex edge is, locally, visible. While a convex contour
could be occluded by some other surface far away, it lies on a front-face and so may be
visible and is not locally occluded.

**Front-facing and back-facing edges.** Markosian et al. (1997) first introduced a version of these ideas called *front-facing edges* and *back-facing edges*. They defined a contour edge as *front-facing* if its adjacent face nearest the camera is front-facing, otherwise it is back-facing (Figure B.2). They mention in a footnote that they use convex/concavity instead of this definition.

Unfortunately, this definition does not always work. The distance between the camera
and a face is the distance to the nearest point on the face. Figure B.3 shows a counterexample
where their definition fails. In many situations, however, their method would be equivalent
to computing convex/concave.

That said, the definition only fails in extreme cases, and the definition is useful for
intuition when looking at diagrams.
<figure><img src="image_83.png" /><figcaption>**Figure B.3: Counterexample for Markosian’s definition of front/back-facing edges** — In this example, the face nearest to the camera is $t_2$, which is back-facing. Therefore the contour edge between the triangles would be marked as back-facing and thus invisible. In fact, $t_1$ occludes $t_2$, even though $t_2$ is nearer to the camera. This is a convex edge, and thus potentially visible.</figcaption></figure>
# ACCURATE NUMERICAL COMPUTATION

The visibility computations determine the topology of the View Graph, and minor errors can cause major topological errors. Hence, it is important to use robust geometric computations wherever possible.

One simple approach to improving precision is to use high-precision arithmetic (e.g., `float128`), infinite precision arithmetic, and/or rational arithmetic (since rational numbers are closed under perspective and intersection operations).

## C.1 Logical intersections

During visibility, there are many different intersection computations. Whenever possible, these intersections should be done using pointers and logic, rather than numerics. In principle, all intersections could be detected in the image-space intersection step. However, numerical error could cause intersections to be missed this way. For example, a contour edge intersecting a boundary edges can be detected simply by finding edges that share a vertex. Smooth curves, on the other hand, lie within mesh faces; their end-points lie with mesh edges. Their intersections with mesh boundaries amount to determining if they share the same mesh edge.

Keeping track of pointers is also necessary for avoiding spurious intersections. For example, when performing a ray test on a contour edge, it is important that neither of the adjacent triangles unintentionally “occludes” the edge.

## C.2 Orientation test

The orientation test is a useful building block of computational geometry. Many of the tests described here can be implemented in terms of the orientation test, and robust libraries exist for this test, such as the predicates of Shewchuk (1997)<fnref n="1" />.

In 3D, the orientation test determines whether a point **d** lies to the left of, to the right of, or on the oriented plane defined by three other points **a**, **b** and **c**, appearing in counter-clockwise order when viewed from above the plane (Figure C.1). Two points are thus on the

<footnote n="1">¹http://www.cs.cmu.edu/~quake/robust.html</footnote>
<figure><img src="image_84.png" /><figcaption>**Figure C.1: 3D orientation and sidedness tests** — The 3D orientation test (a) determines whether the point d is above, below or on the supporting plane of the oriented triangle △abc, i.e., whether the signed volume of the parallelepiped spanned by the vectors $\vec{ad}, \vec{bd}$ and $\vec{cd}$ is positive, negative or zero. Two points d and e are then on the opposite sides of the triangle △abc if their orientation tests have opposite signs (b).</figcaption></figure>

opposite sides of a triangular face if the results of their orientation tests with the triangle's supporting plane have opposite signs.

In any dimension, the orientation test can be implemented as a matrix determinant. In 3D, this is equivalent to the signed volume of the parallelepiped spanned by the vectors $\vec{ad} = (a - d), \vec{bd} = (b - d)$, and $\vec{cd} = (c - d)$. That is, the side of the triangle △abc that d lies on is determined by the sign of the scalar triple product:

$$ 
\begin{aligned}
\mathrm{ORIENT3D}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}) &= \vec{ad} \cdot (\vec{bd} \times \vec{cd}) \\
&= \det(\vec{ad}, \vec{bd}, \vec{cd}) \\
&= \begin{vmatrix}
a_x - d_x & a_y - d_y & a_z - d_z \\
b_x - d_x & b_y - d_y & b_z - d_z \\
c_x - d_x & c_y - d_y & c_z - d_z
\end{vmatrix} \\
&= \begin{vmatrix}
a_x & a_y & a_z & 1 \\
b_x & b_y & b_z & 1 \\
c_x & c_y & c_z & 1 \\
d_x & d_y & d_z & 1
\end{vmatrix}
\end{aligned}
$$

Highly-accurate libraries exist for these routines. The second determinant formula shows that swapping input parameters will flip the sign of the output, e.g., $\mathrm{ORIENT3D}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}) = -\mathrm{ORIENT3D}(\mathbf{b}, \mathbf{a}, \mathbf{c}, \mathbf{d})$.

The main use for orientation tests is to determine whether two points are on the same or the opposite side of a triangle. For this, we can define a function $\mathrm{SAMESIDE}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}, \mathbf{e})$ that returns **true** if d and e are on the same side of △abc, that is:

$$ 
\begin{aligned}
\mathrm{SAMESIDE}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}, \mathbf{e}) \\
= (\mathrm{ORIENT3D}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}) > 0) == (\mathrm{ORIENT3D}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{e}) > 0)
\end{aligned}
$$
In some cases, we also need to evaluate whether a point is on the front-facing side of a triangle, or the back-facing side. For this, we can define a function FRONTSIDE(a, b, c, d) that returns a positive value if d is on the front side of △abc. The surface normal (unnormalized), is given by $n = \overrightarrow{ba} \times \overrightarrow{ca}$, and so:

$$ 
\begin{aligned}
\text{FRONTSIDE}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d}) &= \overrightarrow{da} \cdot \mathbf{n} \\
&= \overrightarrow{da} \cdot (\overrightarrow{ba} \times \overrightarrow{ca}) \\
&= \det(\overrightarrow{da}, \overrightarrow{ba}, \overrightarrow{ca}) \\
&= \text{ORIENT3D}(\mathbf{d}, \mathbf{b}, \mathbf{c}, \mathbf{a}) \\
&= -\text{ORIENT3D}(\mathbf{a}, \mathbf{b}, \mathbf{c}, \mathbf{d})
\end{aligned}
$$

### C.2.1 Applications of the orientation test

Several of the tests used here can be implemented with the orientation test:

**Front-facing.** Given camera position c, the face △abd is front-facing if $\text{FRONTSIDE}(\mathbf{a}, \mathbf{b}, \mathbf{d}, \mathbf{c}) > 0$.

**Concave edge.** (Section 4.2). A mesh edge with vertices a and b with triangles △abd and △bae is concave if: $\text{FRONTSIDE}(\mathbf{a}, \mathbf{b}, \mathbf{d}, \mathbf{e}) > 0$, or, equivalently, if $\text{FRONTSIDE}(\mathbf{b}, \mathbf{a}, \mathbf{e}, \mathbf{d}) > 0$.

**Image-space intersection.** Image-space intersections are normally detected by the sweep-line algorithm, for efficiency. However, they can also be expressed in terms of 2D orientation tests. The 2D orientation test SAME SIDE 2D is a 2D version of the one described above. Using image-space coordinates, two line segments ab and de intersect if not SAME SIDE 2D(d, e, a, b) and not SAME SIDE 2D(a, b, d, e).

Alternately, one can test for intersection without computing the 2D projection at all. The problem is equivalent to testing whether the 3D triangles △abc and △cde intersect, where c is the camera position, which amounts to two 3D SAME SIDE tests.

**Overlap test for image-space intersection.** (Section 4.3). Suppose we have determined that 3D segments ab and de intersect in image space, viewed from camera c. Suppose line segment ab is a contour or boundary, and it is in front of the other segment at this point. Let △abf be an adjacent triangle on the mesh. We need to determine which side of de is occluded by the surface. This amounts to determining whether SAME SIDE(a, b, c, d, f) is true.

**Boundary curtain fold.** (Section 4.3). Curtain folds can occur on mesh boundaries (Figure 4.2 (4)). Since there is no analogue of concave/convex edges for mesh boundaries, a different test is required. It consists in checking whether faces adjacent to a boundary vertex overlap in image-space, which can be computed by checking whether any non-adjacent
face of the one-ring neighborhood of the boundary vertex (brown triangles in Figure 4.3) occludes the boundary edge which is the farthest from the camera.

This can be reduced to three clipping tests (Figure 4.3); the edge **pe** is occluded by the face $\triangle pqr$ if and only if: (1) **c** and **e** are on opposite sides of this triangle, i.e., SAME SIDE(**p**, **q**, **r**, **c**, **e**) is false, (2) **e** and **r** are on the same side of the triangle $\triangle cpq$, i.e., SAME SIDE(**c**, **p**, **q**, **e**, **r**) is true, (3) **e** and **q** are on the same side of the triangle $\triangle cpr$, i.e., SAME SIDE(**c**, **p**, **r**, **e**, **q**) is true. (This same test can also be used to detect curtain folds on contours, but it a simpler test exists for that case.)

It is possible, though unlikely, that a vertex has two boundary edges emerging from it, and both are locally-occluded. In this case, the above test produces a spurious curtain fold. These cases can be detected by performing the above local-overlap test on both boundary edges. This additional test is optional, since spurious curtain folds should not affect the final visibility results.
BIBLIOGRAPHY

A. Agarwala, A. Hertzmann, D. H. Salesin, and S. M. Seitz. Keyframe-based tracking for rotoscoping and animation. In *ACM SIGGRAPH 2004 Papers*, SIGGRAPH '04, pages 584–591. ACM, 2004. doi:10.1145/1186562.1015764.

A. Appel. The notion of quantitative invisibility and the machine rendering of solids. In *Proceedings of the 1967 22Nd National Conference*, ACM '67, pages 387–393. ACM, 1967. doi:10.1145/800196.806007.

R. Arnheim. *Art and Visual Perception: A Psychology of the Creative Eye*. University of California, 2nd edition, 1974.

P. J. Asente. Folding avoidance in skeletal strokes. In *Proceedings of the Seventh Sketch-Based Interfaces and Modeling Symposium*, SBIM '10, pages 33–40. Eurographics Association, 2010. ISBN 978-3-905674-25-5.

P. Barla, J. Thollot, and L. Markosian. X-toon: An extended toon shader. In *Proceedings of the 4th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '06, pages 127–132, New York, NY, USA, 2006. ACM. ISBN 1-59593-357-3. doi:10.1145/1124728.1124749.

W. V. Baxter, J. Wendt, and M. C. Lin. IMPaSTo: A realistic, interactive model for paint. In S. N. Spencer, editor, *Proceedings of the International Symposium on Non-Photorealistic Animation and Rendering*, NPAR, pages 45–56. ACM, June 2004. doi:10.1145/987657.987665.

N. Ben-Zvi, J. Bento, M. Mahler, J. Hodgins, and A. Shamir. Line-drawing video stylization. *Computer Graphics Forum*, 2015. doi:10.1111/cgf.12729.

P. Bénard, F. Cole, A. Golovinskiy, and A. Finkelstein. Self-similar texture for coherent line stylization. In *Proceedings of the 8th International Symposium on Non-Photorealistic Animation and Rendering*, NPAR '10, pages 91–97. ACM, 2010. doi:10.1145/1809939.1809950.
P. Bénard, A. Bousseau, and J. Thollot. State-of-the-art report on temporal coherence for styl-
ized animations. *Computer Graphics Forum*, 30(8):2367–2386, 2011. doi:10.1111/j.1467-
8659.2011.02075.x.

P. Bénard, J. Lu, F. Cole, A. Finkelstein, and J. Thollot. Active strokes: Coherent line stylization for animated 3d models. In *Proceedings of the Symposium on Non-Photorealistic Animation and Rendering*, NPAR '12, pages 37–46. Eurographics Association, 2012.

P. Bénard, F. Cole, M. Kass, I. Mordatch, J. Hegarty, M. S. Senn, K. Fleischer, D. Pesare, and K. Breeden. Stylizing animation by example. *ACM Trans. Graph.*, 32(4), July 2013. doi:10.1145/2461912.2461929.

P. Bénard, A. Hertzmann, and M. Kass. Computing smooth surface contours with accurate topology. *ACM Trans. Graph.*, 33(2):19:1–19:21, 2014. doi:10.1145/2558307.

F. Benichou and G. Elber. Output sensitive extraction of silhouettes from polygonal geometry. In *Computer Graphics and Applications*, 1999. *Proceedings. Seventh Pacific Conference on*, pages 60–69, 1999. doi:10.1109/PCCGA.1999.803349.

C. Benthin, S. Woop, M. Nießner, K. Selgrad, and I. Wald. Efficient ray tracing of subdivision surfaces using tessellation caching. In *Proceedings of the 7th High-Performance Graphics Conference*. ACM, 2015.

J. L. Bentley and T. A. Ottmann. Algorithms for reporting and counting geometric inter-sections. *IEEE Transactions on Computers*, C-28(9):643–647, 1979. ISSN 0018-9340. doi:10.1109/TC.1979.1675432.

J. Bigler, J. Guilkey, C. Gribble, C. Hansen, and S. G. Parker. A Case Study: Visualizing Material Point Method Data. In *Eurographics / IEEE VGTC Symposium on Visualization*. The Eurographics Association, 2006. ISBN 3-905673-31-2. doi:10.2312/VisSym/EuroVis06/299-306.

BlenderNPR. Edge node v1.2.4. http://blendernpr.org/
edge-node-v1-2-4-july-2015/, 7 2015a.

BlenderNPR. Solidify modifier contour/outline. http://blendernpr.org/
solidify-modifier-contouroutline/, 2 2015b.

J. F. Blinn. A scan line algorithm for displaying parametrically defined surfaces. In *Proceedings of the 5th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '78, pages 27–. ACM, 1978. doi:10.1145/800248.807364.

P. Bo, G. Luo, and K. Wang. A graph-based method for fitting planar b-spline curves with intersections. *Journal of Computational Design and Engineering*, 3(1):14–23, 2016. ISSN 2288-4300. doi:10.1016/j.jcde.2015.05.001.

L. Bourdev. Rendering nonphotorealistic strokes with temporal and arc-length coherence. Master's thesis, 1998. URL http://www.cs.brown.edu/research/graphics/art/bourdev-thesis.pdf.

S. Brabec and H.-P. Seidel. Shadow volumes on programmable graphics hardware. *Computer Graphics Forum*, 22(3):433–440, 2003. ISSN 1467-8659. doi:10.1111/1467-8659.00691.
D. Bremer and J. F. Hughes. Rapid approximate silhouette rendering of implicit surfaces. In *Proceedings of Implicit Surfaces* 98, 1998.

S. Breslav, K. Szerszen, L. Markosian, P. Barla, and J. Thollot. Dynamic 2d patterns for shading 3d scenes. *ACM Trans. Graph.*, 26(3), July 2007. ISSN 0730-0301. doi:10.1145/1276377.1276402.

B. Buchholz, N. Faraj, S. Paris, E. Eisemann, and T. Boubekeur. Spatio-temporal analysis for parameterizing animated lines. In *Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Non-Photorealistic Animation and Rendering*, NPAR '11, pages 85–92. ACM, 2011. doi:10.1145/2024676.2024690.

M. Burns, J. Klawe, S. Rusinkiewicz, A. Finkelstein, and D. DeCarlo. Line drawings from volume data. *ACM Trans. Graph.*, 24(3):512–518, 2005. doi:10.1145/1073204.1073222.

S. Busking, A. Vilanova, and J. J. van Wijk. Particle-based non-photorealistic volume visualization. *The Visual Computer*, 24(5):335–346, 2008. ISSN 1432-2315. doi:10.1007/s00371-007-0192-x.

S. Campagna, L. Kobbelt, and H.-P. Seidel. Directed edges — a scalable representation for triangle meshes. *Journal of Graphics Tools*, 3(4):1–11, 1998. doi:10.1080/10867651.1998.10487494.

D. Card and J. L. Mitchell. Non-photorealistic rendering with pixel and vertex shaders. In *In Direct3D ShaderX, Wordware*, pages 319–333. Wordware Publishing, Inc, 2002.

L. Cardona and S. Saito. Hybrid-space localized stylization method for view-dependent lines extracted from 3d models. In *Proceedings of the Workshop on Non-Photorealistic Animation and Rendering*, NPAR '15, pages 79–89. Eurographics Association, 2015.

L. Cardona and S. Saito. Temporally coherent and artistically intended stylization of feature lines extracted from 3d models. *Comput. Graph. Forum*, 35(7):137–146, Oct. 2016. ISSN 0167-7055. doi:10.1111/cgf.13011.

E. Catmull and J. H. Clark. Recursively generated b-spline surfaces on arbitrary topological meshes. *Computer-Aided Design*, 10(6):350 – 355, 1978. ISSN 0010-4485. doi:10.1016/0010-4485(78)90110-0.

D. Chen, Y. Zhang, H. Liu, and P. Xu. Real-time artistic silhouettes rendering for 3d models. In *8th International Symposium on Computational Intelligence and Design*, volume 1, pages 494–498, 2015a. doi:10.1109/ISCID.2015.201.

Z. Chen, B. Kim, D. Ito, and H. Wang. Wetbrush: Gpu-based 3d painting simulation at the bristle level. *ACM Trans. Graph.*, 34(6):200:1–200:11, Oct. 2015b. ISSN 0730-0301. doi:10.1145/2816795.2818066.

A. I. Choudhury and S. G. Parker. Ray tracing npr-style feature lines. In *NPAR '09: Proceedings of the 7th International Symposium on Non-Photorealistic Animation and Rendering*, pages 5–14. ACM, 2009. doi:10.1145/1572614.1572616.

R. Cipolla and P. Giblin. *Visual Motion of Curves and Surfaces*. Cambridge University Press, 2000. ISBN 0-521-63251-X.
F. Cole and A. Finkelstein. Partial visibility for stylized lines. In *Proceedings of the 6th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '08, pages 9–13. ACM, 2008. ISBN 978-1-60558-150-7. doi:10.1145/1377980.1377985.

F. Cole and A. Finkelstein. Two fast methods for high-quality line visibility. In *IEEE Transactions on Visualization and Computer Graphics*, 16(5):707–717, 2010. doi:10.1109/TVCG.2009.102.

F. Cole, A. Golovinskiy, A. Limpaecher, H. S. Barros, A. Finkelstein, T. Funkhouser, and S. Rusinkiewicz. Where do people draw lines? *ACM Trans. Graph.*, 27(3):88:1–88:11, 2008. doi:10.1145/1360612.1360687.

F. Cole, K. Sanik, D. DeCarlo, A. Finkelstein, T. Funkhouser, S. Rusinkiewicz, and M. Singh. How well do line drawings depict shape? *ACM Trans. Graph.*, 28(3):28:1–28:9, 2009. doi:10.1145/1531326.1531334.

F. Cole, M. Burns, K. Morley, A. Finkelstein, and P. Bénard. dpix. https://gfx.cs.princeton.edu/proj/dpix/, fork: https://github.com/benardp/dpix, 2010.

F. Cole, S. Rusinkiewicz, and D. DeCarlo. qrts, a port of the original "rtsc" software. https://github.com/benardp/qrtsc, 2011.

K. Crane, F. de Goes, M. Desbrun, and P. Schröder. Digital geometry processing with discrete exterior calculus. In *ACM SIGGRAPH 2013 courses*, SIGGRAPH '13. ACM, 2013. URL https://www.cs.cmu.edu/~kmcrane/Projects/DDG/.

B. Csébfalvi, L. Mroz, H. Hauser, A. König, and E. Gröller. Fast visualization of object contours by non-photorealistic volume rendering. *Computer Graphics Forum*, 20(3):452–460, 2001. doi:10.1111/1467-8659.00538.

C. J. Curtis. Loose and sketchy animation. In *ACM SIGGRAPH 98 Electronic Art and Animation Catalog*, SIGGRAPH '98, pages 145–. ACM, 1998. ISBN 1-58113-045-7. doi:10.1145/281388.281913.

C. J. Curtis, S. E. Anderson, J. E. Seims, K. W. Fleischer, and D. H. Salesin. Computer-generated watercolor. In *Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '97, pages 421–430. ACM, 1997. ISBN 0-89791-896-7. doi:10.1145/258734.258896.

B. R. de Araújo, D. S. Lopes, P. Jepp, J. A. Jorge, and B. Wyvill. A survey on implicit surface polygonization. *ACM Comput. Surv.*, 47(4):60:1–60:39, May 2015. ISSN 0360-0300. doi:10.1145/2732197.

D. DeCarlo. Depicting 3d shape using lines. In *Proc. SPIE*, volume 8291, pages 8291–8291 – 16, 2012. doi:10.1117/12.916463.

D. DeCarlo and S. Rusinkiewicz. Highlight lines for conveying shape. In *Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '07, pages 63–70. ACM, 2007. doi:10.1145/1274871.1274881.

D. DeCarlo, A. Finkelstein, S. Rusinkiewicz, and A. Santella. Suggestive contours for conveying shape. *ACM Trans. Graph.*, 22(3):848–855, 2003. doi:10.1145/882262.882354.
D. DeCarlo, A. Finkelstein, and S. Rusinkiewicz. Interactive rendering of suggestive contours with temporal coherence. In *Proceedings of the 3rd International Symposium on Non-photorealistic Animation and Rendering*, NPAR '04, pages 15–145. ACM, 2004. doi:10.1145/987657.987661.

P. Decaudin. Cartoon looking rendering of 3D scenes. Research Report 2919, INRIA, 1996. URL http://phildec.users.sf.net/Research/RR-2919.php.

O. Deussen and T. Strothotte. Computer-generated pen-and-ink illustration of trees. In *Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '00, pages 13–18. ACM Press/Addison-Wesley Publishing Co., 2000. doi:10.1145/344779.344792.

D. P. Dobkin, A. R. Wilks, S. V. F. Levy, and W. P. Thurston. Contour tracing by piecewise linear approximations. *ACM Trans. Graph.*, 9(4):389–423, 1990. ISSN 0730-0301. doi:10.1145/88560.88575.

D. Dooley and M. F. Cohen. Automatic illustration of 3d geometric models: Lines. In *Proceedings of the 1990 Symposium on Interactive 3D Graphics*, I3D '90, pages 77–82. ACM, 1990. doi:10.1145/91385.91422.

D. Ebert and P. Rheingans. Volume illustration: Non-photorealistic rendering of volume models. In *Proceedings of the Conference on Visualization '00*, VIS '00, pages 195–202. IEEE Computer Society Press, 2000. doi:10.1109/VISUAL.2000.885694.

E. Eisemann, H. Winnemöller, J. C. Hart, and D. Salesin. Stylized vector art from 3d models with region support. In *Proceedings of the Nineteenth Eurographics Conference on Rendering*, EGSR '08, pages 1199–1207. Eurographics Association, 2008. doi:10.1111/j.1467-8659.2008.01258.x.

E. Eisemann, S. Paris, and F. Durand. A visibility algorithm for converting 3d meshes into editable 2d vector graphics. *ACM Trans. Graph.*, 28(3):83:1–83:8, 2009. ISSN 0730-0301. doi:10.1145/1531326.1531389.

G. Elber. Line art rendering via a coverage of isoparametric curves. *IEEE Transactions on Visualization and Computer Graphics*, 1(3):231–239, 1995a. doi:10.1109/2945.466718.

G. Elber. Line illustrations ∈ computer graphics. *The Visual Computer*, 11(6):290–296, 1995b. doi:10.1007/BF01898406.

G. Elber. Line art illustrations of parametric and implicit forms. *IEEE Transactions on Visualization and Computer Graphics*, 4(1):71–81, 1998. ISSN 1077-2626. doi:10.1109/2945.675655.

G. Elber. The irit modeling environment. http://www.cs.technion.ac.il/~irit/, 3 2018.

G. Elber and E. Cohen. Hidden curve removal for free form surfaces. In *Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '90, pages 95–104. ACM, 1990. doi:10.1145/97879.97890.
G. Elber and E. Cohen. Probabilistic silhouette based importance toward line-art non-photorealistic rendering. *The Visual Computer*, 22(9):793–804, 2006. ISSN 1432-2315. doi:10.1007/s00371-006-0065-8.

G. Elber and M.-S. Kim. Geometric constraint solver using multivariate rational spline functions. In *Proceedings of the Sixth ACM Symposium on Solid Modeling and Applications*, SMA '01, pages 1–10. ACM, 2001. ISBN 1-58113-366-9. doi:10.1145/376957.376958.

H. Farid and E. P. Simoncelli. *Optimally rotation-equivariant directional derivative kernels*, pages 207–214. Springer Berlin Heidelberg, 1997. ISBN 978-3-540-69556-1. doi:10.1007/3-540-63460-6_119.

J.-D. Favreau, F. Lafarge, and A. Bousseau. Fidelity vs. simplicity: A global approach to line drawing vectorization. *ACM Trans. Graph.*, 35(4):120:1–120:10, 2016. ISSN 0730-0301. doi:10.1145/2897824.2925946.

J. Fišer, O. Jamriška, M. Lukáč, E. Shechtman, P. Asente, J. Lu, and D. Sýkora. Stylit: Illumination-guided example-based stylization of 3d renderings. *ACM Trans. Graph.*, 35 (4):92:1–92:11, July 2016. ISSN 0730-0301. doi:10.1145/2897824.2925948.

E. Fogel, D. Halperin, and R. Wein. *CGAL Arrangements and Their Applications: A Step-by-Step Guide*. Springer Publishing Company, Incorporated, 2012. ISBN 3642172822.

K. Foster, P. Jepp, B. Wyvill, M. Sousa, C. Galbraith, and J. Jorge. Pen-and-ink for blobtree implicit models. *Computer Graphics Forum*, 24(3):267–276, 2005. doi:10.1111/j.1467-8659.2005.00851.x.

K. Foster, M. C. Sousa, F. F. Samavati, and B. Wyvill. Polygonal silhouette error correction: a reverse subdivision approach. *International Journal of Computational Science and Engineering*, 3(1):53–70, 2007. ISSN 1742-7185. doi:10.1504/IJCSE.2007.014465.

H. Fuchs, Z. M. Kedem, and B. F. Naylor. On visible surface generation by a priori tree structures. In *Proceedings of the 7th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '80, pages 124–133. ACM, 1980. ISBN 0-89791-021-4. doi:10.1145/800250.807481.

M. Gangnet, J.-C. Hervé, T. Pudet, and J.-M. van Thong. Incremental computation of planar maps. In *Proceedings of the 16th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '89, pages 345–354. ACM, 1989. ISBN 0-89791-312-4. doi:10.1145/74333.74369.

M. Gerl and T. Isenberg. Interactive example-based hatching. *Computers & Graphics*, 37 (1–2):65–80, 2013. doi:10.1016/j.cag.2012.11.003.

M. Glisse. An upper bound on the average size of silhouettes. In *Proceedings of the Twenty-second Annual Symposium on Computational Geometry*, SCG '06, pages 105–111. ACM, 2006. ISBN 1-59593-340-9. doi:10.1145/1137856.1137874.

E. H. Gombrich. *Art and Illusion: A Study in the Psychology of Pictorial Representation*. Princeton University Press, 2nd edition, 1961.
A. Gooch. Interactive non-photorealistic technical illustration. Master's thesis, Dept. of Computer Science, University of Utah, 1998.

B. Gooch, P.-P. J. Sloan, A. Gooch, P. Shirley, and R. Riesenfeld. Interactive technical illustration. In *Proceedings of the 1999 Symposium on Interactive 3D Graphics*, I3D '99, pages 31–38, New York, NY, USA, 1999. ACM. doi:10.1145/300523.300526.

N. Goodman. *Languages of Art: An Approach to a Theory of Symbols*. The Bobbs-Merrill Company, Inc., 1968.

T. Goodwin, I. Vollick, and A. Hertzmann. Isophote distance: A shading approach to artistic stroke thickness. In *Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '07, pages 53–62. ACM, 2007. doi:10.1145/1274871.1274880.

S. Grabli, F. Durand, and S. F. X. Density measure for line-drawing simplification. In *Computer Graphics and Applications, 2004. PG 2004. Proceedings. 12th Pacific Conference on*, pages 309–318, 2004. doi:10.1109/PCCGA.2004.1348362.

S. Grabli, E. Turquin, F. Durand, and F. X. Sillion. Programmable rendering of line drawing from 3d scenes. *ACM Trans. Graph.*, 29(2):18:1–18:20, 2010. doi:10.1145/1731047.1731056.

C. S. Haase and G. W. Meyer. Modeling pigmented materials for realistic image synthesis. *ACM Trans. Graph.*, 11(4):305–335, Oct. 1992. ISSN 0730-0301. doi:10.1145/146443.146452.

P. Haeberli. Paint by numbers: Abstract image representations. In *Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '90, pages 207–214. ACM, 1990. ISBN 0-89791-344-2. doi:10.1145/97879.97902.

P. Hermosilla and P. P. Vázquez. Single pass gpu stylized edges. In *IV Iberoamerican Symposium in Computer Graphics*, pages 47–54, 2009.

A. Hertzmann. Introduction to 3D Non-Photorealistic Rendering: Silhouettes and Outlines. In S. Green, editor, *ACM SIGGRAPH 99 Course Notes. Course on Non-Photorealistic Rendering*. ACM Press, 1999. URL http://mrl.nyu.edu/publications/npr-course1999/.

A. Hertzmann. Non-photorealistic rendering and the science of art. In *Proceedings of the 8th International Symposium on Non-Photorealistic Animation and Rendering*, NPAR '10, pages 147–157. ACM, 2010. ISBN 978-1-4503-0125-1. doi:10.1145/1809939.1809957.

A. Hertzmann and D. Zorin. Illustrating smooth surfaces. In *Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '00, pages 517–526. ACM Press/Addison-Wesley Publishing Co., 2000. doi:10.1145/344779.345074.

A. Hertzmann, C. E. Jacobs, N. Oliver, B. Curless, and D. H. Salesin. Image analogies. In *Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '01, pages 327–340. ACM, 2001. ISBN 1-58113-374-X. doi:10.1145/383259.383295.
A. Hertzmann, N. Oliver, B. Curless, and S. M. Seitz. Curve analogies. In *Proceedings of the 13th Eurographics Workshop on Rendering*, EGRW '02, pages 233–246. Eurographics Association, 2002. ISBN 1-58113-534-3. URL http://dl.acm.org/citation.cfm?id=581896.581926.

C. Hornung, W. Lellek, P. Rehwald, and W. Strasser. An area-oriented analytical visibility method for displaying parametrically defined tensor-product surfaces. *Computer Aided Geometric Design*, 2(1-3):197–205, 1985.

E. G. Houghton, R. F. Emnett, J. D. Factor, and C. L. Sabharwal. Implementation of a divide-and-conquer method for intersection of parametric surfaces. *Comput. Aided Geom. Des.*, 2(1-3):173–183, Sept. 1985. ISSN 0167-8396. doi:10.1016/0167-8396(85)90022-6.

S. C. Hsu and I. H. H. Lee. Drawing and animation using skeletal strokes. In *Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '94, pages 109–118, New York, NY, USA, 1994. ACM. doi:10.1145/192161.192186.

M. Ikits, J. Kniss, A. Lefohn, and C. Hansen. Chapter 39, *Volume Rendering Techniques*, pages 667–692. Addison Wesley, 2004.

V. Interrante, H. Fuchs, and S. Pizer. Enhancing transparent skin surfaces with ridge and valley lines. In *Visualization, 1995. Visualization '95. Proceedings.*, IEEE Conference on, pages 52–59, 438, 1995. doi:10.1109/VISUAL.1995.480795.

T. Isenberg, N. Halper, and T. Strothotte. Stylizing silhouettes at interactive rates: From silhouette edges to silhouette strokes. In *Computer Graphics Forum*, volume 21, pages 249–258, 2002. doi:10.1111/1467-8659.00584.

K. Jeong, A. Ni, S. Lee, and L. Markosian. Detail control in line drawings of 3d meshes. *The Visual Computer*, 21(8):698–706, 2005. doi:10.1007/s00371-005-0323-1.

T. Judd, F. Durand, and E. Adelson. Apparent ridges for line drawing. *ACM Trans. Graph.*, 26(3), 2007. doi:10.1145/1276377.1276401.

R. D. Kalnins, L. Markosian, B. J. Meier, M. A. Kowalski, J. C. Lee, P. L. Davidson, M. Webb, J. F. Hughes, and A. Finkelstein. Wysiwyg npr: Drawing strokes directly on 3d models. In *Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '02, pages 755–762. ACM, 2002. doi:10.1145/566570.566648.

R. D. Kalnins, P. L. Davidson, L. Markosian, and A. Finkelstein. Coherent stylized silhouettes. *ACM Trans. Graph.*, 22(3):856–861, 2003. doi:10.1145/882262.882355.

R. D. Kalnins, P. L. Davidson, and D. M. Bourguignon. Jot. http://jot.cs.princeton.edu, fork: https://github.com/benardp/jot-lib, 2007.

E. Kalogerakis, D. Nowrouzezahrai, S. Breslav, and A. Hertzmann. Learning hatching for pen-and-ink illustration of surfaces. *ACM Trans. Graphics*, 31(1), 2012.
M. Kaplan. Hybrid quantitative invisibility. In *Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '07, pages 51–52. ACM, 2007. ISBN 978-1-59593-624-0. doi:10.1145/1274871.1274879.

K. Karsch and J. C. Hart. Snaxels on a plane. In *Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Non-Photorealistic Animation and Rendering*, NPAR '11, pages 35–42. ACM, 2011. doi:10.1145/2024676.2024683.

M. Kass, A. Witkin, and D. Terzopoulos. Snakes: Active contour models. *International Journal of Computer Vision*, 1(4):321–331, 1988. ISSN 1573-1405. doi:10.1007/BF00133570.

A. Kaufman and K. Mueller. *Overview of Volume Rendering*, volume 7, pages 127–174. Butterworth-Heinemann, 2005. ISBN 9780123875822. doi:10.1016/B978-012387582-2/50009-5.

L. Kettner and E. Welzl. *Contour Edge Analysis for Polyhedron Projections*, pages 379–394. Springer Berlin Heidelberg, 1997. ISBN 978-3-642-60607-6. doi:10.1007/978-3-642-60607-6_25.

K.-J. Kim and N. Baek. Fast extraction of polyhedral model silhouettes from moving viewpoint on curved trajectory. *Computers & Graphics*, 29(3):393–402, 2005. ISSN 0097-8493. doi:10.1016/j.cag.2005.03.009.

G. Kindlmann, R. Whitaker, T. Tasdizen, and T. Moller. Curvature-based transfer functions for direct volume rendering: Methods and applications. In *Proceedings of the 14th IEEE Visualization 2003 (VIS'03)*, VIS '03, pages 67–. IEEE Computer Society, 2003. doi:10.1109/VISUAL.2003.1250414.

D. Kirsanov, P. V. Sander, and S. J. Gortler. Simple silhouettes for complex surfaces. In *Proceedings of the 2003 Eurographics/ACM SIGGRAPH Symposium on Geometry Processing*, SGP '03, pages 102–106. Eurographics Association, 2003. ISBN 1-58113-687-0.

A. W. Klein, W. Li, M. M. Kazhdan, W. T. Corrêa, A. Finkelstein, and T. A. Funkhouser. Non-photorealistic virtual environments. In *Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '00, pages 527–534. ACM Press/Addison-Wesley Publishing Co., 2000. ISBN 1-58113-208-5. doi:10.1145/344779.345075.

L. P. Kobbelt, K. Daubert, and H.-P. Seidel. Ray tracing of subdivision surfaces. In *Rendering Techniques*, 1998.

J. J. Koenderink. What does the occluding contour tell us about solid shape? *Perception*, 13 (3):321–330, 1984. doi:10.1068/p130321.

J. J. Koenderink and A. J. van Doorn. The shape of smooth objects and the way contours end. *Perception*, 11(2):129–137, 1982. doi:10.1068/p110129.

A. Kolliopoulos, J. M. Wang, and A. Hertzmann. Segmentation-based 3d artistic rendering. In *Proceedings of the 17th Eurographics Conference on Rendering Techniques*, EGSR '06, pages 361–370. Eurographics Association, 2006. ISBN 3-905673-35-5. doi:10.2312/EGWR/EGSR06/361-370.
M. Kolomenkin, I. Shimshoni, and A. Tal. Demarcating curves for shape illustration. *ACM Trans. Graph.*, 27(5):157:1–157:9, 2008. doi:10.1145/1409060.1409110.

P. Kubelka. New contributions to the optics of intensely light-scattering materials. part i. *Josa*, 38(5):448–457, 1948.

A. Lake, C. Marshall, M. Harris, and M. Blackstein. Stylized rendering techniques for scalable real-time 3d animation. In *Proceedings of the 1st International Symposium on Non-photorealistic Animation and Rendering*, NPAR '00, pages 13–20. ACM, 2000. doi:10.1145/340916.340918.

K. Lang and M. Alexa. The markov pen: Online synthesis of free-hand drawing styles. In *Proceedings of the Workshop on Non-Photorealistic Animation and Rendering*, NPAR '15, pages 203–215. Eurographics Association, 2015.

K. Lawonn, I. Viola, B. Preim, and T. Isenberg. A survey of surface-based illustrative rendering for visualization. *Computer Graphics Forum*, 2018. ISSN 1467-8659. doi:10.1111/cgf.13322.

Y. Lee, L. Markosian, S. Lee, and J. F. Hughes. Line drawings via abstracted shading. *ACM Trans. Graph.*, 26(3), 2007. doi:10.1145/1276377.1276400.

W. Leister. Computer generated copper plates. In *Computer Graphics Forum*, volume 13, pages 69–77. Wiley Online Library, 1994.

B. Lichtenbelt, R. Crane, and S. Naqvi. *Introduction to Volume Rendering*. Prentice-Hall, Inc., 1998. ISBN 0-13-861683-3.

C. Loop. Smooth subdivision surfaces based on triangles. Master's thesis, Department of Mathematics, The University of Utah, January 1987.

W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3d surface construction algorithm. In *Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '87, pages 163–169. ACM, 1987. ISBN 0-89791-227-6. doi:10.1145/37401.37422.

J. Lu, C. Barnes, S. DiVerdi, and A. Finkelstein. Realbrush: Painting with examples of physical media. *ACM Trans. Graph.*, 32(4):117:1–117:12, July 2013. ISSN 0730-0301. doi:10.1145/2461912.2461998.

J. Lu, C. Barnes, C. Wan, P. Asente, R. Mech, and A. Finkelstein. Decobrush: Drawing structured decorative patterns by example. *ACM Trans. Graph.*, 33(4):90:1–90:9, July 2014. ISSN 0730-0301. doi:10.1145/2601097.2601190.

E. B. Lum and K.-L. Ma. Hardware-accelerated parallel non-photorealistic volume rendering. In *Proceedings of the 2nd International Symposium on Non-photorealistic Animation and Rendering*, NPAR '02, pages 67–ff. ACM, 2002. doi:10.1145/508530.508542.

P. Mamassian and M. S. Landy. Observer biases in the 3d interpretation of line drawings. *Vision Research*, 38:2817–2832, 1998.

L. Markosian, M. A. Kowalski, D. Goldstein, S. J. Trychin, J. F. Hughes, and L. D. Bourdev. Real-time nonphotorealistic rendering. In *Proceedings of the 24th Annual Conference on*
*Computer Graphics and Interactive Techniques*, SIGGRAPH '97, pages 415–420. ACM Press/Addison-Wesley Publishing Co., 1997. doi:10.1145/258734.258894.

D. Marr. Analysis of occluding contour. *Proceedings of the Royal Society of London B: Biological Sciences*, 197(1129):441–475, 1977. ISSN 0080-4649. doi:10.1098/rspb.1977.0080.

D. Marr and E. Hildreth. Theory of edge detection. *Proceedings of the Royal Society of London B: Biological Sciences*, 207(1167):187–217, 1980.

M. Masuch, S. Schlechtweg, and B. Schönwälder. dali! - drawing animated lines! In *In Proceedings of Simulation und Animation '97, SCS Europe*, pages 87–96, 1997.

N. Max. Weights for computing vertex normals from facet normals. *Journal of Graphics Tools*, 4(2):1–6, 1999. ISSN 1086-7651. doi:10.1080/10867651.1999.10487501.

M. McGuire. Observations on silhouette sizes. *jgt*, 9(1):1–12, 2004. URL http://www.cs.brown.edu/research/graphics/games/SilhouetteSize/index.html.

M. McGuire and J. F. Hughes. Hardware-determined feature edges. In *Proceedings of the 3rd International Symposium on Non-photorealistic Animation and Rendering*, NPAR '04, pages 35–47. ACM, 2004. doi:10.1145/987657.987663.

B. J. Meier. Painterly rendering for animation. In *Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '96, pages 477–484. ACM, 1996. ISBN 0-89791-746-4. doi:10.1145/237170.237288.

M. D. Meyer, P. Georgel, and R. T. Whitaker. Robust particle systems for curvature dependent sampling of implicit surfaces. In *Proceedings of the International Conference on Shape Modeling and Applications 2005*, SMI '05, pages 124–133. IEEE Computer Society, 2005. ISBN 0-7695-2379-X. doi:10.1109/SMI.2005.41.

J. Mitchell, M. Francke, and D. Eng. Illustrative rendering in team fortress 2. In *Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering*, NPAR '07, pages 71–76. ACM, 2007. ISBN 978-1-59593-624-0. doi:10.1145/1274871.1274883.

Z. Nagy, J. Schneider, and R. Westermann. Interactive volume illustration. In *Vision, Modeling and Visualization 2002*, Nov. 2002.

A. Ni, K. Jeong, S. Lee, and L. Markosian. Multi-scale line drawings from 3d meshes. In *Proceedings of the 2006 Symposium on Interactive 3D Graphics and Games*, I3D '06, pages 133–137. ACM, 2006. doi:10.1145/1111411.1111435.

M. Nienhaus and J. Döllner. Blueprints: Illustrating architecture and technical parts using hardware-accelerated non-photorealistic rendering. In *Proceedings of Graphics Interface 2004*, GI '04, pages 49–56. Canadian Human-Computer Communications Society, 2004.

M. Nießner, C. Loop, M. Meyer, and T. Derose. Feature-adaptive gpu rendering of catmull-clark subdivision surfaces. *ACM Trans. Graph.*, 31(1):6:1–6:11, Feb. 2012. ISSN 0730-0301. doi:10.1145/2077341.2077347.
J. D. Northrup and L. Markosian. Artistic silhouettes: A hybrid approach. In *Proceedings of the 1st International Symposium on Non-photorealistic Animation and Rendering*, NPAR '00, pages 31–37. ACM, 2000. doi:10.1145/340916.340920.

P. O'Donovan and A. Hertzmann. Anipaint: interactive painterly animation from video. *IEEE transactions on visualization and computer graphics*, 18(3):475–87, mar 2012. ISSN 1941-0506. doi:10.1109/TVCG.2011.51.

S. Ogaki and I. Georgiev. Production ray tracing of feature lines. In *SIGGRAPH Asia 2018 Technical Briefs*, SA '18, pages 15:1–15:4. ACM, 2018. ISBN 978-1-4503-6062-3. doi:10.1145/3283254.3283273.

Y. Ohtake, A. Belyaev, and H.-P. Seidel. Ridge-valley lines on meshes via implicit surface fitting. *ACM Trans. Graph.*, 23(3):609–612, 2004. doi:10.1145/1015706.1015768.

M. Olson and H. Zhang. Silhouette extraction in hough space. *Computer Graphics Forum*, 25(3):273–282, 2006. doi:10.1111/j.1467-8659.2006.00946.x.

M. Pauly, R. Keiser, and M. Gross. Multi-scale feature extraction on point-sampled surfaces. *Computer Graphics Forum*, 22(3):281–289, 2003. doi:10.1111/1467-8659.00675.

H. Pfister, M. Zwicker, J. van Baar, and M. Gross. Surfels: Surface elements as rendering primitives. In *Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '00, pages 335–342. ACM Press/Addison-Wesley Publishing Co., 2000. ISBN 1-58113-208-5. doi:10.1145/344779.344936.

M. Pharr, W. Jakob, and G. Humphreys. *Physically Based Rendering: From Theory to Implementation*. Morgan Kaufmann Publishers Inc., 3rd edition, 2016. ISBN 0128006455.
Pixar. Opensubdiv. http://graphics.pixar.com/opensubdiv, 2019.

S. Plantinga and G. Vegter. Computing contour generators of evolving implicit surfaces. *ACM Trans. Graph.*, 25(4):1243–1280, 2006. doi:10.1145/1183287.1183288.

M. Pop, C. Duncan, G. Barequet, M. Goodrich, W. Huang, and S. Kumar. Efficient perspective-accurate silhouette computation and applications. In *Proceedings of the Seventeenth Annual Symposium on Computational Geometry*, SCG '01, pages 60–68. ACM, 2001. doi:10.1145/378583.378618.

E. Praun, H. Hoppe, M. Webb, and A. Finkelstein. Real-time hatching. In *Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '01, pages 581–. ACM, 2001. ISBN 1-58113-374-X. doi:10.1145/383259.383328.

B. Preim and T. Strothotte. Tuning rendered line-drawings. In *WSCG '95*, pages 228–238, 1995.

R. Raskar. Hardware support for non-photorealistic rendering. In *Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Workshop on Graphics Hardware*, HWWS '01, pages 41–47. ACM, 2001. doi:10.1145/383507.383525.

R. Raskar and M. Cohen. Image precision silhouette edges. In *Proceedings of the 1999 Symposium on Interactive 3D Graphics*, I3D '99, pages 135–140. ACM, 1999. doi:10.1145/300523.300539.
P. Rideout. Silhouette extraction, 2010. http://prideout.net/blog/?p=54.

L. Roberts. *Machine Perception of Three-Dimensional Solids*. PhD thesis, Massachusetts Institute of Technology. Dept. of Electrical Engineering, 1963.

S. Roettger. The volume library. http://schorsch.efi.fh-nuernberg.de/data/volume/, 2012.

P. Rosin and J. Collomosse. *Image and Video-Based Artistic Stylisation*. Springer, 2013.

J. R. Rossignac and M. van Emmerik. Hidden contours on a frame-buffer. In *Proceedings of the Seventh Eurographics Conference on Graphics Hardware*, EGGH’92, pages 188–203. Eurographics Association, 1992. doi:10.2312/EGGH/EGGH92/188-203.

S. Rusinkiewicz. Estimating curvatures and their derivatives on triangle meshes. In *Proceedings of the 3D Data Processing, Visualization, and Transmission, 2Nd International Symposium*, 3DPVT ’04, pages 486–493. IEEE Computer Society, 2004. doi:10.1109/3DPVT.2004.54.

S. Rusinkiewicz, F. Cole, D. DeCarlo, and A. Finkelstein. Line drawings from 3d models. In *ACM SIGGRAPH 2008 Classes*, SIGGRAPH ’08, pages 39:1–39:356, New York, NY, USA, 2008. ACM. doi:10.1145/1401132.1401188.

B. Sabiston. Waking life: Making of, 2001. URL http://www flatblackfilms com Flat_Black_Films Rotoshop.html.

T. Saito and T. Takahashi. Comprehensible rendering of 3-d shapes. In *Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH ’90, pages 197–206. ACM, 1990. doi:10.1145/97879.97901.

P. V. Sander, X. Gu, S. J. Gortler, H. Hoppe, and J. Snyder. Silhouette clipping. In *Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH ’00, pages 327–334. ACM Press/Addison-Wesley Publishing Co., 2000. doi:10.1145/344779.344935.

P. V. Sander, D. Nehab, E. Chlamtac, and H. Hoppe. Efficient traversal of mesh edges using adjacency primitives. *ACM Trans. Graph.*, 27(5):144:1–144:9, 2008. doi:10.1145/1409060.1409097.

B. Sayim and P. Cavanagh. What line drawings reveal about the visual brain. *Frontiers in Human Neuroscience*, 5:118, 2011. ISSN 1662-5161. doi:10.3389/fnhum.2011.00118.

S. Schein and G. Elber. Adaptive extraction and visualization of silhouette curves from volumetric datasets. *Vis. Comput.*, 20(4):243–252, 2004. doi:10.1007/s00371-003-0230-2.

R. Schmidt. Shapeshop. http://www shapeshop3d com/, 2008.

R. Schmidt, T. Isenberg, P. Jepp, K. Singh, and B. Wyvill. Sketching, scaffolding, and inking: A visual history for interactive 3d modeling. In *Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering*, NPAR ’07, pages 23–32. ACM, 2007. ISBN 978-1-59593-624-0. doi:10.1145/1274871.1274875.

J. R. Shewchuk. Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates. *Discrete & Computational Geometry*, 18(3):305–363, Oct. 1997.
M. Singh and S. Schaefer. Suggestive hatching. In Proc. Computational Aesthetics, 2010.

P.-P. J. Sloan, W. Martin, A. Gooch, and B. Gooch. The lit sphere: A model for capturing npr shading from art. In Proceedings of Graphics Interface 2001, GI '01, pages 143–150. Canadian Information Processing Society, 2001. ISBN 0-9688808-0-0.

M. C. Sousa and J. W. Buchanan. Computer-generated graphite pencil rendering of 3d polygonal models. Computer Graphics Forum, 18(3):195–208, 1999. doi:10.1111/1467-8659.00340.

M. C. Sousa and P. Prusinkiewicz. A Few Good Lines: Suggestive Drawing of 3D Models. Computer Graphics Forum, 2003. doi:10.1111/1467-8659.00685.

J.-F. St-Amour. The illustrative rendering of prince of persia. In ACM SIGGRAPH 2010 Courses, 2010. URL http://www.cs.williams.edu/~morgan/SRG10.

J. Stam. Exact evaluation of catmull-clark subdivision surfaces at arbitrary parameter values. In Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '98, pages 395–404. ACM, 1998a. ISBN 0-89791-999-8. doi:10.1145/280814.280945.

J. Stam. Evaluation of loop subdivision surfaces, 1998b.

M. Stich, C. Wächter, and A. Keller. Efficient and Robust Shadow Volumes Using Hierarchical Occlusion Culling and Geometry Shaders, chapter 11. Addison-Wesley Professional, 2007. ISBN 9780321545428.

M. Stroila, E. Eisemann, and J. Hart. Clip art rendering of smooth isosurfaces. IEEE Transactions on Visualization and Computer Graphics, 14(1):135–145, 2008. doi:10.1109/TVCG.2007.1058.

M. Stroila, E. Bachta, W. Jarosz, W. Su, and J. Hart. Wickbert. fork: https://github.com/benardp/Wickbert, 11 2011.

T. Tejima, M. Fujita, and T. Matsuoka. Direct ray tracing of full-featured subdivision surfaces with bezier clipping. Journal of Computer Graphics Techniques (JCGT), 4(1):69–83, March 2015. ISSN 2331-7418. URL http://jcgt.org/published/0004/01/04/.

A. Thibault and S. Cavanaugh. Making concept art real for borderlands. In ACM SIGGRAPH 2010 Courses, 2010. URL http://www.cs.williams.edu/~morgan/SRG10.

J.-P. Thirion and A. Gourdon. The 3d marching lines algorithm. Graphical Models and Image Processing, 58(6):503–509, 1996. doi:10.1006/gmip.1996.0042.

D. Vanderhaeghe, R. Vergne, P. Barla, and W. Baxter. Dynamic Stylized Shading Primitives. In NPAR '11: Proceedings of the 8th International Symposium on Non-Photorealistic Animation and Rendering, pages 99–104, Aug. 2011. doi:10.1145/2024676.2024693.

L. Váša, P. Vaněček, M. Prantl, V. Skorkovská, P. Martínek, and I. Kolingerová. Mesh statistics for robust curvature estimation. In Proceedings of the Symposium on Geometry Processing, SGP'16, pages 271–280. Eurographics Association, 2016. doi:10.1111/cgf.12982.
R. Vergne, D. Vanderhaeghe, J. Chen, P. Barla, X. Granier, and C. Schlick. Implicit Brushes for Stylized Line-based Rendering. *Computer Graphics Forum*, 30(2):513–522, 2011. doi:10.1111/j.1467-8659.2011.01892.x.

M. Webb, E. Praun, A. Finkelstein, and H. Hoppe. Fine tone control in hardware hatching. In *Proceedings of the 2Nd International Symposium on Non-photorealistic Animation and Rendering*, NPAR '02, pages 53–ff. ACM, 2002. ISBN 1-58113-494-0. doi:10.1145/508530.508540.

H. Weghorst, G. Hooper, and D. P. Greenberg. Improved computational methods for ray tracing. *ACM Trans. Graph.*, 3(1):52–69, 1984. ISSN 0730-0301. doi:10.1145/357332.357335.

R. A. Weiss. Be vision, a package of ibm 7090 fortran programs to draw orthographic views of combinations of plane and quadric surfaces. *Journal of the ACM*, 13(2):194–204, 1966. ISSN 0004-5411. doi:10.1145/321328.321330.

B. Whited, E. Daniels, M. Kaschalk, P. Osborne, and K. Odermatt. Computer-assisted animation of line and paint in disney's paperman. In *Proc. SIGGRAPH Talks*. ACM, 2012. ISBN 978-1-4503-1683-5. doi:10.1145/2343045.2343071.

J. Willats. *Art and Representation: New Principles in the Analysis of Pictures*. Princeton University Press, 1997.

J. Willats and F. Durand. Defining pictorial style: Lessons from linguistics and computer graphics. *Axiomathes*, 15(3):319–351, 2005. doi:10.1007/s10516-004-5449-7.

B. Wilson and K.-L. Ma. Rendering complexity in computer-generated pen-and-ink illustrations. In *Proceedings of the 3rd International Symposium on Non-photorealistic Animation and Rendering*, NPAR '04, pages 129–137. ACM, 2004. ISBN 1-58113-887-3. doi:10.1145/987657.987674.

G. Winkenbach and D. H. Salesin. Computer-generated pen-and-ink illustration. In *Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '94, pages 91–100. ACM, 1994. doi:10.1145/192161.192184.

G. Winkenbach and D. H. Salesin. Rendering parametric surfaces in pen and ink. In *Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '96, pages 469–476. ACM, 1996. doi:10.1145/237170.237287.

H. Winnemöller, J. E. Kyprianidis, and S. C. Olsen. Xdog: An extended difference-of-gaussians compendium including advanced image stylization. *Computers & Graphics*, 36 (6):740–753, 2012. ISSN 0097-8493. doi:10.1016/j.cag.2012.03.004.

A. P. Witkin and P. S. Heckbert. Using particles to sample and control implicit surfaces. In *Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '94, pages 269–277. ACM, 1994. ISBN 0-89791-667-0. doi:10.1145/192161.192227.

X. Xie, Y. He, F. Tian, H.-S. Seah, X. Gu, and H. Qin. An effective illustrative visualization framework based on photic extremum lines (PELs). *IEEE Transactions on Visualization and Computer Graphics*, 13(6):1328–1335, 2007. doi:10.1109/TVCG.2007.70538.
H. Xu, M. X. Nguyen, X. Yuan, and B. Chen. Interactive silhouette rendering for point-based models. In *Proceedings of the First Eurographics Conference on Point-Based Graphics*, SPBG'04, pages 13–18. Eurographics Association, 2004. doi:10.2312/SPBG/SPBG04/013-018.

C. I. Yessios. Computer drafting of stones, wood, plant and ground materials. In *Proceedings of the 6th Annual Conference on Computer Graphics and Interactive Techniques*, SIGGRAPH '79, pages 190–198. ACM, 1979. ISBN 0-89791-004-4. doi:10.1145/800249.807443.

S. Yoshizawa, A. Belyaev, H. Yokota, and H.-P. Seidel. Fast and faithful geometric algorithm for detecting crest lines on meshes. In *Proceedings of the 15th Pacific Conference on Computer Graphics and Applications*, PG '07, pages 231–237. IEEE Computer Society, 2007. doi:10.1109/PG.2007.24.

L. Zhang, Y. He, X. Xie, and W. Chen. Laplacian lines for real-time shape illustration. In *Proceedings of the 2009 Symposium on Interactive 3D Graphics and Games*, I3D '09, pages 129–136. ACM, 2009. doi:10.1145/1507149.1507170.

L. Zhang, J. Xia, X. Ying, Y. He, W. Mueller-Wittig, and H.-S. Seah. Efficient and robust 3d line drawings using difference-of-gaussian. *Graphical Models*, 74(4):87–98, 2012. doi:10.1016/j.gmod.2012.03.006.

L. Zhang, Q. Sun, and Y. He. Splatting lines: An efficient method for illustrating 3d surfaces and volumes. In *Proceedings of the 18th Meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games*, I3D '14, pages 135–142. ACM, 2014. doi:10.1145/2556700.2556703.

D. Zorin and P. Schröder. Subdivision for modeling and animation. In *ACM SIGGRAPH 2000 Courses*, 2000. URL https://mrl.nyu.edu/publications/subdiv-course2000/.