Professional Services
Order outsourcing

Environment in Unreal: Finding the Perfect Look

Peter Leban prepared a great breakdown of his 3D environment The Two Crows made in Unreal with SpeedTree and Megascans.

Peter Leban prepared a great breakdown of his 3D environment The Two Crows made in Unreal with SpeedTree and Megascans.


Hi, my name is Peter Leban, I’m 35 years old and I come from the small town of Tolmin, Slovenia. I currently live in Koper, Slovenia, and work as a freelance environment artist. I studied fine arts and architecture in Ljubljana and 3D has been a serious hobby since the age of 13 thanks to my dear cousin Matic. Three years ago, I decided I wanted it to become my profession. I read 80.lv every day.

Where I come from, nature is abundant and I enjoy visiting and observing its beauty:

The Two Crows

The Start

The environment I will try and break down here started out as a simple idea – a lonely tower in the middle of nowhere.

As a fan of role-playing games and medieval fantasy I wanted to create something in that manner and, in the end, I wanted to create an environment that would be pleasing to the eye and have some story in it.

I also wanted to learn some new software and do something cool in Unreal after a long break from it.


For this project, I was using Maya, ZBrush, Substance Painter, Quixel MixerBridge, and World Machine with GeoGlyph. I used those tools to quickly create or adapt the assets I’ve already got. I chose this way of doing things because I wanted to focus on the overall composition and unification of the elements rather than crafting everything by myself and spend weeks on the project. Putting aside final tweaks, this environment took me about one week from start to finish. All the heavy lifting was done in the engine itself thanks to its cool features like Procedural Foliage Spawners, Landscape Grass tool, foliage tools, and shaders, so let’s start tearing it apart.

Landscape Workflow

The scene started with a simple landscape with a tower in the middle of it. The landscape is sculpted by hand in the engine using standard landscape editing. It uses a simple shader with two materials I made with Quixel Mixer layered together.

I started small and expanded the landscape as needed and started placing the rocks where I felt like I need them and made sense to me.

As for the rocks, I started building my big shapes with come from the Marketplace and they are amazing. I started with big shapes and moved to smaller ones.

I needed some trees for the background to block the view, because the scene is really small and the bigger scale is just an illusion, so, with the help of Procedural Foliage Spawners, I quickly planted in some trees I made in SpeedTree. To break things up even further, I spawned some more rocks and painted on some foliage by hand.

I wasn’t afraid painting fallen leaves or grass on the rocks, because in nature that happens all the time and it helps with binding the elements together.

For the background, I made a terrain mesh that has zero edges so I can copy the same asset over and over without noticing too much repetition. Our government is kind enough to provide some nice LiDAR scans of the country, so I used that as a base to build from. I used World Machine and Quadspinner’s Geoglyph for this task and baked masks that came out of it onto my lowpoly that went to Substance Painter for texturing. I chose a “minimalistic” approach for texturing this asset because I wanted to maintain a good read from afar and I knew I would be putting on some detail normals in the engine.

Environment Assets

After the initial blockout, I started dressing the scene with my own assets. I made sure that the colors and values fit together. I knew I needed something a bit more realistic, so a natural instinct these days would be Megascans all the way, but I love doing some photogrammetry from time to time and I felt I could use some of that.

The scanned assets workflow is pretty straightforward in its core. There is an in-depth video about this on Youtube and I highly recommend watching it to anybody who wants to do photogrammetry.

My photogrammetry is not that bad, but one simply cannot compete with Quixel when it comes to scans, so for grass and foliage, I ended up using Megascans in combination with SpeedTree with some help from Epic. I built two types of grass and a fern in ST using Megascans textures imported a Dry Plants set and mixed it with Paragon grass and heather in the engine. I also added in some dead branches to mix with the ferns and Paragon dead leaves to make things more interesting. The grass was placed with Landscape Grass Type and standard foliage painter.

1 of 2

I used SpeedTree for trees. I wanted to learn the software so the best way I thought was to see how the trees that come shipped with it are made and start playing with the settings. After some two hours I had this:

I made some trees that grow in clusters like they do in nature. Also, I made some trees that are big, some smaller and at the end, some saplings to give some life and, again, variety to the scene.

I scattered the trees for my big chunks of the forest with Procedural Foliage Spawners. Here’s an example of how I’ve set up my one of them:

And if we take a look inside one of the Foliage Types…

The great thing about Procedural Foliage Spawners is that it places instances in clusters and that helps with getting a result that looks natural a lot.

I did wet details with deferred decals and moss that binds the scene together using a trick I learned while watching one of the Tuesday Tips episodes (see below). Since I knew I would be baking my Skylight I knew that I’d get baked AO information for materials for free so I wanted to try it out and it turned out to be a really cool trick.

What I did was plug these two functions at the end of every material that needed some AO moss on it.

Control mask material function:

Moss material:

And the use of that. So I fitted everything with this. Landscape, trees, rocks, architecture:

Without AO moss / With AO moss:

1 of 2

In the end, I added in two more elements that helped me establish the focal point of the scene – a crow and a character looking at it from the shot I was aiming for. I got the crow from the Marketplace and the character from Mixamo. I repainted the character in Substance Painter and assigned appropriate shaders for skin and cloth in Unreal.


The sky is a big part of any natural environment, so I knew I have to choose the right skybox for this scene to really make it pop. In Unreal, I used a sphere with a sky texture I downloaded from CGskies. I think it’s a nice texture for what I wanted to achieve here. Since it was an LDR image I had to make it “HDR” in the material editor.

Lighting & Post-Processing

I’m learning about lighting in Unreal on Unreal Lighting Academy, so for the lighting, I tried to use the same principles as the author of the series. At first, I wanted to go for movable lights, but then I remembered what  Tim Simpson said about baking the skylight (see the video below) and I did the same thing – I baked the skylight and got these nice deep and soft shadows.

Here’s a comparison between Dynamic / Stationary skylight:

1 of 2

Height fog and fog sheets help, too.

No fog / Height fog

1 of 2

Height fog + fog sheets:

I played with the values to find the right amount of everything. My light and fog settings:

Post-process is important, as well. LUT did all the heavy lifting here. I touched up a bit on some settings in the Color Grading tab, but not too much.

1 of 2

And that’s it. ?


I hope I shed some light onto the process of how I made this scene – thanks to Kirill Tokarev and the ever-amazing 80.lv. Thank you!

Peter Leban, 3D Artist

Interview conducted by Kirill Tokarev

If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be useful for you:

Join discussion

Comments 5

  • Oleg




    ·4 years ago·
  • Leban Peter



    Leban Peter

    ·5 years ago·
  • Leban Peter

    Hi. What I meant by "zero edges" was that the mesh border had zero height so it sits on the ground.
    Thanks for the comment!


    Leban Peter

    ·5 years ago·
  • kanchan raj

    Firstly,Amazing work !!
    But a doubt..for the background thing ..you mentioned of using a mesh with zero edges which helps out in covering up the repetition process..what is it?..any detailed description please.


    kanchan raj

    ·5 years ago·
  • Zeeshan Qaswar

    Very nice.


    Zeeshan Qaswar

    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more