Exemplo n.º 1
0
/*******
 Fonction à écrire par les etudiants
 ******/
Color compute_direct_lighting (Ray ray_, Isect isect_) {
/**
 * \todo : compute here direct lighting
 *
 * Le rôle de la fonction compute_direct_lighting() est de calculer la somme, pour chaque source de lumière de la scène, de l'éclairage
 * élémentaire dû à cette source. Cette somme est calculée en ajoutant à une couleur noire (triplet \b RGB [0, 0, 0], élément neutre de 
 * l'addition des couleurs), la valeur de l'éclairage direct lié à chaque source de la scène. La fonction compute_direct_lighting()
 * utilise pour cela les fonctions des modules \ref SceneAPI (pour accéder à l'ensemble des sources lumineuses de la scène), 
 * \ref RayAPI (pour calculer la visibilité entre un point et une source de lumière) et \ref LightAPI (pour calculer l'éclairage direct).
 */
    Color l;
    int i, isVisi;
    Light* light_;

    l = init_color (0.f, 0.f, 0.f);
    
    for (i=0; i<nb_lights(); i++){
      light_ = get_light(i);
      isVisi =  test_visibility ( isect_, light_);
      if (isVisi!=0){
		l = l+direct_lighting (ray_, isect_, light_);
      }
    }

    return l;
}
Exemplo n.º 2
0
int main()
{
    MaRC::ViewingGeometry vg(body);

    return
        test_initialization(vg)
        && test_visibility(vg)
        && test_conversion(vg)
        ? 0 : -1;
}