Rapport décrivant les principes de base du lancer de rayon. Présentation des algorihtmes des différentes phases (calculs d'intersection, calcul de lumière...) ainsi que des améliorations mises en place pour accélérer le lancer de rayon. Rapport réalisé en Master 2.
[...] Pour calculer cette liste, on calcule l'intersection du rayon avec les boites que l'on veut classer. Il semblerait qu'il existe une méthode rapide qui permettent de classer les boite en utilisant les valeurs du vecteur directeur du rayon. Par exemple si un rayon est orienté nord ouest (cas en 2D) il faut examiner les boites de droite à gauche et de bas en haut. Ainsi on obtient directement une liste classée. Cette méthode n'a pu être étudiée complètement et implémentée par manque de temps. [...]
[...] //méthodes de la classe BSPGenericNode classe mère pour créer un arbre BSP, qui ne possède qu'un attribut de type BSPGenericNode class BSPTree{ public: BSPGenericNode * racine; //pointeur sur la racine Pile_Triangle * objets; //pointeur sur la liste de triangles initiale int total_nb_objets; void construction(Pile_Triangle * p,int //pour construire l'arbre BSP initial bool calcul_intersection(rayon ray,triangle*& ind_tri,point3d& pt_intersection); //permet de calculer une intersection d'un rayon avec l'arbreBSP. Renvoit le point d'intersection ainsi qu'un pointeur sur l'objet intersecté void Afficher(); ->Une classe Liste_BSPGenericNode permettant de gérer une liste de boite en fonction de la valeur de t lors de l'intersection avec un rayon. Cette classe possède les fonctions d'ajout et de retrait classiques mais suffisantes pour ce que l'on veut. [...]
[...] En effet plus la taille de la fenêtre est grande, plus de rayons sont envoyés. On obtient donc le schéma suivant : On peut voir que le temps de calcul est directement lié au nombre de rayons lancés et donc à la taille de la fenêtre ce qui semble tout à fait logique. Une autre étude intéressante est de voir l'impact de l'Arbre BSP sur le temps de calcul, en effet si l'on modifie les conditions d'arrêt de division de Arbre BSP, on obtient plus où moins de boites dans Arbre BSP. [...]
[...] En effet la scène n'est composée que de triangles qui forment un terrain ou une pièce (à partir d'un fichier texte). Il serait cependant intéressant de pouvoir créer des objets comme des sphères, cubes, cylindres ou autres primitives de ce type. En gérant une liste d'objet, on pourrait attribuer des coefficients différents et on pourrait obtenir des surfaces différentes selon les objets (par exemple une sphère réfléchissante, un cube très peu réfléchissant, Pour l'instant on attribue les mêmes paramètres à tous les objets de la scène compris les paramètres concernant l'éclairement : coefficient diffus et spéculaire) ce qui n'est pas très réaliste. [...]
[...] Si l'angle se rapproche de alors l'intensité devient maximale. Si l'angle est supérieur à , l'éclairement due à cette source devient nulle car la source lumineuse se trouve de l'autre coté de l'objet par rapport à l'observateur). L'équation due à la réflexion diffuse est donc : avec . > 0 Avec Is l'intensité de la source lumineuse et krd le coefficient de réflexion diffuse qui est caractéristique de l'objet et qui varie entre 0 et 1. Comme et sont normalisés, on peut utilisé directement un cosinus qui permet d'obtenir l'angle entre et . [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture