Théophile Lebeau shared his breakdown of creating a Forest biome with seamless photogrammetric textures and scans.
Théophile Lebeau shared his breakdown of creating a Forest biome with seamless photogrammetric textures and scans using SpeedTree and Houdini.
In the future, I would like to create a large database of textures for my personal work. In order to ease the creation, I decided to automate the production. For this, I created my own graph in Substance Designer.
For texture scan (2D), I used the scan processing in Substance Designer along with a 12×12 inch LED panel and a LED ribbon. Those allowed me to create normal maps, subsurface color textures, diffusion, and my alpha channel for foliage. The images are shot with a 5D Mark II and a 50mm f / 1.4.
I use a tripod, with my 5D connected to my computer, to import the image with EOS utility and Lightroom. I can see then the result immediately and apply the corrections in real time: Color Balance, Curve, Sharpen etc.
Seamless photogrammetry textures
Generally, for the ground textures, I shoot large areas. This allows me to bake two 4K textures from a single model generated by Agisoft. For trees, trunks, and branches, I shoot to create one texture (4K or 8K):
When the baking is done, I create roughness and glossiness textures from diffuse in Photoshop.
I created 9 planes placed next to each other. All planes have overlapped UVs.
We can now import the planes and textures into Substance Painter, where I use the stamp tool to hide the seams between the planes.
An example of the final textures:
Leaves and needles meshes
I used Maya to build the meshes and their LODs (for leaf, needle, and grass), that I imported next into SpeedTree.
For a good optimization and in order to avoid alpha overdraw, I cut my meshes with least alpha test space possible. It is necessary to strike a balance between polycount and alpha test space. An example of the mesh and LODs: LOD0 14tris, LOD1 8tris, LOD2 5tris.
Passionate about the architectural models of the trees, I spend a lot of time observing them and I usually refer to botanists works such as Francis Hallé (his books) or Patrick Blanc and his wonderful vegetal walls.
Here are some references for the creation of the forest scene:
I observe the branches separation into the trunks, (vertically, horizontally), rhythmic or random organization etc. Then I look at the global shape.
In the end, I try to reproduce the same characteristic in SpeedtTree. Obviously, I adapt the trees to my scene. I wanted a small scene, so it was necessary to block the view.
I generated a trunk, branches and finally, I added the leaf/needle mesh. SpeedTree also creates a smooth LODs with the meshes it generates.
Houdini and procedural heightmaps
We understand the potential of Houdini for the video game industry. I started using this software over the past few months. During my first try for the Forest scene, I generated my ground height map with the Houdini’s field map nodes. The nodes of highfield allows to create different noise or 2D mask for reinterpretation in height field.
An example of a step-by-step progression to create a ground mesh in Houdini:
The red line is painted as mask coupled to the node “height field terrace” which can flatten a path in a matter of second. After it, we can export the high and low poly meshes for the usual procedure (bake, import the low poly model in your engine etc.) or export a heightmap of your terrain directly from Houdini. As my scene did not need a complicated terrain, a simple heightmap was enough.
Another example of ground creation with Houdini:
I learned a lot about Houdini with Alexander Dracott‘s Conference, A Big thank for his work!
Material in Unreal Engine
Here is the material I made for flowers and other foliages. With this graph, I can simulate the wind effect with the simple grass wind node, but also adjust the strength of the normal map.
For the ground textures, I used several materials function blended into a single material. Then in my instance material, I could modify the tiling, roughness level and the glossiness for each material without recomputing them.
I used 2K ground textures, without tessellation for optimization reasons. Here is a screenshot of the 4K ground textures with tessellation:
My asset imported, materials set, a hint of lighting, here is a screenshot of the scene!