Aether: Sky and Weather - documentation

Sample image

Table of Contents

📖 Overview

Aether: Sky and Weather is a comprehensive system that enables user to manage lighting and weather changes together.

💿 Installation

Method 1 (recommended)

  1. Add the Aether: Sky and Weather package to your project
  1. Add VolumetricSkyRenderFeature to Renderer settings.
  1. Drag and drop Weather prefab onto your scene. (WeatherSystem → Prefabs → Weather.prefab)

Method 2

  1. Add the Aeather: Sky and Weather package to your project
  1. If you want to use volumetric effects: Add VolumetricSkyRenderFeature to Renderer settings.
  1. Finally, add an empty GameObject to the scene and add WeatherManager script.

☁️ WeatherStates

WeatherState is a structure containing a SkyProfile, WeatherProfile as well as particle system and ambient sound triggers.

SkyProfile

Sky profiles contain settable data that define how sky is rendered and also how sun lighting color changes in time.

WeatherProfile

Weather profiles contain data defining the weather. Currently settable data for the weather:

  • 2 layers of performant 2D clouds
  • Volumetric Clouds Layer
  • Directional and ambient fog with extinction, suitable for occluding light or creating a smog-like effect

ParticleSystems (optional)

Weather state contains a list of particle systems that will be triggered when WeatherState is active.

Audio (optional)

WeatherState also contains audio tool that will trigger ambient sound with relation to time (e.g. birds chirping in the day, owls howling at night).

🕐 Positioning and time of day functionality

There are currently two ways of specifying positions of sun and moon:

  • Calculated - you can specify exact location by using latitude, longitude, timezone offset, day of year and other parameters and then set sun’s and moon’s position by using time slider

Calculated positioning.

  • Custom - by selecting this positioning mode you can set sun’s and moon’s positions by using their Transform components.

Custom positioning.

Both methods also set minimum and maximum intensity of lighting which is calculated with respect to height of currently enabled celestial body.

🌦️ Weather Transitions

Prerequisites: You must add at least 2 WeatherStates to the WeatherManager component to use transitions.

Weather states.

There are currently 2 ways of changing weather state:

  1. Calling WeatherManager.Instance.Transit method with specified state name and transition time anywhere in your codebase.
  1. Using Debug Gui of WeatherManager (this can be enabled in WeatherManager’s inspector).

🎯 Transition Methods

Transit to Specific State

Transition to a weather state by name.

WeatherManager.Instance.Transit("Rainy", 5f);

Method Signature

public void Transit(string stateName, float transitionTime)

ParameterTypeDescription
stateNamestringName of the target weather state
transitionTimefloatTransition duration in seconds
💡 If no matching state is found, the transition is silently ignored.

Transit to Next State

Cycle forward through weather states sequentially. Automatically wraps to the first state after the last.

WeatherManager.Instance.TransitToNextWeatherState(3f);

Method Signature

public void TransitToNextWeatherState(float transitionTime)

ParameterTypeDescription
transitionTimefloatTransition duration in seconds

Transit to Previous State

Cycle backward through weather states. Automatically wraps to the last state when going backward from the first.

WeatherManager.Instance.TransitToPreviousWeatherState(2f);

Method Signature

public void TransitToPreviousWeatherState(float transitionTime)

ParameterTypeDescription
transitionTimefloatTransition duration in seconds

🛠️ Usage Examples

Event-Driven Transitions

// Trigger specific weather based on game events
if (playerEnteredDesert)
{
WeatherManager.Instance.Transit("Rainy", 4f);
}

Input-Based Cycling

// Cycle through weather states on button press
if (Input.GetKeyDown(KeyCode.N))
{
WeatherManager.Instance.TransitToNextWeatherState(2.5f);
}

Automated Weather Cycle

IEnumerator WeatherCycle()
{
while (true)
{
yield return new WaitForSeconds(60f);
WeatherManager.Instance.TransitToNextWeatherState(10f);
}
}

💡

When designing different weather states for transitions, it is important to know, that changing clouds scale between weather states can result in (most probably) unintended cloud movement. This can be avoided by using cloud height instead of changing scale.

☀️ Lighting

Configure how the Weather System manages sun and moon lighting.

Below basic settings for lighting are shown:

Lighting settings.

  • Automatically disable lights - setting this state to enabled will disable sun’s and moon’s directional light component depending on where sun is located. This will basically enable moon’s light component disable sun’s light component when sun is below horizon.
  • Sun intensity multiplier - multiplier for sun’s directional light in relation to global sun’s intensity.
  • Automatically Calculate Sun Settings - switching this off will let you use sun’s directional light settings without restrictions. When enabled - intensity and color is calculated by the Weather System.
  • Atmosphere Damping - value used to dampen sun intensity that’s used by atmosphere rendering.

⚙️ Lighting properties

Automatically Disable Lights

Controls whether sun and moon lights toggle based on position.

StateBehavior
✅ EnabledMoon light activates when sun is below horizon; sun light deactivates
❌ DisabledBoth lights remain active regardless of position
💡 Use case: Enable for realistic day/night cycles where only one celestial light source is active at a time.

Sun Intensity Multiplier

Adjusts the sun's directional light intensity relative to the global sun intensity value.

Type: float

Default: 1.0

📊 Final intensity = Global Sun Intensity × Sun Intensity Multiplier

Automatically Calculate Sun Settings

Determines whether the Weather System controls sun light properties.

StateDescription
✅ EnabledWeather System automatically calculates light intensity and color
❌ DisabledUse custom directional light settings without restrictions
⚠️ Note: Disable this if you need full manual control over the sun's directional light component.

When enabled, the system controls:

  • Light intensity
  • Light color

When disabled, you can freely adjust:

  • All directional light properties
  • Custom color grading
  • Manual intensity curves

Atmosphere Damping

Dampens sun intensity specifically for atmosphere rendering calculations.

Type: float

🎨 Use case: Fine-tune atmospheric scattering without affecting direct lighting. Higher values create softer, more diffused atmospheric effects.