public abstract class SAbstractAttenuatedLight extends SAbstractLight implements SAttenuatedLight
AMBIENT_LIGHT_CODE, APERTURE_MASK_LIGHT_CODE, DIRECTIONAL_LIGHT_CODE, ELLIPTICAL_APERTURE_LIGHT_CODE, LINEAR_APERTURE_LIGHT_CODE, POINT_LIGHT_CODE, RECTANGULAR_APERTURE_LIGHT_CODE
Constructor and Description |
---|
SAbstractAttenuatedLight()
Constructeur d'une source de lumière blanche sans facteur d'atténuation positionné à l'origine.
|
SAbstractAttenuatedLight(SColor color,
SVector3d position)
Constucteur d'une source de lumière avec une couleur particulière sans facteur d'atténuation.
|
SAbstractAttenuatedLight(SColor color,
SVector3d position,
double amp,
double cst_att,
double lin_att,
double quad_att)
Constructeur d'une source de lumière.
|
Modifier and Type | Method and Description |
---|---|
double |
amplification()
Méthode pour obtenir le facteur d'amplification de la source de lumière.
|
double |
attenuation(SVector3d position_to_illuminate)
Méthode pour obtenir le facteur d'atténuation A qui dépend de la distance d
entre le point à éclairer et la source de lumière.
|
SVector3d |
getOrientation(SVector3d position_to_illuminate)
Méthode pour obtenir l'orientation de la source de lumière en fonction de la position du point à illuminer.
|
SVector3d |
getPosition()
Méthode pour obtenir la position de la source de lumière.
|
java.lang.String[] |
getReadableParameterName()
Méthode pour obtenir un tableau des mots clés permettant de définir les paramètres de l'objet implémentant l'interface SReadable lors de sa lecture.
|
getColor
write
read
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getCodeName, getColor
write
getReadableName
public SAbstractAttenuatedLight()
public SAbstractAttenuatedLight(SColor color, SVector3d position)
color
- La couleur de la source de lumière.public SAbstractAttenuatedLight(SColor color, SVector3d position, double amp, double cst_att, double lin_att, double quad_att) throws SConstructorException
color
- La couleur de la source de lumière.position
- La positon de la source de lumière.amp
- Le facteur d'amplification de la source de lumière.cst_att
- La constante d'atténuation à taux constant.lin_att
- La constante d'atténuation à taux linéaire.quad_att
- La constante d'atténuation à taux quadratique.SConstructorException
- Si des facteurs d'atténuation sont initialisés avec des valeurs erronées.public SVector3d getPosition()
SAttenuatedLight
getPosition
in interface SAttenuatedLight
public double attenuation(SVector3d position_to_illuminate) throws SRuntimeException
SAttenuatedLight
Méthode pour obtenir le facteur d'atténuation A qui dépend de la distance d entre le point à éclairer et la source de lumière. La formule utilisée est
Cependant, si la distance d est inférieure à 1, le facteur d'atténuation A peut être supérieur à 1.0 (A > 1) ce qui donnera une intensité accrue à la couleur de la source de lumière. Le choix de normalisation de la couleur devra être judicieusement afin de créer l'effet visuel désiré.
attenuation
in interface SAttenuatedLight
position_to_illuminate
- - La position à éclairer.SRuntimeException
- Si le facteur d'atténuation A tend vers l'infini (dénominateur étant égal à zéro).public double amplification()
SAttenuatedLight
Méthode pour obtenir le facteur d'amplification de la source de lumière. Cependant, une couleur amplifiée peut faire excéder un canal de couleur au-delà de 1.0. Dans cette situation, il sera important de bien choisir l'algorithme de normalisation des couleurs afin d'obtenir le résultat désiré .
En utilisant cette option dans un shader, cela permet d'attribuer plus d'importance à une source de lumière.
amplification
in interface SAttenuatedLight
SColor
public SVector3d getOrientation(SVector3d position_to_illuminate) throws SRuntimeException
SAttenuatedLight
getOrientation
in interface SAttenuatedLight
position_to_illuminate
- - La position à illuminerSRuntimeException
- Si la position à illuminer est située sur la source de lumière.public java.lang.String[] getReadableParameterName()
SReadable
getReadableParameterName
in interface SReadable
getReadableParameterName
in class SAbstractLight