Vision, Modeling, and Visualization 2006, p.225-228, Berlin, November 2006.
Procedural texturing is commonly used to increase visual complexity and realism in rendered scenes. Procedural texture basis functions, such as Perlin's noise function, are often built on hash functions defined over the integer lattice. These hash functions are usually based on permutation tables and have a short period. This causes procedural textures to repeat. In this paper, we present a method for constructing hash functions with long periods. Our method is based on techniques for constructing long-period pseudo-random number generators. The hash functions we propose are almost as efficient as the traditional ones, but allow to generate procedural textures with very large periods. This increases the visual complexity and realism of procedural textures, and enables robust implementations of texture basis functions.