Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Procedural Texture Generator

Author
Message
Mr Kohlenstoff
13
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Germany
Posted: 16th Jan 2012 20:05
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.


greetings
-MrK

MrValentine
AGK Backer
8
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 17th Jan 2012 02:44
Gutten taag MrK...
Hi

Love it... my only interest would be tileable textures

Great work... any plans for it on release or what not?

WLGfx
11
Years of Service
User Offline
Joined: 1st Nov 2007
Location: NW United Kingdom
Posted: 17th Jan 2012 11:04
@Mr Kohlenstoff - Brilliant stuff. I only got as far as perlin noise when I was faffing about and got distracted on to another project.

Mental arithmetic? Me? (That's for computers) I can't subtract a fart from a plate of beans!
Warning! May contain Nuts!
Mr Kohlenstoff
13
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Germany
Posted: 17th Jan 2012 12:04
Thanks guys.

At the moment the Blur-filter is the only one that violates tileability (is that even a word?), but since I so far used it for most textures, there might be slight seams, although the general structures should still be seamless.
The filter will be fixed however, maybe even today.

The problem with releasing the program is that I didn't care for usability at all when it comes to potential other users than myself - I designed it in a way so I can use it efficiently.
I'll see if it's possible to explain the most important features and behaviours in a really small < 10 minute long tutorial thing, but probably not before February. At first I want to make sure everything works the way it's supposed to, because currently certain things do not work that well.



Here's a not too great asphalt texture:



I also tried to generate grass and some rusty iron stuff but did not succeed so far.

By the way, feel free use the textures in case you got any use for them.

MrValentine
AGK Backer
8
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 28th Feb 2012 02:13
@Mr Kohlenstoff

no updates?

WLGfx
11
Years of Service
User Offline
Joined: 1st Nov 2007
Location: NW United Kingdom
Posted: 28th Feb 2012 03:13
You can still get tileability (cool word by the way) if you implement your own blur function which allows for wrap-around on both x and y axis.

Hope you manage it, this is cool...

Mental arithmetic? Me? (That's for computers) I can't subtract a fart from a plate of beans!
Warning! May contain Nuts!
kamac
8
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 28th Feb 2012 13:51
Yay. This looks really great!

I hope to see more coming

Mr Kohlenstoff
13
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Germany
Posted: 6th Mar 2012 17:16
Oh sorry guys, I kind of forgot this thread.

Quote: " no updates? "


Unfortunately not! There are two other projects in my focus right now, but I will certainly get back to procedural textures every now and then. Writing new filters is always fun, after all.

Quote: "You can still get tileability (cool word by the way) if you implement your own blur function which allows for wrap-around on both x and y axis."


Indeed, that's also what I did. However, at the moment it just works on the right and bottom side and not top and left, since I've been too lazy to implement it properly so far.

Quote: "Yay. This looks really great!"


Thank you.

Login to post a reply

Server time is: 2019-07-19 06:30:25
Your offset time is: 2019-07-19 06:30:25