Monday, February 27, 2012

One quick session in Voxel Studio

As promised, here is a screen capture covering some other features in VoxelStudio. Here you will see terrain rendering happening on the Voxel Farm, also a glimpse of the tree and forest edition process.

I had only two nodes in the farm dedicated to rendering the terrain meshes shown here. A farm with four machines would have rendered twice as fast.

Saturday, February 25, 2012

Real men don't draw buildings

Real men -and women- don't draw buildings, they write them. Why limit yourself to one instance of a building when you could define an entire family?

It turns out writing building grammars is hard, it feels closer to programming. For procedural architecture to take off, creation tools must appeal to artists. All we have now are maddening languages and graph editors. Only a few artists have the skills to make any sense of them. I would like to find a solution for this, but I got nothing so far.

I have created a timelapse video where you can see me creating a grammar from scratch. It is for a family of simple, rustic houses like this one:

You can click on the image to see it in detail. This is a rendering of the triangles output by the grammar evaluation. This model has not been altered by hand.

Here is the video:

Monday, February 20, 2012

Grammar Editor in Voxel Studio

To continue this series of posts about Voxel Studio, here is a sneak peek at the grammar editor:

As you can see I ended up devising a new language for expressing the architecture grammars. If you get the full image above you should be able to read  the code. Two rules make this very simple test.

This is a dramatic reversal on an earlier post. If you don't remember about this, my initial approach was I would never need a custom language for architecture grammars, that being the only user of this system I could do fine with so-called fluent interfaces in C++. Many commented back then I would have to bite the bullet and write a custom parser. They were right. It has saved me time, also the new language is quite powerful. I will introduce it later in a future post.

Sunday, February 12, 2012

Trees in terrain preview

Here are some rendered trees. Keep in mind this is a preview to help the world designer choose the parameters for the procedural generation. The lighting is very poor. Also tree crowns appear as blobs in the preview, which is far from being realistic. These blob polygons are the base for instanced branches and leaves later in the client. This is similar to the grass I have posted in earlier screenshots.

Wednesday, February 8, 2012

Editing a Forest

My approach to forests is that they are emergent patterns. They appear out of the properties of the different tree classes. A tree class may use a density mask to tell the system where this type of tree does well. Altitude is one clear example. These masks, however, are a very broad brush. Several species may share the same mask values for very large areas, still their distribution within that area has to be realistic.

To achieve this, I use a simulation of the forest evolution over several centuries. This is something I described in an earlier post. There are two key parameters: tree maturity, which is the average age at which the tree starts producing seed, and average lifespan, which is for how long a tree is expected to live.

The whole world (12km x 12km in my tests) is covered by a single forest, which takes less than a minute to simulate. Even if it is a single forest to the simulation, it looks like different forests and types of biomes. By using the masks you can make sure trees gradually disappear in deserts, or that some species never crossed certain range of mountains.

You can choose to simulate much smaller areas while you are still tweaking the tree classes, the results are consistent with a wider simulation. It creates a very quick workflow.

In the following screenshots you can see a quick test I did with seven different types of trees. This can be improved a lot with more tree classes and more detailed masks, hopefully you get the idea:

Friday, February 3, 2012

Tree editor in Voxel Studio

Here is a screenshot of the tree editor in Voxel Studio:

You saw several trees taken from here a while ago. Now you can see some of the parameters that define a single Tree class. A lot of things to worry about, but most combinations result in believable trees.