Click or drag to resize
DigitalRuneDirectionalLight Class
Represents a directional light.
Inheritance Hierarchy

Namespace: DigitalRune.Graphics
Assembly: DigitalRune.Graphics (in DigitalRune.Graphics.dll) Version: 1.2.0.0 (1.2.1.14562)
Syntax
public class DirectionalLight : Light

The DirectionalLight type exposes the following members.

Constructors
  NameDescription
Public methodDirectionalLight
Initializes a new instance of the DirectionalLight class.
Top
Methods
  NameDescription
Public methodClone
Creates a new Light that is a clone (deep copy) of the current instance.
(Inherited from Light.)
Protected methodCloneCore
Makes the instance a clone (deep copy) of the specified Light.
(Overrides LightCloneCore(Light).)
Protected methodCreateInstanceCore
When implemented in a derived class, creates a new instance of the Light derived class.
(Overrides LightCreateInstanceCore.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetIntensity
Gets the (approximated) light intensity at the given distance.
(Overrides LightGetIntensity(Single).)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Properties
  NameDescription
Public propertyColor
Gets or sets the RGB color of the light.
Public propertyDiffuseIntensity
Gets or sets the diffuse intensity of the light.
Public propertyHdrScale
Gets or sets the HDR scale of the light.
Public propertyName
Gets or sets the name of the light.
(Inherited from Light.)
Public propertyShape
Gets or sets the shape of the light volume.
Public propertySpecularIntensity
Gets or sets the specular intensity of the light.
Public propertyTexture
Gets or sets the texture which is projected by this directional light.
Public propertyTextureOffset
Gets or sets the texture offset.
Public propertyTextureScale
Gets or sets the texture scale.
Top
Remarks

Directional lights have color, intensity, and direction - but no position or range. They emit light in the form of parallel rays. Directional lights can be used to model light sources which are positioned at infinite distance, such as the sun.

The DirectionalLight object defines the light properties of a directional light that shines in forward direction (0, 0, -1) - see Forward. A LightNode needs to be created to orient a light within a 3D scene.

Color, DiffuseIntensity/SpecularIntensity, and HdrScale are multiplied to get the final diffuse and specular light intensities which can be used in the lighting equations.

When using a low dynamic range lighting (LDR lighting) the light intensities are

  • Diffuse light intensity Ldiffuse = ColorRGB · DiffuseIntensity
  • Specular light intensity Lspecular = ColorRGB · SpecularIntensity

When using a high dynamic range lighting (HDR lighting) the light intensities are

  • Diffuse light intensity Ldiffuse = ColorRGB · DiffuseIntensity · HdrScale
  • Specular light intensity Lspecular = ColorRGB · SpecularIntensity · HdrScale

A pure diffuse light can be created by setting DiffuseIntensity > 0 and SpecularIntensity = 0. A pure specular light can be created by setting DiffuseIntensity = 0 and SpecularIntensity > 0.

The default Shape of a directional light is an InfiniteShape which covers the whole game world. It is allowed to set a different shape to create a local light.

A 2D texture (see Texture) can be assigned to the directional light. By default no texture is assigned. If a texture is set, the directional light projects the texture onto the lit surroundings (using texture wrapping to get an "infinite" texture). TextureOffset and TextureScale can be used to change how the texture is projected.

Cloning: When the DirectionalLight is cloned the Texture is not duplicated. The Texture is copied by reference.

See Also