Class SpotLight


public class SpotLight extends PointLight
The SpotLight object specifies an attenuated light source at a fixed point in space that radiates light in a specified direction from the light source. A SpotLight has the same attributes as a PointLight node, with the addition of the following:

  • Direction - The axis of the cone of light. The default direction is (0.0, 0.0, -1.0). The spot light direction is significant only when the spread angle is not PI radians (which it is by default).
  • Spread angle - The angle in radians between the direction axis and a ray along the edge of the cone. Note that the angle of the cone at the apex is then twice this value. The range of values is [0.0,PI/2] radians, with a special value of PI radians. Values lower than 0 are clamped to 0 and values over PI/2 are clamped to PI. The default spread angle is PI radians.
  • Concentration - Specifies how quickly the light intensity attenuates as a function of the angle of radiation as measured from the direction of radiation. The light's intensity is highest at the center of the cone and is attenuated toward the edges of the cone by the cosine of the angle between the direction of the light and the direction from the light to the object being lit, raised to the power of the spot concentration exponent. The higher the concentration value, the more focused the light source. The range of values is [0.0,128.0]. The default concentration is 0.0, which provides uniform light distribution.
A spot light contributes to diffuse and specular reflections, which depend on the orientation and position of an object's surface. A spot light does not contribute to ambient reflections.
  • Field Details

    • ALLOW_SPREAD_ANGLE_WRITE

      public static final int ALLOW_SPREAD_ANGLE_WRITE
      Specifies that the Node allows writing to its spot lights spread angle information.
      See Also:
    • ALLOW_SPREAD_ANGLE_READ

      public static final int ALLOW_SPREAD_ANGLE_READ
      Specifies that the Node allows reading its spot lights spread angle information.
      See Also:
    • ALLOW_CONCENTRATION_WRITE

      public static final int ALLOW_CONCENTRATION_WRITE
      Specifies that the Node allows writing to its spot lights concentration information.
      See Also:
    • ALLOW_CONCENTRATION_READ

      public static final int ALLOW_CONCENTRATION_READ
      Specifies that the Node allows reading its spot lights concentration information.
      See Also:
    • ALLOW_DIRECTION_WRITE

      public static final int ALLOW_DIRECTION_WRITE
      Specifies that the Node allows writing to its spot lights direction information.
      See Also:
    • ALLOW_DIRECTION_READ

      public static final int ALLOW_DIRECTION_READ
      Specifies that the Node allows reading its spot lights direction information.
      See Also:
  • Constructor Details

    • SpotLight

      public SpotLight()
      Constructs a SpotLight node with default parameters. The default values are as follows:
        direction : (0,0,-1)
        spread angle : PI radians
        concentration : 0.0
    • SpotLight

      public SpotLight(javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.Vector3f direction, float spreadAngle, float concentration)
      Constructs and initializes a SpotLight node using the specified parameters.
      Parameters:
      color - the color of the light source
      position - the position of the light in three-space
      attenuation - the attenuation (constant, linear, quadratic) of the light
      direction - the direction of the light
      spreadAngle - the spread angle of the light
      concentration - the concentration of the light
    • SpotLight

      public SpotLight(boolean lightOn, javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.Vector3f direction, float spreadAngle, float concentration)
      Constructs and initializes a SpotLight node using the specified parameters.
      Parameters:
      lightOn - flag indicating whether this light is on or off
      color - the color of the light source
      position - the position of the light in three-space
      attenuation - the attenuation (constant, linear, quadratic) of the light
      direction - the direction of the light
      spreadAngle - the spread angle of the light
      concentration - the concentration of the light
  • Method Details

    • setSpreadAngle

      public void setSpreadAngle(float spreadAngle)
      Sets spot light spread angle.
      Parameters:
      spreadAngle - the new spread angle for spot light
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph.
    • getSpreadAngle

      public float getSpreadAngle()
      Gets spot light spread angle.
      Returns:
      the new spread angle for spot light. The value returned is the clamped value.
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • setConcentration

      public void setConcentration(float concentration)
      Sets spot light concentration.
      Parameters:
      concentration - the new concentration for spot light
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • getConcentration

      public float getConcentration()
      Gets spot light concentration.
      Returns:
      the new concentration for spot light
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • setDirection

      public void setDirection(float x, float y, float z)
      Sets light direction.
      Parameters:
      x - the new X direction
      y - the new Y direction
      z - the new Z direction
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • setDirection

      public void setDirection(javax.vecmath.Vector3f direction)
      Sets this Light's current direction and places it in the parameter specified.
      Parameters:
      direction - the vector that will receive this node's direction
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • getDirection

      public void getDirection(javax.vecmath.Vector3f direction)
      Gets this Light's current direction and places it in the parameter specified.
      Parameters:
      direction - the vector that will receive this node's direction
      Throws:
      CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
    • cloneNode

      public Node cloneNode(boolean forceDuplicate)
      Used to create a new instance of the node. This routine is called by cloneTree to duplicate the current node.
      Overrides:
      cloneNode in class PointLight
      Parameters:
      forceDuplicate - when set to true, causes the duplicateOnCloneTree flag to be ignored. When false, the value of each node's duplicateOnCloneTree variable determines whether NodeComponent data is duplicated or copied.
      See Also: