Tag Archives: procedural content

Strange World

I'll admit that the following screenshots don't depict the most attractive procedural world ever, but I think they're a step in the right direction. It's just proof that I'm able to build larger-scale works of proceduralism. I've been slowly building up the small, individual components for a long time, and I'm starting to get antsy to move on to the larger work (the combination of elements).

The scene uses the procedural texture generator that I've been working on. The generator is still not suitable for organic/natural textures, which is why the grass, mushroomy things, and sky all seem to have a metallic quality to them. Still, everything here is procedural, and that's the point.

More Procedural Grass

I'm definitely enjoying my first experiences with procedural grass.

A few more details on what's going on:

  • 200,000 blades per scene
  • Each blade is a curved strip of double-sided quads
  • Perlin noise functions control various properties of the grass to give variation
  • Blades have simple pre-computed occlusion based on the terrain height function
  • Everything is generated on the CPU and shoved into a single vertex/index buffer

Procedural Texture

I'm back to playing with texture functions for a bit, mainly because I'm testing a new CPU-side texture generation method that I just implemented to make direct editing/creation of textures on the CPU really painless. The application that creates this texture is < 40 lines of code (no, that's not Python; it's c++!). Yes, it's black magic. Intuitive, scary, black magic.

Same old Perlin nonsense, this time with intentional banding! It looks rather nice. Hence the post.

More Procedural Terrain

Added some quick and dirty colors. Also pushed the quality to 1024x1024, just to see how it would look. Turns out to look amazingly-detailed...too bad it takes about a minute to generate (this is still CPU-side).

When I say quick and dirty, I mean it. Height colormap + perlin dirt map computed per pixel. Ouch. 5 KB pixelshader. Bigger ouch. But that's the beauty of prototyping! You don't have to be efficient about it. Took all of 5 minutes to write the shader for this.

The last image is only a 512 grid, for reference. The others are 1024.



More Procedural Ships

This program is remarkable, even as simplistic as it currently is (it just places clever Gaussian distributions of metaballs).

When I get a chance, I'll start working on a context-free grammar to upgrade the ship generator. It won't be too difficult to imbue it with a sense of 'structure' and 'design,' considering the fantastic results I've achieved using CFGs in algorithmic composition. Music and ships aren't really that different ;)


I'm having way too much fun. I love procedural content :)