Rendering / Clouds · In development

Clouds built to be flown past.

A new cloud style for Talos Engine draws decks, cumulus and towers as built forms, so they keep their shape from the ground, from above and from right beside them.

A night flight at the Ultra preset. The moon is drawn larger than life for this shot.

  • 1.1 to 2.1 msfor the clouds seen from the air, at High quality on an RTX 3080
  • About 0.5 msfor the clouds seen from the ground, same card and preset
  • 14 MBof GPU memory for the cloud forms

In development Built and measured on an engine branch. Not in a release yet.

By day and by night

The same sky, twice.

Both at the Ultra preset, in the newest cloud look; the rest of this page was shot before it. The moon's size, the night's color grade and the day's exposure are set for these shots.

Why

A cloud has to be a thing with a shape.

The default clouds are a layer of noise cut off at a threshold: weather from the ground, a gray wall once the camera is inside the layer. Flight and maritime training need a cloud a pilot can judge distance against and fly around. One field in the scene file turns it on.

The whole cloud setup for the flights on this page

"sky": {
  "kind": "atmosphere",
  "intensity": 1,
  "rotation": 0,
  "clouds": {
    "preset": "broken",
    "style": "sculpted",
    "coverage": 0.64,
    "altitudeM": 1500,
    "thicknessM": 3600,
    "density": 0.8
  }
}
The same height and the same settings; only the style differs. At the height of a flight the noise style has the camera inside its cloud, so the picture is gray.
The default noise cloud style seen from the height of the flights
Default noise style
The new cloud style seen from the height of the flights, same scene and settings
New style

The noise layer stays the default and stays cheaper: 0.40 to 0.75 ms at High. The new style is the choice when the camera leaves the ground.

From the air

Over, past and beside them.

Closing on a tower with an anvil and passing beside it, by day.
Warm, sunlit cloud tops from above, with a dark gap in the deck
Above a broken deck at golden hour.

What you get

Decks, cumulus and towers.

  • A rolling deck with breaks

    Banks and valleys a few kilometers across. The ground shows through the breaks.

  • Cumulus of many sizes

    Most are small; a few are three times as wide.

  • Towers

    A few per horizon, each built its own way. About a third of the tall ones spread into an anvil.

Every form carries lumps from 500 m down to 10 m, so it has relief by day, at golden hour and under a full moon. Everyone in a session gets the same forms in the same places, moving on the simulation clock.

From the ground

The same clouds from the ground.

A mountain lake under a broken cloud deck, with the clouds reflected in the water
Under a broken deck, in the engine's own alpine test valley. The clouds shade the mountain.

In this scene the whole frame (terrain, water, sky and clouds) takes 4.0 to 4.7 ms on the RTX 3080 at High. The clouds are about half a millisecond of that from the ground and 1.5 ms from above the deck.

What it costs

1.1 to 2.1 msof a frame for the clouds seen from the air, at High quality on an RTX 3080

A 60 fps frame is 16.7 ms, so that is 7% to 12% of it.

The range is three views: skimming the deck toward the light, looking across it, and looking down from high above. It is the measured GPU time of every cloud pass together.

PresetNew style, msNoise style, ms
Low0.25 to 0.480.09 to 0.17
Medium0.34 to 0.65not measured
High1.12 to 2.060.40 to 0.75
Ultra1.42 to 2.560.53 to 1.81

At larger frame sizes, High preset: 1.8 to 3.3 ms at 2560x1440, and 3.8 to 6.8 ms at 3840x2160.

Measured on one graphics card, an RTX 3080, at 1920x1080: the median of 80 frames of a slow flight, from GPU timestamp queries. No other card has been measured.

Dial it up, dial it down

You, a script or an AI model set it the same way.

Every setting is a plain field: write the value. Out-of-range values are caught by the validator, which says which field and what range.

The same frame at full size: Low on the left, High on the right

A cloud tower over the deck: the left half drawn at the Low quality preset with stepped edges, the right half at High with smooth onesLow · 0.25 to 0.48 msHigh · 1.12 to 2.06 ms

In the scene

What the sky is. The same for every player.

sky.clouds.style
noise (the default) or sculpted
sky.clouds.preset
clear, fair, broken, overcast or storm: what is built
sky.clouds.coverage
Share of the sky covered, 0 to 1

In render quality

How finely it is drawn. Set per machine.

clouds.resolution
quarter, half or full: the biggest lever on cost
clouds.steps
16 to 128: quality against cost
clouds.sharpness
0.5 to 2: the look of the edges only, no cost
Every setting and every measurement

The other settings

sky.clouds.altitudeM, thicknessM
Height of the cloud base and depth of the layer
sky.clouds.density
How thick the cloud is to light
sky.clouds.windSpeedMps, windDirectionRad
Drift
sky.clouds.shadowStrength
How dark the ground gets under cloud
clouds.detail
On or off: steadier, finer clouds in motion for a small cost
clouds.fineDetail
0 to 1: the smallest lumps; 0 is a little faster

Sharpness: softer or crisper edges, at no cost

  • A close crop of a cloud tower with cloud sharpness set to 0.5

    0.5 Softer

  • A close crop of a cloud tower with cloud sharpness set to 2

    2 Crisper

Measured, setting by setting

SettingCost, ms
Quarter resolution, 32 steps (the Low preset)0.25 to 0.48
Quarter resolution, 48 steps (Medium)0.34 to 0.65
Half resolution, 32 steps0.83 to 1.44
Half resolution, 48 steps0.98 to 1.79
Half resolution, 64 steps (High)1.12 to 2.06
High with clouds.fineDetail 01.09 to 1.84
High with clouds.sharpness 21.11 to 2.02
High with clouds.detail off0.98 to 1.92
Half resolution, 96 steps (Ultra)1.42 to 2.56
Half resolution, 128 steps1.58 to 2.82
Full resolution, 64 steps3.30 to 6.34
Full resolution, 128 steps4.63 to 8.62
How it works

Built by rule, baked once, marched every frame.

  1. 01

    Build

    A deck, cumulus piles and towers are laid out by rule on a grid, each from rounded lobes joined smoothly. The layout comes from whole-number hashes, so it does not depend on the machine that draws it.

  2. 02

    Bake

    The forms are baked once into a 256 x 48 x 256 volume, and how much cloud lies between each point and the light into a second, smaller one.

  3. 03

    March

    Each pixel's ray steps through the volume. It skips clear air using the distance the volume stores, and takes shorter steps at a surface. Noise roughens the surface at five scales from 500 m down to 30 m, with a finer set near the camera.

  4. 04

    Light

    Each sample is lit by the sun or moon through the cloud in front of it, by the sky above it, and by the lit deck below it. Creases between lumps get less of each.

The cloud forms are baked once into two small volumes, 14 MB of GPU memory together. Drawing a cloud is then a few texture reads per sample. They are baked again only when the layer or the direction of the light changes; wind does not trigger a bake. The trace runs at half resolution and is rebuilt to full resolution over four frames, with history that follows the camera.

What it does not do yet

The limits, stated plainly.

  • Inside a cloud the view is a flat haze. You fly over, between and beside clouds, not through them.
  • One layer. There are no high cirrus and no second deck.
  • Storm and overcast skies are not tuned for this style yet.
  • No rain, lightning or fog banks come with it.
  • The sky repeats every 40 km.
  • Pixel-for-pixel identical output on different graphics cards has not been tested. The layout of the clouds is the same by construction.

Questions

Does it replace the existing clouds?
No. The noise layer is still the default. A scene opts in with one field.
What does it need?
The high-definition renderer. Numbers on this page are from an RTX 3080 at the High preset.
When can I use it?
It is built and measured on an engine branch, and it is not in a release yet. This page will say so when a release ships it.

A sky your scenario can fly in.

In development now. Ask us about it in a pilot.