How Does TextureFnoob Work?

TextureFnoob sprang from my desire to create marble textures for a computer game.

Yes, it's computer-generated marble. Everybody's seen it. I wrote a little program, and I had marble. But what I wanted was a way to change the marble parameters -- color, scale, wiggliness -- without recompiling my little program each time. I wanted it all to be controlled by little control sliders. I wanted to be able to rip the functions apart and rearrange them, or rotate the results, or try them in polar coordinates.

That's what TextureFnoob is.

This is the TextureFnoob file that created the marble pattern you see above. The heart is a turbulence function (based on Perlin noise, which you may or may not have heard of.) The actual marble function could be written as sin(a*turb() + b*x). And that's exactly what you see in the window. The output of a Turbulence function and a numeric constant are multiplied. Simultaneously, the X coordinate and a different number are multiplied. The results of the two multiplications are added, and the result of that passes through a Sine function. There's a ColorMap on the end to turn it into colors. And you have marble.

The idea of TextureFnoob is, you can do anything. Well, not quite anything. You can construct any non-recursive function, and graph the result in X and Y. That's an awful lot of functions. Here is a small gallery of images I created in TextureFnoob:

(Here are the same images, full-size.)

All these images are created ab ovo, from functions and simple constants. TextureFnoob can also perform transformations on existing images:

(Here are the same images, full-size.)

As a final bonus -- this is hard to demonstrate on a web page, but pretend -- all of TextureFnoob's computation and display is done dynamically, in real time. If you twiddle a slider control, the image will be twiddled for you, as fast as your CPU can redraw it. Here are three marble images taken in sequence as the "wiggliness parameter" (the constant "a" in the formula) is slid up.

So can you get your hands on this weird and wonderful tool? Well, geez, why else would I have a web page... here's how you can download TextureFnoob. TextureFnoob is free software; fear not.

TextureFnoob top - how it works - gallery one - gallery two - download - comments

Zarf's Neat Stuff