WoLD Archives Search About Contact

World of Level Design

Tutorials to Becoming the Best Level Designer and Game Environment Artist (since 2008)

UE4 Environment Breakdown: Desert Dunes & Pyramids or How to Get Back to Creating Exterior Environments

Category: Game Environment Art, UE4
December 03, 2020

A desert is a landscape where little precipitation occurs and living conditions for vegetation and animal life are very hostile.

Desert is isolation and lack.

For the world creator isolation and lack means minimal number of assets need to be used to create the environment.

Minimal doesn't mean easy but it does mean less time authoring custom content and more time focused on composition and lighting.

I decided that the desert themed environment was perfect to get back into environment design, create something quick and focus on new Sky Atmosphere feature in UE4.

The simplicity of this project allowed me to get it done in couple of days and share the process with you.

I've noticed one major roadblock holding many back is the scope of their ideas. Many projects require weeks if not months to complete and that alone stops the environment from ever getting started. By picking a simpler idea, focusing on something minimalistic and finish it within few days can help to build confidence you need to get the bigger projects off the ground.

In this article I will share the breakdown how I created the desert sand dunes and the pyramids environment quickly utilizing tools and assets that are available for UE4.

Best part is the process can easily be duplicated for similar projects and applied to your own work.

Let's begin…

The Idea Behind the Project

The idea behind this project was to create something new that I haven't done before. But keep it simple enough where I didn't have to create custom content, have to paint foliage or optimize. I also wanted to focus on using the new Sky Atmosphere actor in a large open landscape.

Video Tutorial

What is Sky Atmosphere?

"Sky Atmosphere is a physically-based sky and atmosphere-rendering technique. It's flexible enough to create an Earth-like atmosphere with time-of-day featuring sunrise and sunset, or to create extraterrestrial atmospheres of an exotic nature. It also provides an aerial perspective to which you can simulate transitions from ground to sky to outer space with proper planetary curvature." - Source Docs.UnrealEngine.com

There are two parts of Sky Atmosphere: time of day (sunrise to sunset) and aerial perspective with space - I only wanted to focus on using it for lighting the desert environment and not to create planetary space views.

Sky Atmosphere is a dynamic actor requiring the Directional Light to be set to Movable. This means I didn't need to worry about light baking nor dealing with lightmaps.

I ended up with one environment and two focal points.

First result was the desert sand dunes:

Second result was Pyramids in the desert:

I then experimented a lot with Sky Atmosphere and its settings to create these environments:

It may not win awards but the process behind it, what you can learn from it and how it can help you is what matters.

Time of Day Template

I used the TimeofDay template available in UE4, by going to File > New and choosing TimeofDay:

The template gives you a starting point to build in. It contains Directional Light, Sky Light, Sky Atmosphere and SkyDomeMesh:

It provides you with all the essential actors to start your scene.

Auto-Exposure (Eye Adaptation)

Auto-Exposure in TimeofDay template has to update to the scene, this is why you will see a fade-in effect in the viewport and when spawned in-game.

I don't like this auto-exposure fade so I want to turn it off. Post Process Volume can be used to control this Auto-Exposure (Eye Adaptation).

What I Did:

  • Insert Post Process Volume
  • Set it to Unbound
  • Set Auto-Exposure Min/Max Brightness to 1
  • Exposure Compensation to 0 (if you keep it at default of 1 then set Directional Light Intensity to 5)
  • Update Directional Light Intensity: 9lux

This will bring the scene to the same lighting result as the default template settings without the slow fade-in effect.

The reflections will show up incorrectly, so you need to Build Reflection Captures:

Landscape Heightmap

First thing I needed was a terrain heightmap.

I didn't want to sculpt the terrain by hand. I wanted to automate this process. Although I wouldn't need to do much other than generate some noise.

To get the heightmap I used Terrain.Party. I found a location somewhere in Colorado that had sand dune appearance.

If you want to learn how to use Terrain.Party for UE4, see this in-depth tutorial.

I wanted to only use the sand dunes part of the heightmap and have a larger size terrain texture.

Terrain.Party will always generate the same size heightmap - 1081x1081px. But I wanted something bigger.

In Photoshop, I created a new document and made it 2017x2017. Why 2017px? Find out here.

This will give me 2 square km.

I then cloned parts of the sand dunes all over. It looks messy and you can see the repetition in the heightmap:

BUT, in UE4 from player's point of view you can't tell:

I then exported the heightmap as 16bit PNG file. I end up using the same terrain heightmap for both environments: Sand Dunes and Pyramids.

Importing the Terrain Heightmap

I imported the heightmap into UE4. And I scaled it down on Z to 20. This made the heightmap less intense and workable.

Assets Used

Terrain material I used was from Quixel Bridge - Bright Desert Sand.

I used the Material Instance that Megascans creates automatically when you import from Bridge.

The material was a single texture and I just applied the Material Instance to the landscape. No paintable texture layers required.

Did you know you can apply any material onto the landscape without ever creating Texture Layer Infos?

I tweaked a few Material Instance parameters and called it done.

See this tutorial on How to Use Quixel Bridge for UE4.

The Pyramids meshes came from Epic's Vehicle Demo available under the Learn tab of the Launcher.

The demo contains a lot of great and rarely used desert themed assets.

I duplicated few asset folders from Vehicle Demo project and copied them over into my own project.

Scale

I always include a mannequin in all my projects and in every scene. This helps me judge the correct size of the Material on the landscape and overall dimensions of the environment.

Here is how to download and include UE4 Mannequin Mobile in your projects:

Sky Atmosphere Settings

To quote again:

"Sky Atmosphere is a physically-based sky and atmosphere-rendering technique. It's flexible enough to create an Earth-like atmosphere with time-of-day featuring sunrise and sunset, or to create extraterrestrial atmospheres of an exotic nature. It also provides an aerial perspective to which you can simulate transitions from ground to sky to outer space with proper planetary curvature."

There are a lot of Sky Atmosphere Settings to play with. As you adjust Directional Light position, the Sky Atmosphere will also update to simulate how particles would react to that time of day. So there is a constant tweaking and adjusting between Directional Light, Sky Light and Sky Atmosphere actors. As well as Exponential Height Fog if you included one.

This is the key to working with Sky Atmosphere. You constantly have to tweak all these actor properties between each one so they match to what you want depending on the sun position in the sky.

Also know that Sky Atmosphere is tied to the Directional Light and they influence each other:

  • Hold Ctrl + L and Move the Mouse = Change Sun Position

Two fundamental categories in Sky Atmosphere are Mie and Rayleigh Scattering. These control how particles and molecules are absorbed by the atmosphere. Changing various settings for Mie and Rayleigh Scattering changes how these particles are absorbed by the atmosphere.

Here is what helped me to understand the difference between two Scattering methods.

  • Mie Scattering: how light interacts with LARGER particles in the atmosphere (dust, pollen, air pollution); usually absorbs light causing haziness or clarity; often scatters resulting in halos around light source; increasing or decreasing Mie density causes more or less clarity in the sky
  • Rayleigh Scattering: how light interacts with SMALLER particles (air molecules); highly dependent on the lighting situation

I would often start with adjusting and changing either Mie Scattering or Rayleigh Scattering first.

Primary settings I change with Rayleigh Scattering are:

  • Rayleigh Scattering Scale
  • Rayleigh Scattering
  • Rayleigh Exponential Distribution

Primary settings I change with Mie Scattering are:

  • Mie Scattering Scale
  • Mie Scattering

These are the go to settings I started with that gave me the most predictable results but please experiment with the rest yourself as I did.

Atmosphere Absorption I changed the least. This allows you to set what color and amount of that color gets absorbed in the atmosphere (or removed). You can increase the Absorption Scale and then set the color to see what effect it has on the scene.

Art Direction will allow you to change Sky Luminance Factor, this helps to set a different sky color that isn't based on real-world particle absorption.

Sky Atmosphere wasn't very intuitive or at least I haven't found an artist friendly way to adjust it that gives me consistently predictable results. BUT it produces amazing results when you hit the right settings.

Tip: if you want to have overcast, hazy environments then I increase Mie Scattering Scale.

Exponential Height Fog

Exponential Height Fog adds a fog effect into your environment.

Sky Atmosphere is capable of simulating fog so Exponential Height Fog actor is not necessary BUT I found Exponential Height Fog easier to work with for this project. I had a hard time trying to get the same fog effect with Sky Atmosphere.

Also, Exponential Height Fog helped to fill the bottom part of the screen world with a solid color, something that Sky Atmosphere can't do.

The color below that you see in TimeofDay template is done by SkyDomeMesh included in the TimeofDay template map. It also renders the moving clouds across the sky. But Sky Atmosphere by itself will display black below the horizon line.

If you are going to use Exponential Height Fog with Sky Atmosphere you must enable it in Project Settings. Go to Edit > Project Settings and under Engine: Rendering, enable Support Sky Atmosphere Affecting Height Fog.

Then in the Sky Atmosphere settings, use the 'height fog contribution' property to scale its effect:

The Exponential Height Fog properties I updated for various lighting setups in were:

  • Fog Density
  • Fog Height Falloff
  • Fog Max Opacity
  • Fog Inscattering Color (when you are looking away from the Light Source, the sun)
  • Directional Inscattering Color (when you are looking at the Light Source, the sun)
  • Directional Inscattering Exponent
  • Volumetric Fog: enabled

I changed Exponential Height Fog properties based on the lighting situation of the scene. Later on when I experimented with Sky Atmosphere I had to update the Exponential Height Fog properties to match the Sky Atmosphere results.

Desert Sand Dunes Environment

Desert dunes was the first environment I created. The focal point was the desert itself and lighting within it.

I wanted to create a base lighting setup before experimenting with crazy lighting and atmosphere. So after I had the terrain heightmap working and material applied on the landscape I began to adjust the Directional Light.

I moved the direction of the sun into various positions until I found something pleasing. The shadows across the landscape from the sun was an important consideration. By using the shortcut Ctrl + L and moving the mouse, you can move the Sun position and find something that looks good.

I updated the Directional Light to 7 lux and made it brighter.

I enabled Color Temperature on the Directional Light and changed it to 5,000. I found this to be more accurate for realistic lighting. Light Color still works great but give Temperature a try. It will give you quick and predictable results.

Here is a chart to use for Color Temperature:

Sky Light is used to light indirectly lit areas. It is the bounced light from the sky and gives the environment a more realistic appearance. I changed the Intensity Scale of the Sky Light to 2 to make indirectly lit areas brighter.

You may also want to experiment with enabling or disabling 'Lower Hemisphere is Solid Color'. TimeofDay map template has this disabled.

Lower Hemisphere is Solid Color: enabling this is accurate when lighting a scene on a planet where the ground blocks the sky. Disabling can be useful to approximate skylight bounce lighting (eg Movable Light).

When adjusting the Directional Light, Sky Light and Sky Atmosphere you won't get accurate representation in the viewport as when you do when you spawn into a map. You need to periodically Build Reflection Captures.

I ended up with this lighting setup that also included Exponential Height Fog:

After I was done with simple real-life lighting I started to experiment and get crazy with Sky Atmosphere Settings. There was no method to this. I changed the properties and see what I could come up with. I restarted a lot and tested things over and over until I found something that worked.

Look over the Sky Atmosphere Settings above to see which properties I started adjusting first. But there was also a lot of trial and error.

Since I included Exponential Height Fog, I had to adjust it often after I changed Sky Atmosphere properties to make it match the scene.

Here are some of the results from experimentation:

Pyramids Environment

Desert pyramids was the second environment I created. The focal point was the pyramids in the desert landscape.

I used the same terrain to minimize the work I needed to do. The pyramids meshes came from the Vehicle Demo explained earlier in the post.

I also used the same method of updating the Directional Light, Sky Light, Exponential Highest Fog and Sky Atmosphere Settings. Often going back between all of them and tweaking each one to match the lighting and atmosphere results more accurately.

Here are some of the better results:

Using CineCamera

I used CineCamera actor instead of the perspective viewport for screenshots. This camera can be animated using Blueprints but I used it only for static compositional shots.

CineCamera uses real-world lens settings that aren't available in the regular views.

When you select the CineCamera you will see a window preview pop up in the perspective viewport. If you press Ctrl+Shift+P, you'll be able to Pilot the camera and view it from its perspective for accurate placement and for taking screenshots.

  • Ctrl + Shift + P = Pilot Selected Actor

Post Process

I already had Post Process Volume inserted to control Exposure.

When I was finished with lighting and composition I began to adjust Color Grading to make the scene more visually appealing.

Color Grading allows you to adjust colors, saturation, white balance, contrast, shadows, midtones, highlights etc. on the entire environment.

Here is the Desert scene before and after Color Grading:

Here is the Pyramids scene before and after Color Grading:

The primary settings I adjusted were under Global tab:

And I also adjusted Vignette Intensity and Chromatic Aberration Intensity.

In Closing

You can take this similar approach and apply it to your own project. Create something similar that is simple in design and small enough to finish it in a couple of days.

As you can see I got some good results using very limited amount of assets and focusing entirely on using the Sky Atmosphere TimeofDay template to create visually appealing scenes.

UE4: Auto-Landscape Material - Tutorial Course

Download the tutorial course here: "UE4: Auto-Landscape Material: The Complete Course to Creating and Using Procedural Auto-Landscape Materials"

SUBSCRIBE & GET FREE UE4 PDF GUIDE

Subscribe to receive NEW/UPDATED and FREE "UE4 Beginner's Quick Start Guide" PDF (150+ pages).

Subscribe and Get Free UE4 PDF Guide

Visit this page for more info about the guide...


Follow WoLD




UE4 LANDSCAPE ESSENTIALS


BEGINNER COURSE TO LEARN UE4


LEARN THE PREPRODUCTION PROCESS


ABOUT WoLD & ALEXG

About World of Level Design

My name is Alex Galuzin. I am self-taught level designer, game environment artist and the creator of World of Level Design.com. I've learned everything I know from personal experimentation and decades of being around various online communities of fellow environment artist and level designers. On World of Level Design you will find tutorials to make you become the best level designer and game environment artist.

Read More »


Home Terms of Use/Trademarks/Disclaimers Privacy Policy Donate About Contact

All content on this website is copyrighted ©2008-2021 World of Level Design LLC by Alex Galuzin. All rights reserved.
Duplication and distribution is illegal and strictly prohibited.

World of Level Design LLC is an independent company. World of Level Design website, its tutorials and products are not endorsed, sponsored or approved by any mentioned companies on this website in any way. All content is based on my own personal experimentation, experience and opinion. World of Level Design™ and 11 Day Level Design™ are trademarks of Alex Galuzin.

Template powered by w3.css