You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SDL_INIT et les Quit pour eviter les fuites de mémoire.
7
+
Logging
8
+
Création d'une fenetre simple et initilaisation du renderer (dessins de points et de lignes)
9
+
Dans le main
10
+
11
+
12
+
01/04
13
+
14
+
création des objets vecteur 2d, 3d et matrice 2d 3d
15
+
16
+
Création de l'objet camera
17
+
18
+
Création de la méthode normalize3d qui renvoi un vect coll au vecteur passé mais normalizé
19
+
20
+
Création d'un générateur de vecteur qui forment la caméra avec pour le moment un vecteur par pixel sur un angle de vue (FOV) réglable (70° pour les tests)
21
+
22
+
Création pour le test d'un matrice de rotation sur Z pour faire bouger la caméra
23
+
Test concluant qui a mené a la crétion de la matrice de rotation de la caméra qui est une composition précise de 3 angle permtant d'orienter la caméra.
24
+
25
+
Création alors de la méthode RotatePointsEcran qui prend un ensemble de vecteur3d et leur applique les rotation sucessive : phi selon Z, theta selon x' et gamma selon y'' représentant phi : regard gauche droit theta regardhaut bas et gamma regard penché.
26
+
27
+
Test dans le main d'un bout de code permettant de tester le tracé des rayon. La scène ne présente qu'une sphère.
28
+
On obitent bien un sphère et un fond noir.
29
+
30
+
/--------------------------------/
31
+
L'idée est maintenant de creer un ensemble d'objet qui composeront une scène et d'être capable d'iterer sur l'ensemble des éléments de la scène. Peut etre instancier les objets de meme type pour leur attribuer une fonction de distance passé par adresse. Ensuite creer des methode pour le renderer afin de cast les rayons et iterer sur chaque éléments de la scène.
32
+
33
+
Note pourri : ont pourrais caster les rayons en damier et si un rayon (pas cast) est entourer de 4 rayon qui sont aller a une certaine distance (ou trop loin), prendre le minimum comme point de départ (ou ne pas le cast mais c'est moyen comme idée). On risque de perdre u détail lointain
34
+
35
+
Note importante : Le facteur d ne semble pas impacterle champ de vue ce qui n'est pas normal
36
+
37
+
On normalise les vecteurs de Rays generer pour l'écran
38
+
39
+
On améliore le test dans le main en réécrivant les paramètres plus proprement.
40
+
41
+
Note : Pour le raymarching on poura se passer de la première itération et la faire une fois pour touts les rayons puisqu'ils provienne au premier coup du même point.
42
+
43
+
Ajout de la fonction dot qui a deux vecteur passé renvoi le produit scalair usuel dans le repère x,y,zp
44
+
45
+
02/04
46
+
47
+
Implémentation de la fonction reflect grace à : https://asawicki.info/news_1301_reflect_and_refract_functions.html
48
+
Prenant un vect3d incident par adresse et un vect3d normal à la surface et modifie le vecteur incident en vect réflechit.
49
+
50
+
Introduction des fonctions sphereNormal et planXY normal permettant de faire des vect normaux sans estimateNormal
51
+
52
+
53
+
03/04
54
+
55
+
Essai d'implémentation de plusieurs technique de shadow, simple ou phong, aucune ne semble fonctionner correctement je pense a un problème sur l'évalutaion de la normale
56
+
57
+
Effectivement il s'agit bien de la donction normale qui ne marche pas le phong fonctionne bien sur les sphere mais il semble quand même avoir des strates visible dont je ne connais pas l'origine
58
+
59
+
j'ai ajouté un tableau global spheres qui pourrais techniquement dans le future contenir l'ensemble des sphères de la scéne.
60
+
61
+
Ajout des fonctions norme et fonction necessaires aux différentes implémentation des shadows.
62
+
63
+
06/04
64
+
65
+
Après un week-end où je n'ai pas pu avancer je me lance dans la conception de la fonction de rendering : raymarcheRay qui se vera passer un position et une direction et devra modifier la couleur passer en fonction de ce que le rayon percoit de la scène.
66
+
67
+
Premièrement on va essayer de déplacer ce qu'il y a dans le main dans cette fonction.
68
+
69
+
08/04
70
+
71
+
Le problème était dans le normalize3d on multipliait par le module au lieux de diviser
72
+
73
+
Il en résult que le phong ne marche plus
74
+
75
+
Une implémentation plus simple semble marcher mais le test en animation sur une obucle for semble ridiculement lent en terme de fps. Sans delay le temps entre frames on était proche du 4 fps avec une unique sphère dans la scène.
76
+
77
+
On envosagera l'utilisation de threads on testera avec 16 thread grace au module pthread puisque'il semble impossible d'utiliser le GPU sans openGL ou Cuda.
0 commit comments