Jay! Procedural Textures! Again
Seriously though, procedural textures are quite awesome, and although I tend to ignore one of their major advantages - that they don't need to waste any memory since they can be rendered on the fly - I still spend much of my time generating textures procedurally, just for fun. However, their great strength is that procedural techniques such as Perlin Noise allow the textures to look really natural, when used properly.
Motivation enough for me to spend hours and hours to write a program that allows the creation of such textures. I actually already did that some years ago, but the software was not sufficient for a lot of things, and quite hard to use, even for me as the developer.
Hence my new project, so far simply referred to as NoiseMaker
: It allows, once again text-based, creation and manipulation of images, which might or might not result in pretty textures (including bump maps, normal maps, lightmaps and whatnot).
I worked on it for only four days so far, but I think it's already worth showing.
To give you an idea of what it looks like, take this screenshot:
Texture modifications are done with generators, filters and operators (which are basically 0-ary, unary and binary image-operations). Round about 40 are already implemented, including random noise, sine-waves, perlin noise, fractal noise, spirales, spheres, bricks, negative, absolute, boxblur, scaling, position-offset, blending, gradients, distortion, light mapping and more.
Textures are usually viewed in black and white, as above. Alternatively it's possible to combine three of them to gain a colored texture, like this:
Also, single textures can be viewed in 3D (although that's not too usefull I guess, but it was fun to implement):
The program even allows scripting - it's possible to create your own generators, filters and operators based on the set of existing ones. I used this approach to create a ~specular light filter, which improves the quality of many textures a lot, as you can hopefully see in the two textures below:
The second one is specular lighting combined with lightmapping and looks like a stone or silver like material.
Nearly all generated textures are seamless by default, only a few filters don't support that feature yet (blur for example), but I'll take care of that. So in the end each and every generated texture will be tilable - which is especially useful for terrain, water and stuff like that.
I worked on some related textures, such as earth and water:
They are not perfect, but considering that the generation took me between 1 and 5 minutes, I'm still quite satisfied.
However, not only natural textures can be created, but also rather artificial structures:
Finally, another feature that just found its way into the program - a spline editor to handle coloring. It's not complete, but already very useful.
So much for now - Thanks for reading and feel free to tell me what you think of the project as well as the textures featured in this post. Criticism is welcome, be it constructive or not, I'm not that picky.