In previous grad courses, I've moved between the extremes of a "traditional" presentation of NPR techniques, and a more mathematical course on symmetry, patterns and tilings. This time around, the pendulum has swung in the mathematical direction. My aim to to begin with a few weeks of geometrically-oriented NPR techniques, and then move into symmetry and tilings. It might be possible to characterize the course broadly as "techniques for creating pleasing arrangements of small elements".
Notes:
A good graphics-oriented introduction to this topic is Frédo Durand's 2002 SIGGRAPH course.
Halftoning refers to a collection of algorithms that span traditional and non-photorealistic rendering. The original goal of halftoning was to approximate continuous tones on devices that can only support discrete tones (i.e., white dots on a black screen or black marks on a white page). While these algorithms matter less now for display devices (mind you, new display technologies tend to start out in black and white, e-ink being a contemporary example), they're still very important for printing. The ultimate reference for halftoning is Ulichney's book Digital Halftoning (MIT Press, 1987); see also his 2000 survey. The Strothotte and Schlechtweg textbook also contains a good deal of information about halftoning, with an eye towards adapting the algorithms to non-photorealistic rendering.
In adaptive thresholding, a threshold for each pixel is computed as the mean tone of the pixels in a neighbourhood around it. This algorithm is good at factoring out broad changes in tone, but still not very artistic.
I mentioned in passing that my former student Jie Xu and I created an artistic thresholding algorithm designed for non-photorealistic illustration.
You can visualize the screening process using height fields: draw the source image as an inverted black height field and the screen as a white height field. When drawn on top of each other, the screen height field will only allow black pixels to be shown that are locally darker than the screen at that point. In class I showed a demo that worked in exactly this way, using the OpenGL depth buffer to perform screening.
Victor Ostromoukhov has two excellent papers on artistic uses of screening. In Digital Facial Engraving (Ostromoukhov, SIGGRAPH 1999), he develops an algebra of screens based on patterns of lines that simulate copperplate engraving, and warps them to create engraved portraits. In Artistic Screening (Ostromoukhov and Hersch, SIGGRAPH 1995), he and Roger Hersch show to achieve fine-grained control over screen shapes by allowing a designer to "keyframe" a screen at a small set of grey levels and interpolating between those levels to achieve continuous tone reproduction.
I first talked about Floating Points: A Method for Computing Stipple Drawings (Deussen et al., Eurographics 2000). They create an initial stipple distribution within a region using dithering, then relax the distribution into one that is more evenly spaced using Lloyd's method (which will figure into many techniques in the first part of this course). They offer a variety of clever brush-like tools for modifying the positions and attributes of the resulting stipples.
Weighted Voronoi Stippling (Secord, NPAR 2002) is a refinement of the previous technique that requires no user intervention. The stippling algorithm uses a weighted variant of Lloyd's method in which stipples relax into a distribution that is evenly spaced but also denser where a source image is darker, and sparser where it is lighter. I really like Secord's paper. It produces attractive results in a natural way. Weighted Voronoi Stippling is the subject of the first assignment in this course.
We might ask whether computer-generated stippling patterns resemble hand-drawn patterns, and whether that matters. More generally, non-photorealistic rendering is lacking a tradition of evaluation of results. That's obviously difficult when the algorithms are created in the pursuit of art, but surely the field can offer something better than "I looked at the results and I liked them". In the context of stippling, there have been a few attempts to study human-generated stippling patterns and the difference between hand-drawn and computer-generated art. In Non-Photorealistic Rendering in Context: An Observational Study (Isenberg et al., NPAR 2006), they report on a user study in which they had participants look at both kinds of images and sort them into piles based on criteria of their choosing. In a series of papers Isenberg and his collaborators used statistical measures to quantify differences between hand-drawn and computer-generated stipple patterns, and attempted to create stippled images the mimic the style of specific human stipplers.
NPR Packing is the name I use to refer to a collection of techniques for assembling a layout of small elements in the plane, satisfying a set of geometric constraints. (I don't know how universal the name "NPR Packing" is, but others certainly use it too.) Mathematically, a packing is any arrangement of shapes in the plane that don't overlap (that is, all pairwise intersections are sets of zero area). We'll see packings again briefly when we talk about tiling theory.
Here's a high-level set of possible constraints you might want to satisfy:
Now at the outset, this is impossible. From theoretical computer science, we know that it's NP-hard to know whether a packing exists. From a pragmatic point of view, we're certainly not going to let that stop us! We're more concerned with aesthetics anyway, and are willing to relax the problem or construct sub-optimal solutions.
Photomosaics can be seen as being a kind of packing problem, but not really related to this course. The geometric constraints are trivial; the difficulties lie in rapid searching of a database of source imagery. Of course, the element-based halftoning methods of the previous lecture, such as stippling, are also packing processes. What else is possible?
Non-trivial elements have non-trivial orientation. The authors suggest orienting elements relative to a user-supplied vector field, or orienting each element relative to the estimated orientation of its enclosing Voronoi region.
There have been a few recent papers that have applied a more careful understanding of real mosaic construction in their simulations. In Rendering Traditional Mosaics (Elber and Wolberg, The Visual Computer 2003), the authors place mosaic tiles in channels defined by offset curves, leading to much more even grout. In A Novel Technique for Opus Vermiculatum Mosaic Rendering (Battiato et al., WSCG 2006), the offset curves are only computed in the foreground, and oriented tiles are laid atop a regular grid in the background (a traditional technique known as opus vermiculatum). They also trim tiles that overlap offset curves or other tiles.
This lecture might be considered as an addendum to the previous one: additional algorithms for covering the plane with graphic elements. I decided to separate out this topic because it seems to be developing its own independent momentum, and it's a promising area for future research.
I had a hard time nailing down exactly what I consider this topic to be, and why it's distinct from the previous one. My general feeling is that here we have a small set of distinct geometric primitives, together with a means of placing primitives in the plane in an arrangement that is not necessarily even. Whereas the packing techniques seem to be about achieving a tight overall packing of elements, here we're more concerned about local similarity of neighbourhoods relative to some specified growth rules or an exmaple.
Stroke pattern analysis and synthesis (Barla et al., Eurographics 2006) studies the problem of example-based geometric texture synthesis. Given an arbitrary set of vector strokes, they first "cluster" the strokes into disjoint elements (a flower, for example, might comprise a handful of strokes). Then, they construct a Delauney triangulation of element centres. This triangulation can now act like the raster grid in image-based texture synthesis. They place elements from the source pattern at the vertices of any new triangulation by finding suitable neighbourhoods in the source from which to copy. This technique works well for patterns made from large numbers of small, evenly-spaced elements.
In this lecture, I begin with an informal view of symmetry, building up to a precise definition and an enumeration of the discrete symmetry groups in the plane.
Rather than write a set of detailed notes here, I'll include a list of useful references, many of which are available online.
This lecture discussed Celtic art, with a focus on knotwork and the paper by Cromwell connecting Celtic friezes with two-sided symmetry groups.
Tiling theory is a beautiful branch of mathematics, but one whose technical details you are unlikely to encounter unless you seek them out. It combines the elegance and intuition of geometry with complex results from algebra and analysis, and offers a wide range of simply stated but deep open problems. How fortunate that you chose to take this course!
This introductory lecture on the subject comes more or less verbatim from Chapter 2 of my book. You might also find some useful text in Chapter 2 of my thesis. Needless to say, the true bible of tiling theory (and, indeed, one of the most wonderful math textbooks I have ever encountered) is Tilings and Patterns, by Grünbaum and Shephard. Amazon still lists this book as coming back into print on April 15th of 2010. Buy a copy as soon as it's available. You won't regret it.
Most of tiling theory can be understood in terms of tilings by polygons, and many interesting classifications become possible when we restrict out attention to polygons of specific types. This lecture develops the language needed to talk about polygonal tilings, and presents several well known families: the regular, Archimedean (semi-regular) and Laves tilings. That material is all in Chapter 4 of my book. I also briefly mention tilings that include star polygons and non-edge-to-edge tilings by regular polygons of several distinct sizes. These two topics are very promising for their decorative possibilities. See Chapter 2 of Grünbaum and Shephard for details.
Islamic art is one of the world's great ornamental traditions. This lecture introduces Islamic art in general, and the mathematics of Islamic star patterns in particular. We don't have a great deal of information on how these patterns were originally constructed, but there are a few scattered hints, such as the Topkapi Scroll. And of course, we have lots of sophisticated modern mathematical techniques to draw from.
I introduce E.H. Hankin's "polygons-in-contact" technique, in which a polygonal tiling is chosen and rays are grown at a fixed contact angle out from the midpoint of every edge. The rays are cut off when they encounter other rays. Clearly, regular polygons will develop star-shaped motifs. The trick is to generalize the process to other polygon tiles. I describe one approach in Islamic star patterns from polygons in contact. That paper also discusses a couple of extra tricks to handle stars with extra layers of geometry and two-point patterns.
Where do the tilings come from? To construct interesting star patterns, we start with tilings containing many regular polygons as tiles. These tilings are described in Islamic star patterns in absolute geometry. That paper generalizes the construction process to Euclidean and non-Euclidean geometry in a way that's beyond the scope of the lecture.
In many star patterns, we find a recurring geometrical figure called a rosette. I discuss two approaches to constructing rosettes. The first is to develop an explicit construction for them inside regular polygons. I discuss A.J. (Tony) Lee's construction method from his 1987 paper Islamic star patterns. The other approach is to use the polygons in contact method, but rely on the underlying tiling to produce rosettes as a by-product. This is discussed in the polygons in contact paper mentioned above.
I conclude by mentioned some of the great work that has been done on the subject of Islamic star patterns.
I develop the theory of isohedral tilings, which are both highly expressive and capable of an efficient implementation. The lecture is taken more or less directly from Chapter 5 of my book. Lots more detail can be found in Tilings and Patterns, particularly Section 6.2, though you should also look through Sections 2.7 and 4.3 as background. I build up to a complete description of the shapes of isohedral prototiles, sufficient to implement a data structure that represents them.
As part of the lecture, I take a side trip through the world of anisohedral prototiles. These complex shapes admit periodic tilings of the plane, but none that are isohedral. A good resource for this subject is Paul Church's Master's thesis Snakes in the Plane. See also Joseph Myers's excellent page reporting the results of his exhaustive searches for polyominoes with interesting tiling properties.
I take a tour through Escher's artistic legacy, with an emphasis on his tessellations and the development of his "layman's theory". The layman's theory is certainly interesting from a historical point of view, though today we can simply rely on the isohedral tilings, which subsume his theory.
Just about any Escher book will give you a rich source of beautiful pictures to look at. Schattschneider's book Visions of Symmetry (Harry N. Abrams, second edition, 2004) is the essential reference for Escher's tessellation drawings and his layman's theory. See also the comprehensive reference M.C. Escher: His Life and Complete Graphic Work by Bool et al. (Harry N. Abrams, 1992) and the more recent The Magic of M.C. Escher by Locker (Harry N. Abrams, 2000).
I then move on to discuss the Escherization algorithm and its successor, dihedral Escherization. Both techniques are described on a page about the project.
There are many wonderful mathematical and aesthetic possibilities to explore in the world of nonperiodic tilings. I begin by making clear the distinction between nonperiodic and aperiodic. In the former case, even if any individual tiling is complex, it might be composed from tiles that could easily be rearranged into a simpler (periodic) tiling. An aperiodic tiling is one whose tiles must necessarily admit only nonperiodic tilings. It wasn't known until the sixties that aperiodic tilings could even exist.
I start by showing some examples of spiral tilings, as presented in Section 9.5 of Tilings and Patterns. Voderberg's modified isosceles triangle admits many interesting spiral tilings, and also answers an old geometry question: can a shape be completely surrounded by two copies of itself? There are many other interesting spiral tilings to be found. See, for example, Paul Gailiunas's fun paper on the subject.
I then move on to overlay tilings. Overlay tilings are a method for creating new irregular arrangements of polygons by superimposing the duals of multiple tilings and then dualizing the superposition. A good reference on the subject is Zongker's paper Creation of overlay tilings through dualization Of regular networks (ISAMA 1999). See also the Stampfli paper cited in that paper.
The main event is substitution tilings and rep-tiles, discussed in detail in Section 6.1 of my book (see also Section 10.1 of Tilings and Patterns, though that book doesn't talk much about substitution tilings). There are a lot of open questions in this area, as well as ideas for computational techniques. A large collection of substitution tilings can be found in the Tilings Encyclopedia maintained by Harriss and Frettlöh. For a lot of mathematical discussion of substitution tilings, see the Primer by Natalie Priebe Frank, not to mention the many other lovely examples and papers on her home page. You'll also probably find good references and examples on Chaim Goodman-Strauss's home page (but I can't verify that because it's down right now).
Craig S. Kaplan | Last updated: |