Hemlock Forest

Environment Breakdown

Guillaume Laval

01-1
02

Guillaume Laval

Environment Artist

Introduction

Hey everyone!

I’m Guillaume Laval. A few years ago, I chose to specialize as an Environment Artist. I’m currently enrolled at Artside Online School, where I am studying Environment Art in all its aspects.

Goals

For quite some time, I have been curious about vegetation/foliage creation. Studying at Artside gave me the opportunity to discover and practice vegetation creation. For this course, I was lucky to have Michael Gerard as a teacher. Thanks again, Michael, for your great help, tools, and support.

During his course, we aimed to create a Hemlock Forest. What I had to do: trees at different scales and variations, ground plants, ferns, ground cover, atlas, optimization, lighting, colors, landscape, etc.

Tools

  • SpeedTree (Procedural software to create vegetation assets)
  • Unreal Engine 5 (Engine/Scene Rendering)
  • Maya (Ferns cutout)
  • Photoshop (Texturing arrangements and compressions)
  • Gaea (Creation of Distance Mesh/Mountains)
  • Megascans (For some base texture maps)

Trees

Learning how to create the main tree was the first objective in the project. It is a standard one, with a casual shape, a healthy state, and a large enough scale.

This tree will bring the first structural element of my environment to guide me for the general scale and the next foliage creations.

Blockout

I started with the blocking and the first version of my trunk. It was important to have a good distribution in the placement of branches so the result is as natural as possible. Avoiding repetition in the use of procedural techniques is key in making vegetation.

Of course, for optimization constraints, my entire tree can’t be in 3D mesh, especially for the branches with needles; otherwise, it would be too heavy (in terms of triangles/polygons).

High Poly

Moreover, a large quantity of instanced trees in the scene could overload my computer. To avoid this, I made a high-poly version of a branch with needles, color variations, and natural, good distribution.

Although this high poly is nice and beautiful, we can’t use this directly on our tree. I had to bake this to create an atlas of several small branches to finally apply them on bending planes with baked textures on my tree.

On this board, you can see the creation process of my tree in SpeedTree with my baked texture maps from my high-poly branch.

05

Variations

I also made a version of my branch in a dead condition, with dry needles, to avoid having a perfect green tree and to add some variations.

Below you can see the healthy state & the dead/dry state version:

06

With an optimization approach, the next step is to smartly distribute my polygons and make LOD (Levels of Details) on the trunk and branches, as well as on bending planes/fronds.

07

At the bottom of the tree, where the player will mostly see the tree, we have a larger density of triangles (so more details on the shapes) than the top, where the shapes are straighter.

08

LODs

Here are the Levels of Detail for my tree. LOD 0 is the most detailed version, where the player is close to the asset, and the others decrease in polygons at each LOD until reaching the Billboard, a 2D image of textures baked by SpeedTree on 2 crossed planes.

To get this effective LOD, when I make my cutout, I need to create three versions of it: high poly (LOD 0), medium poly (LOD 1), and low poly (LOD 2).

09

After everything is made, I can create my tree’s variations (size, shapes, condition/state).

10

There are four different tree categories: Forest (Large), Field (Medium), Sapling (Small), and Seedling.

Quick variations with SpeedTree:

First integration and tests in Unreal Engine: quick distribution with the foliage paint tool to check the scale and try draft lighting.

Then I can see if my tree reacts well with Lumen: colors, shapes, distribution, etc. If not, I’d go back to SpeedTree to fix it.

Plants & Ground Cover

Following the trees, I will need to create and distribute plants to cover the ground. For the plants, textures are mostly from Megascans and some other sources.

The first important plant is the fern, which is a large and obvious plant for a forest. This one was made in Maya and then imported into SpeedTree to be applied to the fronds.

The next plants follow pretty much the same process as my tree (cutouts). I made them directly in SpeedTree. For example, here are nettles to cover the ground.

Quick variations and distribution:

20

The same process applies to the rest of the plants:

21
  • Ferns
  • Mid-Size Plants (Inspired by bushes/plants in Elden Ring)
  • Nettles
  • Grass
  • Viburnum
  • Clovers
  • Water Lily
  • Dandelion
  • Poppy
  • Dry Grass
  • Violet
  • Red Leaf Cover Plant
22

Final atlas with all my plants/ground cover.

Scene and Terrain/Landscape

With all my plants and trees, I now have to compose the scene and create a coherent and natural environment.

First, the terrain, for which I wanted good relief and volumes with some micro and macro details, not just a flat landscape with too smooth and large volumes.

I used the Custom Brush Landmass tool, which is in the Landscape Mode, in the Sculpt window > Blueprint > CustomBrush_Landmass. With this tool, I can easily create natural volume and nice relief.

The large number of settings allows me to control the fall-off of my slopes, either to create smooth ones or very contrasting reliefs such as cliffs.

Next, I have to distribute trees and plants on the terrain. Trees are scattered with the Procedural Foliage Volume (PFV). Plants and ground cover are scattered with the Landscape Grass Type (LGT).

First try of distribution on my landscape.

26

I need to polish all this to have the most natural version, with smaller and larger arrangements using the procedural tools (LGT & PFV).

I added the river (Water Shader from Michael Gerard) with a landscape spline and created the relief to integrate it with a natural flow.

(No spline for the lake, just a large plane.) Finally, I created dirt roads.

Lighting, Rendering & Final Pass

According to me, lighting is as important as the realization of the assets or the rest. If all the previous work is not well highlighted, it will not be seen as it should.

That’s why lighting is essential to give life and make it realistic. Thanks, Lumen! In the lighting, color, and post-process aspects, we need to have some coherence and harmonious tones.

Conclusion

I always wanted to learn more about foliage (creation in SpeedTree, procedural, etc.) and this environment was the perfect exercise that gave me the liberty to explore the process and scene creation from scratch.

Finally, you can see the result in the beauty shots but also in my gameplay video where I play in FPS to show the optimized and dynamic environment.
https://www.youtube.com/watch?v=hamICzNYJ2c

Here is my progression in Unreal through some screenshots at each step.

46-Slider

Thank you for reading!