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 Detail

      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • ALLOW_CONCENTRATION_WRITE

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

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

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

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

      • 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 Detail

      • 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