Oskar Selin | Forest

Environment - Forest


This is a forests scene that I worked on during my freetime. I shared the project early on with Polycounts forum and with Linnea Harrison (DICE), recieving valuable feedback along the project. This pushed me to post frequent updates, change and correct things according to feedback. Many thanks to Linnea and polycount for all the feedback! This scene would not be what it is without you!

Finished Assets


Project Goals

Here are the project goals I decided on in the beginning of the project:

- This is a personal project without a time limit. Instead of rushing things I will take my time and do everything properly. No shortcuts. (ex sculpting a custom texture in Zbrush instead of using photo-generated textures)

- Research and experiment to find the best method to complete a task.

- Building an epic scale landscape optimised and working in a game-engine.

- Exposing the project early on to other people to receive feedback throughout the entire process.

Planning and Priority

This is a list of tasks that I made early on. Almost everything on this list made it into the game.

Some objects wasn't necessary for the scene and therefore not made.

Prio list (high to low)

- Find references for meshes and textures (ex oakleaf, forest leaf-floor)

- Make Pure-ref reference documents for each object listed in Forest Summary

- Build the world in World Machine

- Import the world as a landscape to Unreal Engine 4.7

- Make all the tileable ground textures (ex grass, dirt, leaf-floor)

- Paint the textures on the landscape

- Post on polycount, website and email contacts for feedback

- Make a custom skybox

- Create the rest of the assets

- Block out the world with the meshes

- Place Cameras

- Make a Matinee

- Set the mood with post effects & lighting

Objects, textures & Shaders:


Build the World Height-Map in World Machine.

Trees & textures

Birch, Maple & Oak Trees in Speedtree



Ground textures




Ground foliage & meshes





Other unique plants



Toppled Tree

Big Rocks

Small Rocks

Vertex-paint shaders

Bark shader with Bark, Mossy Bark, Variation Bark

Landscape shader blending textures with Height-map

Other things

VFX with falling leaves

Parts of forest under water

Different post-process effects and color schemes to create various moods

Vary the color of objects with a texture using world position

Grass Texture

To make the grass i modeled a few strands of grass in 3ds Max then applied a Bend and a Twist modifier with randomized settings to generate more unique strands. Each strand got one of four unique grass textures applied. Then i placed them in bigger groups and placed those around a plane. To make the texture tileable i grouped all grass that overlapped the edge and copied them to the opposite side. I rendered the diffuse in 3ds Max and the Normal and Height in Zbrush.

Leaf Texture

I wanted to get a natural randomness to how the leaves were placed in my texture. First I tried with a scatter modifier in 3ds Max but that did not do the trick. Leaves cut through eachother and it was still visible that I had painted them out. So instead I modeled three leaves; birch, oak and maple. I applied a bend and twist modifier to make 20 unique leaves and also made 7 different color variations for each tree-type. I used MassFX to give each leaf a collission-box, gravity and mass. After baking the leaves and letting them settle on a plane I placed some strands of grass and a weed called ground-elder making sure nothing cut through another mesh. Diffuse rendered in 3ds Max, Height and Normal Zgrabbed from Zbrush.

Landscape Height-Blend Shader

Here is a landscape shader using heightmap output to generate blending between textures. In the example picture i use grass, leaves, small cliff and big cliff textures. The landscape is tessellated depending on camera distance using heightmaps to define the geometry. The small square landscape was created to test the shader on.

Zbrush Tileable Rock

Tileable rock texture sculpted & rendered in Zbrush.

Unreal Engine Landscape

The landscape and how it changed during the project.

Grass Mesh

Two pictures of the grass mesh and shader. The shader is using a subsurface texture to let light through the grass strands.


First and last screenshots of the landscape.

Moss Texture

I did the moss in 3ds Max using a Hair and Fur modifier. 100 000 strands with some size and length variation were generated. Rendered textures in Zbrush and did the editing in Photoshop. Picture from 3ds Max viewport.

Dirt Texture

I started by sculpting the mud in Zbrush. Then i used a scatter modifier in 3ds Max to randomply place five different rocks and pebbles, leaves, brances and bark about. I then reimported everything into Zbrush for render and finalized the textures in Photoshop.

© 2019 Oskar Selin | Official Portfolio