public abstract class SAbstractShader extends java.lang.Object implements SShader
Modifier and Type | Field and Description |
---|---|
static int |
BLINN_SPECULAR_REFLEXION |
static int |
NO_LIGHT |
static int |
NO_SPECULAR_REFLEXION |
static int |
PHONG_SPECULAR_REFLEXION |
static java.lang.String[] |
REFLEXION_ALGORITHM |
Constructor and Description |
---|
SAbstractShader(SGeometrySpace geometry_space,
double t_max,
java.util.List<SLight> light_list)
Constructeur d'une shader abstrait avec le modèle de réflexion de Blinn.
|
SAbstractShader(SGeometrySpace geometry_space,
double t_max,
java.util.List<SLight> light_list,
int reflexion_algo)
Constructeur d'une shader abstrait.
|
Modifier and Type | Method and Description |
---|---|
double |
evaluateRefractiveIndex(SVector3d position)
Méthode pour évaluer l'indice de réfraction associé à un point de l'espace.
|
public static final java.lang.String[] REFLEXION_ALGORITHM
public static final int NO_LIGHT
public static final int NO_SPECULAR_REFLEXION
public static final int PHONG_SPECULAR_REFLEXION
public static final int BLINN_SPECULAR_REFLEXION
public SAbstractShader(SGeometrySpace geometry_space, double t_max, java.util.List<SLight> light_list)
geometry_space
- - L'espace des géométries.t_max
- - Temps de déplacement maximal d'un rayon.light_list
- - La liste des sources de lumières.public SAbstractShader(SGeometrySpace geometry_space, double t_max, java.util.List<SLight> light_list, int reflexion_algo) throws SConstructorException
geometry_space
- - L'espace des géométries.t_max
- - Temps de déplacement maximal d'un rayon.light_list
- - La liste des sources de lumières.reflexion_algo
- - Le type d'algorithme pour réaliser le calcul de l'illumination.SConstructorException
- Si la valeur de t_max est inférieur à une valeur de seuil.SConstructorException
- Si le type d'algorithme de réflexion spéculaire n'est pas reconnu.NO_SPECULAR_REFLEXION
,
PHONG_SPECULAR_REFLEXION
,
BLINN_SPECULAR_REFLEXION
public double evaluateRefractiveIndex(SVector3d position)
SShader
1) Si la position est située à la frontière d'une géométrie (sur la surface), elle sera considérée comme à l'extérieure de la géométrie et l'indice n = 1.0 sera affecté.
2) Si la position est située dans une géométrie, il faudra obtenir son indice de réfraction n s'il possède une primitive comme parent, sinon n = 1.0 sera affecté.
3) Si la position est située dans plusieurs géométrie, NOUS AVONS PRÉSENTEMENT UN PROBLÈME !!! qui devra être résolu dans le futur.
evaluateRefractiveIndex
in interface SShader
position
- - La position dans l'espace des géométries.