Package javax.media.j3d
Class PointLight
java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Leaf
javax.media.j3d.Light
javax.media.j3d.PointLight
- Direct Known Subclasses:
SpotLight
The PointLight object specifies an attenuated light source at a
fixed point in space that radiates light equally in all directions
away from the light source. PointLight has the same attributes as
a Light node, with the addition of location and attenuation
parameters.
A point light contributes to diffuse and specular reflections, which in turn depend on the orientation and position of a surface. A point light does not contribute to ambient reflections.
A PointLight is attenuated by multiplying the contribution of the light by an attenuation factor. The attenuation factor causes the the PointLight's brightness to decrease as distance from the light source increases. A PointLight's attenuation factor contains three values:
- Constant attenuation
- Linear attenuation
- Quadratic attenuation
A PointLight is attenuated by the reciprocal of the sum of:
-
The constant attenuation factor
The Linear attenuation factor times the distance between the light and the vertex being illuminated
The quadratic attenuation factor times the square of the distance between the light and the vertex
By default, the constant attenuation value is 1 and the other two values are 0, resulting in no attenuation.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Specifies that this PointLight node allows reading its attenuation information.static final int
Specifies that this PointLight node allows writing its attenuation information.static final int
Specifies that this PointLight node allows reading its position information.static final int
Specifies that this PointLight node allows writing its position information.Fields inherited from class javax.media.j3d.Light
ALLOW_COLOR_READ, ALLOW_COLOR_WRITE, ALLOW_INFLUENCING_BOUNDS_READ, ALLOW_INFLUENCING_BOUNDS_WRITE, ALLOW_SCOPE_READ, ALLOW_SCOPE_WRITE, ALLOW_STATE_READ, ALLOW_STATE_WRITE
Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a PointLight node with default parameters.PointLight
(boolean lightOn, javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation) Constructs and initializes a point light.PointLight
(javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation) Constructs and initializes a point light. -
Method Summary
Modifier and TypeMethodDescriptioncloneNode
(boolean forceDuplicate) Used to create a new instance of the node.void
getAttenuation
(javax.vecmath.Point3f attenuation) Gets this Light's current attenuation values and places it in the parameter specified.void
getPosition
(javax.vecmath.Point3f position) Gets this Light's current position and places it in the parameter specified.void
setAttenuation
(float constant, float linear, float quadratic) Sets this Light's current attenuation values and places it in the parameter specified.void
setAttenuation
(javax.vecmath.Point3f attenuation) Sets this Light's current attenuation values and places it in the parameter specified.void
setPosition
(float x, float y, float z) Set light position.void
setPosition
(javax.vecmath.Point3f position) Set light position.Methods inherited from class javax.media.j3d.Light
addScope, getAllScopes, getColor, getEnable, getInfluencingBoundingLeaf, getInfluencingBounds, getScope, indexOfScope, insertScope, numScopes, removeAllScopes, removeScope, removeScope, setColor, setEnable, setInfluencingBoundingLeaf, setInfluencingBounds, setScope, updateNodeReferences
Methods inherited from class javax.media.j3d.Node
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
-
Field Details
-
ALLOW_POSITION_READ
public static final int ALLOW_POSITION_READSpecifies that this PointLight node allows reading its position information.- See Also:
-
ALLOW_POSITION_WRITE
public static final int ALLOW_POSITION_WRITESpecifies that this PointLight node allows writing its position information.- See Also:
-
ALLOW_ATTENUATION_READ
public static final int ALLOW_ATTENUATION_READSpecifies that this PointLight node allows reading its attenuation information.- See Also:
-
ALLOW_ATTENUATION_WRITE
public static final int ALLOW_ATTENUATION_WRITESpecifies that this PointLight node allows writing its attenuation information.- See Also:
-
-
Constructor Details
-
PointLight
public PointLight()Constructs a PointLight node with default parameters. The default values are as follows:-
position : (0,0,0)
attenuation : (1,0,0)
-
PointLight
public PointLight(javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation) Constructs and initializes a point light.- Parameters:
color
- the color of the light sourceposition
- the position of the light in three-spaceattenuation
- the attenutation (constant, linear, quadratic) of the light
-
PointLight
public PointLight(boolean lightOn, javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation) Constructs and initializes a point light.- Parameters:
lightOn
- flag indicating whether this light is on or offcolor
- the color of the light sourceposition
- the position of the light in three-spaceattenuation
- the attenuation (constant, linear, quadratic) of the light
-
-
Method Details
-
setPosition
public void setPosition(javax.vecmath.Point3f position) Set light position.- Parameters:
position
- the new position- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setPosition
public void setPosition(float x, float y, float z) Set light position.- Parameters:
x
- the new X positiony
- the new Y positionz
- the new Z position- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getPosition
public void getPosition(javax.vecmath.Point3f position) Gets this Light's current position and places it in the parameter specified.- Parameters:
position
- the vector that will receive this node's position- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setAttenuation
public void setAttenuation(javax.vecmath.Point3f attenuation) Sets this Light's current attenuation values and places it in the parameter specified.- Parameters:
attenuation
- the vector that will receive the attenuation values- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setAttenuation
public void setAttenuation(float constant, float linear, float quadratic) Sets this Light's current attenuation values and places it in the parameter specified.- Parameters:
constant
- the light's constant attenuationlinear
- the light's linear attenuationquadratic
- the light's quadratic attenuation- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getAttenuation
public void getAttenuation(javax.vecmath.Point3f attenuation) Gets this Light's current attenuation values and places it in the parameter specified.- Parameters:
attenuation
- the vector that will receive the attenuation values- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
cloneNode
Used to create a new instance of the node. This routine is called bycloneTree
to duplicate the current node.
-