For reference: Procedural Ships I (three years ago).
There will always be more to do. Even as far as I've come, you could easily single out a thousand things to improve. The texturing is awful. And is that a complete lack of bumpmap? Yikes. Spec map is boring. Every plate is pretty much the same -- no color, no different texturing, no nothing. Boring. The geometric structure? It's a 60-line algorithm, terribly simple and still terribly illogical.
And yet, somehow, I find myself falling in love with these ships. They are something more than the sum of their parts. Somehow, in the childish simplicity of it all, there is beauty.
Three years ago I was on the tip of the iceberg. Now, I feel, nothing has changed in that regard. The ships are a thousand times better, and yet, every moment that I explore proceduralism is another moment in which I realize that the iceberg is bigger than I ever did -- perhaps ever will -- comprehend. I now find it quite likely that I'll live out my entire life on the tip of this iceberg. It isn't a bad thing
I've spent a LOT of time on the look of metal lately. Finally, I've managed to make ships look like they're made of metal!!! This is the first time I've ever had any success with metal BRDFs (even in my offline rendering experiments). I think the main key that I was missing is that the distribution really needs to be exponential rather than power-based to look convincing, otherwise the surface looks like plastic. Another key is to modulate the specular amplitude in some interesting way (just modulating it with albedo looks great).
On top of good metal shaders, I now have new-and-improved SSAO in the engine. Together, the metal and AO are making my ships look better than ever before! In addition, I think I'm finally getting closer to a good procedural ship algorithm. It's taken forever, and I'm not there yet...but I'm getting closer.
Here's a cool shot that I took tonight. This has a bit of post-process on it for dramatic effect; I wanted to use it as a wallpaper. Still, you can get a nice sense of the metallic surface.
I started playing around with procedural ships again this week. This time, I decided I wanted to have some really quick prototyping fun and focus on the building algorithm rather than on the technical looks of the ship (i.e., ditch the implicit surfaces/contiguous mesh). This desire led to...block ships! What could make easier building blocks than...blocks? At any rate, even though they're just big formations of blocks, some of the ships are still pretty darn interesting. With enough bloom filter, I'd say they even look cool
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
Today I took a challenge from skeptics over at the Infinity: Quest for Earth forums. They didn't believe it was possible to procedurally create a ship. It took me two hours to come up with a program to disprove them.
Here are the results:
I've said it so many times already, but I'll go ahead and say it again. Procedural content is the future