Bonjour
Je me présente, Arnaud, 20 ans, étudiant en informatique à Epitech.
Dans le cadre d'un stage de fin de première année, ma mission consiste à reproduire le comportement d'un capteur de lumière en utilisant le célèbre moteur 3D Unreal Engine.
Actuellement j'essaye de créer mon propre RayTracing, qui me permettra de simuler les rayons de lumières.
Le RayTracing consiste très simplement à envoyer des rayons (vecteurs) dans toutes les directions.
https://www.noelshack.com/2019-30-3-156 ... titre1.png
https://www.noelshack.com/2019-30-3-156 ... titre2.png
https://www.noelshack.com/2019-30-3-156 ... titre3.png
Pour résumer, j'envoie des rayon dans toutes les directions, le point de départ étant le milieu de la lampe.
(Pour corriger mon problème, j'ai décidé d'envoyer une 20n de rayons, qui forment une croix).
Mon problème est le suivant: En fonction de la rotation de la lampe, les rayons ne sont pas dessiner correctement.
https://www.noelshack.com/2019-30-3-156 ... titre4.png
On peux voir que sur un angle à 90d, les rayons ne vont pas former une croix, mais une ligne. J'ai vérifier en changeant quelques valeurs directement dans le programme, et il y a bien le même nombre de rayon, ils sont juste empilé les un sur les autres.
https://www.noelshack.com/2019-30-3-156 ... titre5.png
En changeant la valeur Z dans mes calcules de vecteurs, on peux voir qu'il y a bien 20 rayons.
Mes calcules sont assez simples :
Pour dessiner un rayons (vecteur), il me faut un point d'origine et un point de "fin/direction".
Le point d'origine étant toujours le même, pas de soucie. Néanmoins le point de fin n'est pas bon.
Mon calcules consiste à chaque nouveau rayon, de modifier le X et Y pour le point de fin. Concrètement, j'ajoute à chaque fois +5 au X et au Y ou -5 (pour former la croix).
Le Z n'est jamais changé et je ne prend pas en compte la rotation de l'objet ...
Merci d'avoir pris le temps de me lire, si besoin de plus d'information, n'hésitez pas à me contacter en dessous ou par e-mail : arnaud.roncaripro@gmail.com