10.7 - Texture Mapping Using Procedures - Continued

Amazing “textures” that simulate the surfaces of real world objects such as cloth, wood, marble, and water can be created with just the right mixture of gradients, patterns combined at different scales, and noise. However, finding the correct gradients, patterns, scales, and noise for a specific “look and feel” is non-trivial. The job of “texture designers” is to find the right combinations of these methods for a specific situation. The next time you watch a movie that contains computer graphics imagery (CGI), take special note of the “visual effects artists” in the trailing credits. It takes special people who have both technical and artistic talents to design procedural texture maps.

This lesson introduces some tools and resources for further investigation into procedural texture maps. If this topic has “peeked your interest” then please survey the resources below. Otherwise you can skip this lesson and proceed to texture mapping transformations in the next lesson.


Toby Schachman has created a very cool tool called Shadershop. It allows you to combine functions in interesting ways and see the results in both visual and equation format. A description and video tutorials for Shadershop can be found at http://tobyschachman.com/Shadershop/. The actual tool is web based and can be used at http://www.cdglabs.org/Shadershop/.

There are many ways to combine functions and Shadershop will help you better understand the possibilities. For example:

  • Add functions, f1(x) + f2(x)
  • Multiply functions, f1(x) * f2(x)
  • Compose functions, f1( f2(x) )
  • Minimum, min(f1(x), f2(x))
  • Maximum, max(f1(x), f2(x))

And of course the f1(x) and f2(x) functions can be any function from a large set of possibilities, such as sin(), floor(), abs(), etc.

Useful Functions

Speaking of combining functions to create interesting patterns, several researchers have created lists of foundational functions for the generation of patterns (and other things). Check some of them out:

Graph Toy

Another nice visualization tool for complex functions is Inigo Quilez’s “Graph Toy” at http://www.iquilezles.org/apps/graphtoy/. Note that you can enter any complex equation into each of 6 function edit boxes and plot them on top of each other.

Book of Shaders

Patricio Gonzalez Vivo has created an excellent interactive textbook on shaders called The Book of Shaders. It will take you significant time to work through the entire book, but it has great content.


If you are interested in pursuing more advanced computer graphics topics, investigating procedural texture mapping and shader programming is a great place to start. You can create some pretty amazing visual effects!

Next Section - 10.8 - Transformations on Texture Maps