KF-RAY Raytracer parallèle Projet long d’informatique KARIN AIT-SI-AMER FLORIAN DANG ELI 4 raytracer raytracer raytracer parallèle parallèle
KFray raytracer raytracer raytracer parallèle parallèle parallèle Préciser domaines d’applications : PIXAR Animation, Automobile, imagerie médicale Point commun entre les 3 images ? -> Raytracing
KFray Introduction Production d’images photos saisissantes de réalisme raytracer parallèle Introduction Production d’images photos saisissantes de réalisme De nombreux domaines d’application (films d’animation, design, infographie, milieu médical…) Algorithme gourmand en temps de calcul HYPRA REaliste
KFray Nécessité de paralléliser son exécution raytracer parallèle Nécessité de paralléliser son exécution Logiciels professionnels coûteux et d’une prise en main difficile Un logiciel libre dominant : POV-Ray. . Nous expliquerons pourquoi dans la suite de la présentation . Parallélisation : éxécuter sur plusieurs ordinateurs . POV Ray n’est pas très intuitif en terme d’interface, sa prise en main n’est pas évidente et il n’a pas été conçu pour effectuer des calculs en parallèle, bien qu’il existe un patch qui le fasse maintenant mais cela n’est pas intuitif
KFray Notre programme souhaite : raytracer parallèle Notre programme souhaite : Implémenter l’algorithme de raytracing pour générer des images 3D Etre très simple d’utilisation (incluant une interface graphique) Inclure du parallélisme Contrairement a POV Ray simplicité ! Conçu à la base poru être éxécuté en //
KFray Principe du raytracing Liste des features raytracer parallèle Principe du raytracing Liste des features Limites et perspectives
KFray A – Principe physique raytracer I. PRINCIPE DU RAYTRACING parallèle A – Principe physique I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet Mileux différents Rayon incident qui se décompose en ..
KFray A – Principe physique raytracer I. PRINCIPE DU RAYTRACING parallèle A – Principe physique I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet En réalité, le rayon lumineux part de la source de lumiere. On fait partir le rayon de lumineux de l’œil, rencontre des objets, est réfléchi… jusqu’à la source lumière
KFray B – Structure du programme Image au format ppm raytracer parallèle B – Structure du programme I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet Création de la scène Fichier de description de scène 3D Fonctionnement schématique de notre programme. Utilisatuer décrit la scène, dans un fichier texte avec une syntaxe particulière décrite dans le MANUEL D’UTILISATION. La scène est interprété par un parser généré par Lex et Yacc. Image au format ppm
KFray B – Structure du programme raytracer I. PRINCIPE DU RAYTRACING parallèle B – Structure du programme I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet GTK Illustre le fonctionnement du programme : fenetre 3D, chpoipx fichier, parallélisme, options…
KFray C – L’algorithme principal Pour chaque pixel de l’écran Faire raytracer parallèle C – L’algorithme principal I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet Pour chaque pixel de l’écran Faire définir le rayon primaire œil-pixel; Pour chaque objet Faire tester les intersections; prendre la plus proche; FinPour relancer des rayons vers les sources lumineuses; calculer l’éclairement du point d’intersection; affecter la couleur du pixel; Ne pas lire l’algo !!
KFray D – Gestion du projet Le choix du langage : C Subversion (SVN) raytracer parallèle D – Gestion du projet Le choix du langage : C Subversion (SVN) Doxygen I. PRINCIPE DU RAYTRACING A – Principe physique B – Structure du programme C – Algorithme principal D – Gestion du projet C : rapide, on connaît SVN : Gestion de versions de fichiers pratique pour un travail en equipe ! Doxygen de documente le code source -> explicite, utile pr notre GROS CODE, nimporte qui peut comprendre devant la complexité de l’implémentation de lalgo
KFray D – Gestion du projet raytracer Gantt Cahier charge spéci parallèle D – Gestion du projet Gantt Cahier charge spéci Il n’a pas été rigoureusement suivi Mais dans l’ensemble, Transition : fonctionnalités du programme
KFray A – Modèles d’éclairement Modèle de Lambert raytracer parallèle A – Modèles d’éclairement II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme . Parler des objets implémentés !! . Donner définition d’un modèle d’éclairement Modèle de Lambert
KFray A – Modèles d’éclairement Modèle de Phong raytracer parallèle A – Modèles d’éclairement II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Quête de réalisme Modèle de Phong
KFray A – Modèles d’éclairement Modèle de Blinn-Phong raytracer parallèle A – Modèles d’éclairement II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme . Parler des objets implémentés !! . Donner définition d’un modèle d’éclairement Modèle de Blinn-Phong
KFray B – Ombrage, réflexion et transparence raytracer parallèle B – Ombrage, réflexion et transparence II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Méthode de raytracing obtient ces effets facilement Décrire scène Description multiple Exemple de réflexion et d’ombrage
KFray B – Ombrage, réflexion et transparence Transparence raytracer parallèle B – Ombrage, réflexion et transparence II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Bulle de verre Damier derriere comment ?? Texture procédurale Transparence
KFray C – Texture & caméra Textures procédurales raytracer parallèle C – Texture & caméra II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme MOTIF qui se répète Choix Bruit de Perlin Textures procédurales
KFray C – Texture & caméra Bump mapping raytracer parallèle C – Texture & caméra II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme . Parler des objets implémentés !! . Donner définition d’un modèle d’éclairement Bump mapping
KFray C – Texture & caméra Caméra et perspective raytracer parallèle C – Texture & caméra II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Difficulté avec le damier Scène complète Caméra et perspective
KFray D – Parallélisme Découpage de l’image raytracer parallèle D – Parallélisme II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Ces images importantes demandent du temps On découpe modèle maître esclave Découpage de l’image
KFray D – Parallélisme Efficacité du parallélisme raytracer parallèle D – Parallélisme II. LISTE DES FEATURES A – Modèles d’éclairement B – Ombrage & réflexion & transparence C – Textures & caméra D – Parallélisme Rendement 6* Très rapide. A permit notamment à l’école de générer une animation que nous vous montrerons à la fin Transition : D’apres ce graphique, le programme n’est pas parfait notamment pour deux ordinateurs… Il y a bien d’autres améliorations possibles que va évoqué ma collègue Efficacité du parallélisme
KFray A – Priorités face au temps imparti Réfraction raytracer parallèle A – Priorités face au temps imparti Réfraction Textures images (environment mapping) Anti-aliasing III. LIMITES ET PERSPECTIVES A – Priorités face au temps imparti B – Améliorations du parallélisme C – Google Code Réfraction fonctionnalité qui demande du travail encore dessus (erreur) Facon naturelle : texture en images. Longue à implémenter … d’où le choix texture procédurale Bord crénelé, effet moiré damier.
KFray B – Améliorations du parallélisme Surcoût des communications raytracer parallèle B – Améliorations du parallélisme Surcoût des communications Faire travailler le maître Système « auto-régulé » III. LIMITES ET PERSPECTIVES A – Priorités face au temps imparti B – Améliorations du parallélisme C – Google Code Temps de communication entre les machines Il n’y a plus de maître esclave. On a une liste de tâche à faire : les processus se servent. (Quand un processus n’a plus de tâche à traiter dans sa file locale de travaux, il envoie de proche en proche un message de demande de travail. Work stealing (vol de tâche))
KFray C – Google Code Open Source sous licence GPL raytracer parallèle C – Google Code Open Source sous licence GPL Possibilité d’évolution III. LIMITES ET PERSPECTIVES A – Priorités face au temps imparti B – Améliorations du parallélisme C – Google Code Google souhaite fournir aux projets libres une structure adéquate. Pour nous outil formidable de travail, suivi, issues, wiki, svn, présentation du projet à la communauté internet…. GNU GPL : freeware Possibilité d’évolution ouverte à tt le monde
KFray Merci de votre attention raytracer parallèle Merci de votre attention . Parler des objets implémentés !! . Donner définition d’un modèle d’éclairement