/******* 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; }
int main() { MaRC::ViewingGeometry vg(body); return test_initialization(vg) && test_visibility(vg) && test_conversion(vg) ? 0 : -1; }