How are Procedural Textures made?

Hi guys,

This year at Uni my group’s been tasked with creating a game to advertise how super-cool-fun the games and entertainment systems department is.

What they’re expecting is like a side-stroller or zelda clone something, but we’ve been given free reign to do whatever we like as long as its a 2D ‘shooter’ style thing.

We’ve been discussing some ideas based around procedurally generated worlds, with the idea of having a ‘massive game world’ for the players to explore. There will be some aspect of questing (eg, go here, kill that, find this, save the npc, etc) on top of this.

What I’m researching at the moment is how feasible it will be to use procedurally generated textures (turbulence, veins, noise, and such) as part of our level generation.

For example, say we need a forest with loads of paths - i use a ‘veins’ type of texture (i think there’s one in most 3D graphics packages) as the map for the tree density, so we get a load of trees with paths in between them.

Does anyone have any experience of using this approach to generate levels? I have done some experiments with this (see this post) in the past using bitmap images as my map.

How exactly are procedurally generated textures actually generated? Are there a set of well known equations or is it more of an art? :smiley:

A lot of it seems to be art. I’d look into Perlin noise. Almost everything I’ve seen involves some amount of re-combinations of perlin noise functions. Another could base is voronoi regions. Then a lot of it is color mapping or applying filters/contrast to the base functions. This is where the art side of things usually comes in.

Might check this out. http://en.wikipedia.org/wiki/Simplex_noise

You might get some help from the book “Texturing & Modeling a procedural approach”. In that book they describe exactly how to generate a lot of different noise types such as Perlin and cellular noise.

Then I suggest that you download Genetica and look at all their noise nodes and presets.

The best place to start would probably be Ken’s original presentation: http://www.noisemachine.com/talk1/

There’s only a few basic primitives to start with (perlin noise, simplex noise, cellular textures, basic geometric shapes). Everything else is just combining these basics in interesting ways - such as applying sin functions to noise, or using noise to distort a regular grid, etc. etc.

Thanks for the links guys!

I spent this morning reading about Perlin and Simplex noise, and I think that I may be able to use these (and modifications thereof) to make the type of textures we are looking for. When I start on the actual development of these, I’ll create a thread with my notes.

Genetica looks really cool :smiley: I wish I had the time and patience to get back into modeling/texturing. In a few weeks I will be beginning a 3DS Max course at Uni, and I will definitely have a play around with demo version of Genetica to see what it can do.