Click or drag to resize
DigitalRuneProjectorLight Class
Represents a light that projects a texture.
Inheritance Hierarchy

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

The ProjectorLight type exposes the following members.

Constructors
  NameDescription
Public methodProjectorLight
Initializes a new instance of the ProjectorLight class.
Public methodProjectorLight(Texture2D, Projection)
Initializes a new instance of the ProjectorLight 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 propertyAttenuation
Gets or sets the attenuation exponent for the distance attenuation.
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 propertyProjection
Gets or sets the projection.
Public propertyShape
Gets (or sets) the shape of the light volume.
(Inherited from Light.)
Public propertySpecularIntensity
Gets or sets the specular intensity of the light.
Public propertyTexture
Gets or sets the texture.
Top
Remarks

A projector light is similar to a Spotlight, but is usually used to project a texture. The light emitted is shaped like a view frustum and not like a cone. And the light does not have the typical "spotlight falloff".

A Projection defines the shape of the light. Usually, a PerspectiveProjection is used, but it is also possible to use a OrthographicProjection.

Projector lights have color, intensity, position, direction and range. The ProjectorLight object defines the light properties of a projector light positioned at the origin (0, 0, 0) that shines in forward direction (0, 0, -1) - see Forward. A LightNode needs to be created to position and orient a projector light within a 3D scene.

Color, DiffuseIntensity/SpecularIntensity, HdrScale, and the light distance attenuation factor (see GetDistanceAttenuation(Single, Single, Single)) 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 2D texture (see Texture) must be assigned to the projector light. If a texture is set, the light intensity is modulated with the texture to project the texture onto the lit surroundings. By default no texture is assigned. If no texture is set, the projector light does not emit any light.

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

See Also