Skybox lights

BeginnerDesignerProgrammer

A skybox light is an ambient light emitted by a skybox. Xenko analyzes the skybox texture and generates lighting using image-based lighting (Wikipedia).

media/SkyboxLightOverview.png

Skybox lights are good for exterior scenes, where the skybox is visible. They're less useful for interior scenes, such as in rooms where the skybox is only visible through windows; as the skybox light nonetheless lights the entire room, this creates an unnatural effect.

How skyboxes light the scene

These images show the difference between ambient and skybox lighting on two pure diffuse materials:

Ambient lightingSkybox lighting
Ambient lightingSkybox lighting.png

These images show the effect of skybox lighting on a material with different metal and gloss properties:

Material PlasticMetal 100% Gloss 50%Metal 100% Gloss 100%
Material plasticMaterial 100% Gloss 100%Metal 100% Gloss 100%

Notice how the skybox texture colors are reflected.

Set up a skybox light

To use a skybox as a light, you need to add a skybox asset, then select it in a Light component.

  • In the Asset View, click Add asset

  • Select Miscellaneous > Skybox.

Choose asset type

The Select an asset window opens.

  • Choose a skybox texture from the project assets and click OK.

Choose texture

Game Studio adds the skybox asset with the texture you specified.

  • Select the entity you want to be the skybox light.

  • In the Property Grid (on the right by default), click Add component and select Light.

Background component properties

  • In the Light component properties, under Light, select Skybox.

Light component property

  • Click Hand icon (Select an asset):

No skybox asset selected

  • Select the skybox asset you want to use as a light source and click OK.

Select an asset

The Light component uses the skybox asset to light the scene.

Skybox asset properties

When you use a skybox as a light, Xenko uses it both in compressed form (spherical harmonics (Wikipedia)) and as a texture to light different kinds of material. You can control the detail of both in the skybox asset properties.

Skybox lighting properties

PropertyDescription
TextureThe texture to use as skybox (eg a cubemap or panoramic texture)
Specular OnlyUse the skybox only for specular lighting
Diffuse SH orderThe level of detail of the compressed skybox, used for diffuse lighting (dull materials). Order5 is more detailed than Order3.
Specular Cubemap SizeThe texture size used for specular lighting. Larger textures have more detail.

Skybox light properties

media/SkyboxLightProperties.png

PropertyDescription
IntensityThe light intensity
Culling MaskWhich entity groups are affected by the light. By default, all groups are affected

Example code

The following code changes the skybox light and its intensity:

  1. public Skybox skybox;
  2. public void ChangeSkyboxParameters()
  3. {
  4. // Get the light component from an entity
  5. var light = Entity.Get<LightComponent>();
  6. // Get the Skybox Light settings from the light component
  7. var skyboxLight = light.Type as LightSkybox;
  8. // Replace the existing skybox
  9. skyboxLight.Skybox = skybox;
  10. // Change the skybox light intensity
  11. light.Intensity = 1.5f;
  12. }

See also