Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
strikeblack91
Messages: 3
Enregistré le: 24 Juil 2019, 05:07

Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

par strikeblack91 » 24 Juil 2019, 05:42

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.

Image

Image

Image

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.

Image

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.

Image

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



GaBuZoMeu
Habitué(e)
Messages: 6019
Enregistré le: 05 Mai 2019, 10:07

Re: Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

par GaBuZoMeu » 24 Juil 2019, 08:00

Bonjour,

C'est loin d'être clair, ce que tu expliques.
Tu parles de rotation de la lampe, on ne sait pas quel est l'axe de rotation. On ne sait pas où est située la lampe, on ne sait pas le rapport entre l'orientation de la lampe et le tracé des rayons issus de son centre, etc.
Bref, tu joins à ton message pas mal de captures d'écran, mais elles n'expliquent rien, ou pas grand chose.
Essaie de formuler clairement ton algorithme pour tracer les 20 rayons. Si tu le fais de façon compréhensible, je pense que les trois quarts de ton problème seront déjà résolus.

Et le principe du forum, c'est de discuter les problèmes scientifiques sur le forum, pas en messages privés.

strikeblack91
Messages: 3
Enregistré le: 24 Juil 2019, 05:07

Re: Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

par strikeblack91 » 24 Juil 2019, 11:36

Bonjour

Je vais réexpliquer mon problème le plus simplement possible.

J'aimerai envoyer des rayons dans diverses direction afin de pouvoir former une croix. (voir photo ci-dessus).
Les rayons ont tous le même point de départs, qui ici est le milieu d'une lampe.

L'angle de cette dernière peut-être modifiée.

C'est en modifiant l'angle de la lampe que je me suis rendu compte que les calcules étaient mauvais car la croix attendu initialement n'étais pas la.

---------

Pour dessiner un vecteur il me faut un point d'origine (que j'ai déjà) et un point de fin.

Pour calculer le point de fin je fais:

direction initial de la lampe * distance + la direction.

A chaque fois que je dessine un rayon, j'effectue le calcule haut dessus.

Dans mon programme, j'ai une boucle qui va dessiner 4 rayon à chaque boucle. à la fin de celle-ci, je vais venir changer/incrémenter mon vecteur de direction.

EX:

1er rayon: le vecteur de direction serait égal à -> X = 5; Y = 0; Z = 0.
2e: X = 0; Y = 5; Z = 0.
3: X = -5; Y = 0; Z = 0.
4: X = 0; Y = -5; Z = 0.

Ensuite je change la valeur, je passe de 5 à 10 puis de 10 à 15 etc..

L'idée serait de trouver la formule mathématique qui me permettent de pouvoir dessiner mes rayons correctement en prenant en compte l'angle.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

par fatal_error » 24 Juil 2019, 11:48

slt,

L'angle de cette dernière peut-être modifiée.

sauf que ta lampe elle a pas qu'un seul axe de rotation.
elle peut tourner suivant z, suivant y ou suivant x.
donc parler de "l'angle" est insuffisant.

il faut dire que tu tournes ta lampes suivant x, ou y, ou z...
ensuite,

changer/incrémenter mon vecteur de direction

tu définis pas dans quel repère sont exprimés X,Y et Z.
evidemment si c'est ton repère de base, ca peut pas marcher.

il faut que X,Y et Z soient exprimés dans le repère associé à ta lampe.
ex:
si tu considères Z la profondeur. (0xy) ta lampe, avec x vers la droite et y le haut.
si tu tournes ta lampes suivant z, d'angle 45degré, ton "plus" devient une croix.
mais tu exprimes ta croix en faisant x=+-5 et y=+-5 avec x et y __exprimés__ dans le repère associé à ta lampe. (sinon, ben tu auras toujours un "plus" dessiné...)
la vie est une fête :)

GaBuZoMeu
Habitué(e)
Messages: 6019
Enregistré le: 05 Mai 2019, 10:07

Re: Calcules de vecteurs 3D / RayTracing sur Unreal Engine 4

par GaBuZoMeu » 24 Juil 2019, 15:01

Il y a plus que trois axes de rotation possibles, mais en tout cas il est indispensable de le préciser.
Après, il convient effectivement de travailler dans deux repères : le repère fixe et un repère attaché à la lampe qui tourne avec elle.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite