Procedural Textures Using Tilings With Perlin Noise
David Maung, Yinxuan Shi, and Roger Crawfis
Department of Computer Science
The Ohio State University
Ohio, USA
Abstract—In this paper, we demonstrate the use of tiling with
noise to generate rich procedural textures. We introduce the idea
of storing tiles which consist of only the gradients stored at the
integer lattice points and constructing a texture on the GPU from
these tiles. We also introduce the idea of using mipmapped tiles
to store gradients for turbulence. Finally we demonstrate a novel
use of mipmaps to generate infinite aperiodic textures with
varying frequency patterns.
Keywords; noise, tiling, procedural textures
I. INTRODUCTION
Procedural content generation is used to create increasingly
realistic and interesting content for games and film, while CPU
and GPU performance continue to increase and reduce the
overall cost of such techniques. Tiling can be used to reduce
the memory and development cost of textures used in video
games and film. Here we study the use of procedural textures
and tiling together. Specifically we examine tiles of noise.
One difficulty encountered when generating procedural
textures is to avoid repetition. Repetition in textures reduces
believability. This can be avoided using aperiodic tiling. We
present a method of constructing a tile set which can produce
an aperiodic tiling of Perlin Noise.
II. RELATED WORK
Ken Perlin introduced the concept of noise and its use in
computer graphics in [1] and [5]. Later, in [2] Perlin
improved the properties of his noise algorithm and provided a
reference implementation which is ubiquitous today. Since his
introduction, other noise algorithms have been considered. In
[8], Cook and DeRose use wavelets to generate noise with
improved frequency qualities. Wavelet noise is less prone to
problems with aliasing and detail loss. Goldberg introduces
the concept of anisotropic noise which is more suitable for
anisotropic filtering [9]. Lagae proposed Gabor noise which
offers more accurate spectral control with intuitive parameters
such as orientation, principal frequency, and bandwidth [11].
A good survey of procedural noise functions can be found in
[6].
The concept of aperiodic tiling has been an interesting
mathematical problem for years. Stam introduces the idea of
aperiodic texture mapping of homogeneous textures [3]. In [7],
Cohen further popularized the use of Wang Tiles in computer
graphics. We introduce a fast, low memory footprint GPU
implementation of tiling of Perlin Noise. Secondly, we
introduce a technique of providing tileable turbulence on the
GPU. Finally, we show how to implement varying frequency
noise with tiles.
III. NOISE TILES
Current state of the art with regard to seamless tiling still uses
periodic tiling [4]. Consider a noise function
. A
seamless tile can be generated by a function
defined as follows:
G(x, y) = (
F(x, y) * (w - x) * (h - y) +
F(x - w, y) * (x) * (h - y) +
F(x - w, y - h) * (x) * (y) +
F(x, y - h) * (w - x) * (y)
) / (w*h)
Here w is the width of the resulting tile, and h is the height. A
tile generated like this is seamless along the edges; however, it
still generates noticeable artifacts when tiled. Figure 1 shows
a plane tiled with a seamless tile of Perlin Noise. This figure
shows a discernible pattern even though the tile is seamless.
Furthermore, the noise is also blurred in the middle of the tiles
due to averaging from the equation above.
To improve on this we wish to construct an aperiodic tiling
without blurring or repetition. This involves the generation of
a tile set containing multiple tiles of noise. To construct such
a tile set, we must first consider the properties of the tiles
themselves and then consider the properties of the noise with
which we wish to fill the tiles.
Cohen describes how a set of Wang Tiles can be used to tile
the plain. The edges of the tile are considered colored, where
color is abstracted to mean a combination of color, pattern,
and appearance along the edge. In order to seamlessly tile a
plane, the pattern on the right edge of one tile must match the
pattern on the left edge of the tile immediately to its right.
Similarly, the pattern on the bottom edge of a tile must match
the pattern on the top edge of the tile immediately below.
Stam noted that the transition must be smooth between the
tiles; however, the colors need not match exactly. He
proposed a set of Tiles with each tile containing an
edge width of where < /2.
CGAMES 2012 The 17th International Conference on Computer Games
978-1-4673-1121-2/12/$31.00 ©2012 IEEE 60