About sky and light#

All 3D scenes include a sky configured either in static mode or in dynamic mode.

A static sky cannot be changed at runtime but is more efficient in term of resource consumption.

A dynamic sky provides parameters that can be changed at runtime using the Web dashboard (or with sphinx-cli).

The sky mode coming with the running world level is indicated in the upper right corner of the main HMI. You can also run the following command:

sphinx-cli param -m world sky/sky mode

Here is the reference to all exposed parameters.

To change weather conditions, you can either simply use predefined presets, or have a more precise control over each parameter.

How to use presets#

A preset is a pre-defined combination of dynamic sky parameters. By default, the dynamic sky is configured to use the daylight_clearsky preset. To switch to another preset, you need to set the parameter preset. The following values are available:

_images/f_daylight_clearsky.png

daylight_clearsky#

_images/f_daylight_cloudy.png

daylight_cloudy#

_images/f_daylight_verycloudy.png

daylight_verycloudy#

_images/f_pretty_sunset.png

pretty_sunset#

_images/f_dazzling_sunset.png

dazzling_sunset#

_images/f_night.png

night#

_images/f_saturated_lights.png

saturated_lights#

_images/f_heavy_fog.png

heavy_fog#

Here is for example a command line to switch to a night preset:

sphinx-cli param -m world sky/sky preset night

Note

Indoor levels start by default with a different preset called indoor. This preset is recommended for levels where the main light source is not the Sun.

_images/f_indoor.png

The world “Factory” with the “indoor” preset.#

About cloud parameters#

The dynamic sky supports two methods to display clouds:

  • volumetric: a physically-based cloud rendering system that uses shaders to generate dynamic clouds.

  • hdri: a High Dynamic Range (HDR) image as a background image.

By default, the dynamic sky is configured to use volumetric clouds. To activate the hdri method, you need to set the parameter cloud/type to hdri:

sphinx-cli param -m world sky/sky cloud/type hdri

How to use dynamic clouds#

When the cloud/type parameter is set to volumetric, the dynamic sky displays volumetric clouds, whose aspect is highly configurable by adjusting the parameters through the Web dashboard (or with sphinx-cli).

The parameter cloud/volumetric/weather_map takes the names of the texture representing the distribution of the clouds. These are the available distributions:

  • T_WeatherMap

  • T_WeatherMap_2

  • T_EV_DustPanner_01

  • T_soft_smoke

  • uniformclouds

  • TilingNoise05

Note

The parameters are correlated, you may need to find a suitable set of parameters for each texture.

Here is a command line example:

sphinx-cli param -m world sky/sky cloud/type volumetric
sphinx-cli param -m world sky/sky cloud/volumetric/weather_map TilingNoise05
sphinx-cli param -m world sky/sky cloud/volumetric/coverage 2.25

before

=>

after

How to use HDRIs#

When the cloud/type parameter is set to hdri, the dynamic sky displays an HDR (high dynamic range) panoramic image all over the whole top hemisphere of the world.

The parameter cloud/hdri/hdri_texture takes the name of the HDR image to be used. Here is a command line example:

sphinx-cli param -m world sky/sky cloud/type hdri
sphinx-cli param -m world sky/sky cloud/hdri/hdri_texture cloudy_sun01
_images/hdri_texture.jpg

Below are listed the available images:

_images/cloudy_sun_01.jpg

cloudy_sun01#

_images/cloudy_sun_02.jpg

cloudy_sun02#

_images/cloudy_sun_03.jpg

cloudy_sun03#

_images/cloudy_sun_04.jpg

cloudy_sun04#

_images/clear_sky.jpg

clear_sky#

It is also possible to load external HDRI textures from PNG or JPEG files. In that case, a configuration file needs to be passed to the UE4 application using the option -config-file=<file.yaml>.

parrot-ue4-forest -config-file=</path/to/file.yaml>

A configuration file could look like this:

Hdris:
  - Name: 'MyAwesomeHdri'
    FilePath: '/path/to/MyAwesomeHdri.png'
  - Name: 'MyEvenMoreAwesomeHdri'
    FilePath: '/path/to/MyEvenMoreAwesomeHdri.jpg'

The HDRI texture must contain not only the sky (i.e. the upper half of the sphere), but also the bottom half of the sphere, which should be set to a fully transparent alpha channel. Below is an example of such a texture.

_images/hdri_example.png

About environment parameters#

The dynamic sky provides several components that can be configured at runtime with environment parameters. The complete list of parameters can be found here.

Warning

Environment parameters only affect the dynamic sky. They have no effect on the static sky.

Adjust Sun position#

You can change the position of the Sun with the environment/sun_elevation and environment/sun_azimuth parameters, which in turn changes the direction and size of the shadows.

sphinx-cli param -m world sky/sky environment/sun_elevation 10
_images/sun_elevation.jpg

Adjust Sun size and brightness#

The size and brightness of the Sun can be controlled by editing the parameters environment/sun_size and environment/sun_brightness.

sphinx-cli param -m world sky/sky environment/sun_size 10
sphinx-cli param -m world sky/sky environment/sun_brightness 20
_images/sun_brightness.jpg

Adjust light intensities#

Adjusting light intensities requires to tune several environment and cloud parameters:

  • environment/sun_intensity: total energy that the Sun emits.

  • environment/sun_volumetric_scattering_intensity: how much the Sun contributes to the volumetric fog.

  • environment/sky_light_intensity: total energy that the environment light emits.

  • environment/stars_intensity: total energy that the stars emit.

  • cloud/volumetric/light_intensity: total energy that the cloud emit.

  • cloud/hdri/hdri_intensity_multiplier: a multiplier against the overall intensity of the HDR range.

Warning

Keep in mind that all parameters are correlated. For example, you may find volumetric clouds too shallow after increasing the Sun intensity. An easy way to fix this is to use the same value for environment/sun_intensity and cloud/volumetric/light_intensity.

Switching to an existing preset is an easy way to have a starting point from which these parameters can then be tuned.

Reset action#

To set all sky parameters back to their initial values, you can:

  • either trigger the reset action belonging to the sky parameters.

  • or, simply perform a world reset.

sphinx-cli action -m world sky/sky reset