Procedural effects: Ice Attack

Screen Shot 2014-09-29 at 07.51.27

Using the Plant system and its growth parameters, it is now possible to construct attack effects. Like ice…

First we need a primitive object to act as the ice:

Screen Shot 2014-09-29 at 07.51.13

You can see that this has glass rendering turned on and a sort of blue colour and ice texture with slight bump mapping.

Feeding this into the plant system leaf and flower with some light different values we get the following growth pattern:

Screen Shot 2014-09-29 at 07.51.36Screen Shot 2014-09-29 at 07.51.44Screen Shot 2014-09-29 at 07.51.27

All looking more or less the same, but all slightly different.

Great for an Ice Attack. Maybe it needs some particles and bloom to finish it?



Procedural plants


For any plant you need a basic template. With 3D this would be a model. Apart from rotation and scaling your model would soon get a little repetitive and tired, so you would need multiple models to get differences in plants.

There is also the problem of plant ages. E.G. a young tree would be different from an older tree, annuals grow and then die.


  1. A plant has a growth parameter from 0 to 100
  2. Plants are made from (up to 4) primitive 3d models
  3. Each primitive is one of Trunk, Branch, Leaf/Flower
  4. These primitives have parameters to modify the growth
  5. Each plant has a random factor, so that no 2 plants are identical, but remain still recognisable


Lets take three (very low poly) primitives (trunk, leaf, flower):

Screen Shot 2014-09-28 at 07.56.45Screen Shot 2014-09-28 at 07.56.35Screen Shot 2014-09-28 at 07.57.00


The trunk has 5 sections, so a bend can be added as it grows, plus and overall random height growth

The leaf becomes branches which we duplicate 4 times and add bend

The flower is duplicated 6 times with twists and shaping

Finally the flowers are given more life by randomising their colour slightly per plant:

Screen Shot 2014-09-28 at 07.58.23


The UI

Screen Shot 2014-09-28 at 08.19.20

You can see this UI unifies all the parameters into one.

With growth at the top, followed by the sections (trunk, branch, leaf, flower)

Parameters and finally colour and profile

Realism is not the aim here, but the flavour of a plant:


You could of course go completely abstract:

Screen Shot 2014-09-28 at 08.38.01

Bitmapped procedural foliage

Screen Shot 2014-09-05 at 10.57.42

Rameses now has bitmaps in the 3d view. This is especially good for combining bitmaps and the procedural materials.

In the above, we can see a half orb with a standard treetop leaf texture and fifty water material applied along with alpha discard to give an even more random look.

Here is the initial hemisphere with just the bitmap applied:

Screen Shot 2014-09-05 at 10.57.09

And here with the material applied. You can see the reflected light and bump mapping now adds a different character without mangling the bitmap too much:

Screen Shot 2014-09-05 at 10.57.24

and finally with alpha discard added:

Screen Shot 2014-09-05 at 10.57.42

Procedural Tree

Using all the new procedural Materials, alpha discard, etc. We can now revisit the Arcane Tree with a new look and no bitmaps:

Screen Shot 2014-09-04 at 15.08.53

The tree remains the same, just with new materials.

Here is the same tree without lighting effects:

Screen Shot 2014-09-04 at 15.08.46

You can see the alpha surface discard in operation here. And finally the same tree as rendered with bitmaps, but not other texturing (bump, lighting etc):

Screen Shot 2014-07-05 at 10.23.49

Tale of Two Trees

Here is the original tree from the game Z-Virus (an old Zarch-type game):

Screen Shot 2014-09-04 at 11.12.33

And now the same tree after the minimum of effort:

Screen Shot 2014-09-04 at 11.12.46

Still very low poly, but with a single extra cone with alpha discard in operation. This object is then duplicated 3 times (only one version is used), with different position, scaling, rotation.


Procedural Vegetation

Screen Shot 2014-09-04 at 07.07.04

Playing with the Surface Alpha Discard, here is a 2 sided orb in green. Gives a sort of ivy / creeper look.

And here the same orb, but not 2 sided

Screen Shot 2014-09-04 at 07.06.54


It’s starting to all come together.

The Surface Discard is programmable, so it can discard none, some, or all depending on your settings. It would also be possible to have an solid object disintegrate!

The way it works is to discard the rendering based on the surface. Bump depth has no effect.