Creating a Fern in SpeedTree and Unreal Engine

General / 22 September 2020


I continue with my process of learning about SpeedTree and how to use to make game ready foliage

This weekend I took the opportunity to visit the Botanical Garden of my city, Valencia.

It is essential to understand how vegetation grows, how the branches expand and how the leaves develop. It is a very interesting field to learn about it.

I did my first test on my own about how to create a Common Fern. These are some of the references.

The first thing I do is locate possible textures. For this porpuse I use and Megascan. There is a lot of material there. In fact this is one of the point to improve in the future, because at the end of the process I realise that the resolution of my textures seems a bit low. 

Once I have it ready I begin to create the fern in SpeedTree. I know that the way to face the creation of this fern isn't the most correct way but I decided to create a trunk as a point from which the branches will begin  to be distribute.

Now it's time to load my textures. SpeedTree has a great too that allows to generate your own mesh according  to the topology that you need.


Once distributed, I added a Leaf Mesh node. This one is use to create a scatter of the leaves by the trunk. It has a different ways to distribute them. I put it in Phyllotaxy mode, which referes to the real arrangemet of the leaves by the stem. 

I have tried to generate a distribution as logical as possible according to a fern. 

Forces can be used to control the distribution of the leaves. This allows me to make small adjustments. 

Once the plant is finished, we will go to a more technical stuff (this is in my opinion one of the great potentials of this software). I can control the resolution of the lightmaps and how they will work in the different LODs. In a fern this is something easy but having this tool when you need to make a tree is a real lifesaver. 

(Image of autogenerate lightmaps according to 32px layout)

The other tech stuff is creating LODs. Lods are a very important resource, they load different versions of the same model according to the camera distance in game, it's a very useful optimization tool. 

For the LODs, in SpeedTree you can easily configure how to decrease the polycount like reduce the number of branches or increasing the scale of the remaining ones so that it continues simulating the feeling of leafy. 

This is the final result. 

SpeedTree offers the option to export directly to Unreal generating the material and applying textures. In the case that you have established options references to forces such as wind these already appear operational. 

Points to continue researching and improving: 

-Layout of the textures, get to generate a more logical Atlas when exporting from SpeedTree, because right now I leave the feeling that there is quite a lot of space in texture unused. 

-Custom Normals looks that is working fine but I need to find out where I can set it up. 

-The resolution of the texture that I used is not quite enough.