Fog and atmosphere
How depth fog, height fog, volumetric fog and physically based sky systems work in Unreal and Godot, how to use them for depth, mood and readability, what they cost, and how Silent Hill turned a hardware limit into atmosphere.
Fog in a game engine is a simulation of light being absorbed and scattered by particles in the air, such as water droplets, dust and smoke; Unreal's fog settings describe this, with particle reflectiveness and extinction controls (Unreal Engine Documentation: Exponential Height Fog). Atmosphere systems do the same at planetary scale, giving you blue skies, orange sunsets and distant mountains that fade to blue. Simple height fog costs about as much as two layers of constant fog (Unreal Engine Documentation: Exponential Height Fog), so it is a cheap way to add depth and mood, and an easy one to overdo.
This page covers the main kinds of fog, the physically based sky systems in current engines, and how artists use them. For the light itself, see real-time lighting; for the final image, see exposure and post-processing.
#Why artists use fog
- Depth. Objects that fade with distance read as far away. Painters call this aerial perspective; see composition and value.
- Mood. Low mist in a valley, smoke in a tavern, dust in a sunbeam.
- Readability. Fog separates layers of a scene, so a silhouette stands out against a paler background. See silhouette and visual hierarchy and readability.
- Hiding things. Fog can cover the point where the world, or its detail, ends.
#Kinds of fog
#Depth fog and height fog
The simplest fog is a colour blended in by distance. Godot offers two kinds in its Environment resource (Godot Engine documentation: Environment and post-processing):
- Depth fog "is applied based on the distance from the camera".
- Height fog "is applied to any objects below (or above) a certain height, regardless of the distance from the camera".
Unreal's Exponential Height Fog combines the two ideas. It "creates more density in low places of a map and less density in high places" (Unreal Engine Documentation: Exponential Height Fog). Fog Density is "the global density factor, which can be thought of as the fog layer's thickness", and Fog Height Falloff "controls how the density increases as height decreases" (Unreal Engine Documentation: Exponential Height Fog). You can add a second layer with its own density, falloff and height offset (Unreal Engine Documentation: Exponential Height Fog).
Two settings make height fog look lit rather than painted on:
- Sun scatter / directional inscattering. Looking towards the sun, the fog takes on the light's colour. Godot: "the fog will be tinted according to the light's color" (Godot Engine documentation: Environment and post-processing). Unreal's Directional Inscattering does the same, with an exponent to control the size of the glow (Unreal Engine Documentation: Exponential Height Fog).
- Aerial perspective. In Godot, higher values tint the fog with the sky, and "1.0 fully replacing the regular fog color with aerial perspective" (Godot Engine documentation: Environment and post-processing).
Cost. Epic says the cost of Exponential Height Fog "is similar to two layers of constant density height fog", and that a far Start Distance can cut the cost by "50% or less", depending on the scene (Unreal Engine Documentation: Exponential Height Fog).
#Volumetric fog
Volumetric fog fills a 3D grid of cells in front of the camera (Godot calls them froxels, frustum voxels) and lights each cell, so fog can be shadowed: sunbeams through a window, a torch glowing in mist.
In Unreal, Volumetric Fog is a toggle on the Exponential Height Fog. Its main controls are Scattering Distribution (0 scatters "equally in all directions"; values near 0.9 scatter towards the light), Albedo (water particles near white, dust darker) and Extinction Scale (Unreal Engine Documentation: Exponential Height Fog). It does not support Start Distance, Fog Max Opacity or Fog Cutoff Distance (Unreal Engine Documentation: Exponential Height Fog).
In Godot 4, volumetric fog "is only supported in the Forward+ renderer" (Godot Engine documentation: Volumetric fog and fog volumes). Anisotropy controls the scattering direction: "Fog and mist scatter light slightly forward, while smoke scatters light equally in all directions" (Godot Engine documentation: Volumetric fog and fog volumes). FogVolume nodes add or subtract fog locally, in ellipsoid, cone, cylinder, box or world shapes (Godot Engine documentation: Volumetric fog and fog volumes).
Volumetric fog has limits. In Godot it has "a finite range", moving fog volumes and lights can leave "ghosting" trails from temporal reprojection, and dense fog can cause banding (Godot Engine documentation: Volumetric fog and fog volumes). Keep its Length "as low as possible" for quality (Godot Engine documentation: Volumetric fog and fog volumes). See bit depth and banding for banding.
#Sky and atmosphere systems
Physically based sky systems simulate how sunlight scatters through the air. Unreal's Sky Atmosphere "simulates absorption with Mie scattering and Rayleigh scattering" (Unreal Engine Documentation: Sky Atmosphere Component):
- Rayleigh scattering comes from tiny particles such as air molecules and makes the sky blue.
- Mie scattering comes from larger particles such as dust or pollen and gives the bright haze around the sun.
The system provides "an Earth-like atmosphere with time-of-day featuring sunrise and sunset", plus aerial perspective "from ground to sky to outer space" (Unreal Engine Documentation: Sky Atmosphere Component). Sizes are in kilometres: Epic's planetary example uses a ground radius of 6,360 km and an atmosphere height of 100 km, and the default Rayleigh scale height is 8 km (Unreal Engine Documentation: Sky Atmosphere Component). You link it to your sun by enabling Atmosphere Sun Light on the directional light, with index 0 for the sun and 1 for the moon (Unreal Engine Documentation: Sky Atmosphere Component).
To stay fast, "the sky is evaluated in a few lookup tables (LUTs) at low resolution" (Unreal Engine Documentation: Sky Atmosphere Component). Sébastien Hillaire's 2020 paper on a production sky technique describes rendering "the atmosphere of a planet from ground to space views", scaling "from power-efficient mobile platforms up to PCs with high-end GPUs" (Hillaire 2020). Unreal lists mobile support with the condition that it "Requires a skydome mesh with a material that has Is Sky enabled" (Unreal Engine Documentation: Sky Atmosphere Component).
#Fog and other systems
- Global illumination. Godot's volumetric fog can take on GI colour through GI Inject (Godot Engine documentation: Volumetric fog and fog volumes).
- Translucency and particles. Check every translucent material, such as smoke cards and glass, in a foggy test map; see opacity, masked and translucent materials.
- Skyboxes. Unreal's Fog Cutoff Distance skips fog beyond a distance, useful when the skybox already has fog painted in (Unreal Engine Documentation: Exponential Height Fog).
#Common mistakes
- One flat fog colour. Use sun scatter or aerial perspective so the fog is lit (Godot Engine documentation: Environment and post-processing; Unreal Engine Documentation: Exponential Height Fog).
- Fog density chosen in one lighting state. Check it at noon, dusk and night if you have time of day.
- Volumetric fog everywhere. Use local volumes where it matters (Godot Engine documentation: Volumetric fog and fog volumes).
- Forgetting the platform. Godot's volumetric fog is Forward+ only (Godot Engine documentation: Volumetric fog and fog volumes); mobile skies in Unreal need a sky-flagged dome mesh (Unreal Engine Documentation: Sky Atmosphere Component).
#Further reading and watching
References
- · Exponential Height Fog · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
- · Silent Hill (video game) · Wikipedia, 2026 · web · accessed 2026-10-21
- · Environment and post-processing · Godot Engine documentation (source on GitHub), 2026 · docs · accessed 2026-10-21
- · Volumetric fog and fog volumes · Godot Engine documentation (source on GitHub), 2026 · docs · accessed 2026-10-21
- · Sky Atmosphere Component · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
- · A Scalable and Production Ready Sky and Atmosphere Rendering Technique · Computer Graphics Forum (EGSR 2020), 2020 · paper · accessed 2026-10-21
Pages that link here
- Colour for environments Topic
- Light and shadow Topic
- Silhouette Key term
- Forced perspective Key term
- Procedural modeling Topic
- Sky, clouds and volumetrics Key term
- Time of day Key term
- Level design and environment art Overview
- Set dressing and art passes Topic
- Art fatigue Key term
- Exercise: lighting one scene four ways Exercise
- A 12-month learning roadmap Guide
Last updated 2026-10-22