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