Page 2 sur 2

Re: Un petit RayTracing

Publié : jeu. 05/avr./2018 12:00
par G-Rom
j'ai pas fait gaffe.
par contre ligne 230 tu as une coquille sur un couple xyz, mais ca ne regle pas ton probleme.
comme le code en C est "macroïsé" a mort , par exemple
p=S(v(17,16,8)+t,!(t*-1+(a*(R()+x)+b*(y+R())+c)*16))*3.5+p;
correspond a quelques dixaine de lignes de code pb, est tu sur de l'ordre des opérations sur toute les macros ?

Re: Un petit RayTracing

Publié : jeu. 05/avr./2018 12:20
par G-Rom
j'ai aussi compilé le code en C avec g++, l'image ppm est la bonne , il me faut sur mon I7 ~50 sec, sachant que ton premier code me prends 350ms , ceux qui ont 30 sec de rendu sur ton adaptation démontre surement le problème cité plus haut, l'ordre des calculs ne doit pas être bon.


edit:

8 secondes avec l'option -03... 8O donc, ignore ce topic.

Re: Un petit RayTracing

Publié : jeu. 05/avr./2018 12:45
par G-Rom
aussi, ce genre de boucle :
for(int k=9; k--;)


En C cela va de 8 a 0 , pas de 9 a 1 comme ton code en PB.

Re: Un petit RayTracing

Publié : jeu. 05/avr./2018 20:38
par comtois
G-Rom a écrit :es tu sur de l'ordre des opérations sur toute les macros ?
J'ai aussi un doute là dessus. Mais comme tu le dis c'est tellement compacté que c'est pas facile de faire le tri.

J'ai changé le calcul de a et b dans la fonction main() , je multiplie par 0.002 après avoir normalisé le vecteur.

J'ai forcé la couleur de fond à 255 au lieu de 13 (ligne 233) et là je vois enfin quelque chose se tracer !!

Ce n'est pas centré, mais les lettres 'aek' apparaissent bien, donc le tableau G() est correctement lu et tracé.

Reste à trouver où est le problème sur la couleur et pourquoi les lettres ne sont pas centrées

J'ai mis le code à jour.
http://www.purebasic.fr/french/viewtopi ... 4&start=11