"highpoly" Tree modeling overview

“Highpoly” tree modeling overview

Special thanks to PlatinumGold, 3d vegetation modeler from Crytek

I have been experimenting a bit with plant modeling and i have been deciding which software should we use for our project (either SpeedTree or Lynda) and then decided to take some research about Crysis 2 vegetation.
Thanks to Cryteks 3d vegetation modeler i have came across nice pipeline that is giving better results than procedural generators, and more optimised models with hand picked LODs.

This isnt true tutorial but more likely quick pipline showcase for plant modeling and texturing.

Overall hand created “highpoly” plants are more optimised, LODs can be manually set up so there isnt wierd spacing that is caused by procedural generators, huge plus are different branch textures, which is impossible to do with procedural generators.

First start with modeling of small branches. No need to worry about polycount of these since this will be used only for texture extraction. Make sure that you study tree structure well and model branches correctly.

Then UV unwrap those branches and apply some tileable bark texture on it.

Making different sizes and colors of leaves is important for better results, make at least three different leaves.
All leaves are high poly and UV unwraped with texture applied on them. Make sure that you make specular and normal map texture for leaves and branches to get better results.

Start alligning leaves on branches that you modeled. Make sure that leaves are alligned in different angles, but do not choose too many different angles in 1 branch or it will look wierd.

When branches are done place them all in viewport to match in square. This is important for later to extract texture in square resolution (eg. 2048x2048).

Model tree trunk.

Next step is to export modeled branches to Mudbox for texture extraction, or you can do it in 3ds max with viewport texture baking. I found Mudbox much better for this task.
To extract diffuse map all you need to do is to render screen. It will actually made screenshot which will be later used as diffuse map. Do the same for specular map, but make sure that you have specular maps for branches assigned in diffuse slot of material. This will render gray branches.
For normal map you can use fast screen-to-normal filter in Mudbox and again save screen.

When the textures are baked model leaf meshes which are basic planes. Correctly position this planes on tree trunk.

Final result:
2100 polygons, 1024x1024 map for leaves and 512x512 map for trunk.

This is my first attempt in tree making therefore results werent as good as i though. I have made one huge mistake with branches. For the rest of you who are trying to follow this pipeline, make sure that your branches that are rendered into texture sheets have a lot leaves and long wooden sections. In short you have to cover as much of branch detail in texture as possible, in my case there were too few leafs per single branch, make sure that you have at least twice as much leaves.

I will post update of better version of tutorial for next plant.

hi janpec,

it is great to see you writing about how tree creating might or even should look like. but have you already tested your modeled meshes within unity? which shaders to you apply? do they work with the terrain engine? and how do they react to windzones?
i really do not want to blame your work but all my attempts to bring in externally modeled geometry have failed – at least as far as the advanced “tree crator leave shader” and “advanced tree creator bark shader” is concerned. the “old fashioned” “soft occlusion leave and bark shaders” work fine for me (including AO and bending) but not the “new” ones. so i haven’t found a way to get translucency working not using the tree creator…

lars

It is true i havent tested them in Unity, but for standaloane models they work good for sure. So if your game has very low number of trees it can be used. This is actually very usefull for IOS development since trees with creator are useless due to too high poly usage. I have only tested trees in Cryengine and they work good there, but sadly Unity doesnt handle them well for terrain use. So for those who might be using trees as placed objects in scene there shouldnt be any problem, but for those who want true forest they will have to find a way with tree creator.

as i mentoined before: just choose “soft occlusion leave and bark shaders” and everything is fine even on imported tree models even within the terrain engine.
if you want to use the advanced shaders “tree creator bark / leaves” you will have to go with the tree creator.

you would not use the advanced shaders on iOS i guess… but nevertheless: you also can create very low poly trees using the tree creator of course.