Trees and plants in 3D industries are often overlooked; a lot of times a mix of "generic fern" and "generic tree" is all that is made. It kind of looks like a forest ecosystem but under an experts eye most foliage wont make much sense. Part of the reason for this is lack of available 3D models for specific plants. Even then most 3D plant assets being sold do not include any climate information, scientific names or anything that would suggest what the plant is and what environment it
should be in. And pretty much all 3D resources are of the fully mature version of the plant (saplings are hard to find).
So if you want to add specific "real looking" trees to your 3D designs you will either have to pay a good chunk of change ($40 a tree yikes!) OR make your own trees. So here is how you do it:
Step 1 Gather reference:
You are going to need some photo reference of the plant you want to model. You need the following:
-High resolution photo or scan of a leaf or for something like grass/bushes you will want a spread of grass or a branch.
-High resolution photo or scan of the tree bark or stem.
-High resolution photo of the whole plant so you can have reference when modeling it.
For photos of leaves, branches, grass I suggest placing them over a black or blue sheet of smooth untextured plastic and pressing them in glass so they lay flat and taking the photo from directly above. This ensures that it is easier to remove the background around the leaf and that it does not curl.
Do note that when talking your pictures you should try to minimize the amount of shadow and bright spots on the bark and leaves. Since we are going to bring them into a 3D environment with simulated light any existing light/darkness from the source photo will be amplified and look unnatural. It is best that you pick a subject that is not wet, reflective or half shaded. Flat studio light is best since we are after color data.
Step 2 Creating textures:
From your photos you will need to create 3 textures for both the bark and the leaf.
-Base color: This is the color of the material.
-Normal map: Also called a bump map this helps 3D renderers make things look bumpy instead of flat.
-Roughness map: This defines how smooth the material is with black being non-reflective and white being very reflective, bark is generally rough so will have a darker map, where leaves are smooth so they will have a lighter roughness map.
Before creating maps for your leaf texture you will need to take it into image editing software and remove its background so it is either transparent or completely black. To save transparency data save the image as a .png if you leave the background solid black (255,255,255,255) most 3D software can mask it out and replace it with transparency but having done this ahead of time is preferred.
IMPORTANT! your images will need to be made square in a power of 2 for example 1024x1024, 2048x2048, 4096x4096 and in the case of bark you may wish to make it tile.
Free software for creating these maps, making textures tile, removing light:
For Windows
Materialize
For Android phones (if you are taking pictures with your phone) There is an app called Live Normal.
Paid professional software:
Algorithmic
Step 3 Creating the model:
I have tried a few software tools for doing this, here are a few of them:
Paid:
The industry standard is
SpeedTree and they offer workflows for film,
games and generic rendering engines.
I work in Unity a lot and have used
Mtree Addon for creating trees right inside Unity.
Free:
Blender is a free 3D modeling software that has a free tree tool you can enable in preferences, but it is not as robust as the other options.
For a free alternative to SpeedTree I highly recommend
TreeIt as it does pretty much the same things.
All these software tools are pretty simple to use, everything is slider & input based so you can define the number of branches, number of leaves etc. Most of the work is in creating the textures to map to the generated geometry.
If anyone has any questions about workflows or anything technical feel free to ask!