Posté le 03/11/2019 11:14
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 199 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 03/11/2019 11:17 | # | Fichier joint
pour l'image !
Dijkstra - The Witcher
Citer : Posté le 03/11/2019 11:28 | #
Comment du définit la sphère dans le code ?
... c'est hard comme code, il y à des bouts qui ressemblent à des fonctions polynomes du 2nd degré.. Je suis curieux de savoir comment ce programme fonctionne..
Ajouté le 03/11/2019 à 11:33 :
@Mactul: Lis le code du programme "PIXEL" et tu verras que c'est quatre pixels par rayon
-Planétarium 2
Citer : Posté le 03/11/2019 11:36 | #
Pour répondre à ta question, il suffit de faire une équation de sphère du type :
Soit O(a,b,c) le centre d'une sphère de rayon r :
r² = (x - a)² + (y - b)² + (z - c)²
C'est d'une simplicité à tirer les larmes, car la difficulté n'est pas tant dans la création d'une scène !
Dijkstra - The Witcher
Citer : Posté le 03/11/2019 11:43 | #
Peut-être mais comprendre le programme passe par là. Donc je suppose que tu teste si chaque rayon touche la sphère en exploitant la formule.. je ne m'y connait pas trop, cette équation donne quoi comme résultat ?
-Planétarium 2
Citer : Posté le 03/11/2019 12:15 | #
Wow, joli ! Tu penses que c'est optimisable pour se rapprocher du temps réel ? :o
Citer : Posté le 03/11/2019 12:28 | #
Voir se déplacer autour
-Planétarium 2
Citer : Posté le 03/11/2019 12:40 | #
pour continuer sur la sphère, l'équation permet de savoir si un point appartient ou non à la sphère. Et c'est tout ce dont on a besoin !
@Lephenixnoir et @Disperseur :
En C, il faudrait essayer ! Pour le savoir, il faudrait un petit ratio de puissance ou reprogrammer le raytracer. par contre, en C.Basic, c'est mort...
Dijkstra - The Witcher
Citer : Posté le 03/11/2019 13:09 | #
Je suppose que le plus crucial serait de calculer en précision fixe pour gagner le max de temps. Hmm, je serais curieux de voir, vraiment...
Citer : Posté le 03/11/2019 13:54 | #
@Lightmare
This is a very interesting project.
I think it is difficult to increase the speed when using floating point in the calculator.
As Lephenixnoir says, it is best to calculate with fixed precision.
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Citer : Posté le 03/11/2019 15:34 | #
J'ai chronométré, 4:22 pour calculer le rendu sans overclock, 2:37 avec.
C'est rapide et sympa à regarder
Citer : Posté le 04/11/2019 07:30 | # | Fichier joint
I found the original TI-Basic source.
https://www.youtube.com/watch?v=todarS6XTPc
The processing time for TI84+CE is about 24 minutes.
In C.Basic version, there is considerable VRAM transfer overhead.
_DispVram. // delete
and
...
...
Prog "PIXEL"
Next
_DispVram
Next
'StoCapt 1
'RclCapt 1
This change will make it 6 times faster.
StoCapt does not work well in the current version, so please delete it.
and,
The Int function in TI-Basic is the Intg function in Basic Casio.
This is the above version + full screen drawing.
https://pm.matrix.jp/CB/RAYTRACE2.zip
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Citer : Posté le 06/11/2019 08:24 | #
@Sentaro21 : I didn't knew that _DispVRAM command would use so much power ! Now i'm sure it's possible to make a real-time raytracer in C / C++. But to make an entire raytracer requires some knowledge that i don't have yet...
Dijkstra - The Witcher
Citer : Posté le 06/11/2019 12:27 | #
Perso j'ai réussit a faire quelque chose en raycasting en C avec pas beaucoup de connaissances n'empêche qu'il est mrobablement hardcodé
-Planétarium 2
Citer : Posté le 06/11/2019 16:33 | #
@Disperseur : en effet, le raycasting exploite le lancer de rayon, mais le raytracing exige des connaissances en géométrie spatiale bien au delà du programme de Terminale S ( genre collisions entre une droite et une sphère, calculs de réfraction...). Et puis, ton moteur n'est pas si hardcodé : on peut modifier la map juste en changeant une matrice ! Alors que mon raytracer actuel, il faudrait changer tout le programme pour changer la scène.
Dijkstra - The Witcher
Citer : Posté le 06/11/2019 17:35 | #
N'empêche que si on veut une grande scene ça fait très vite beaucoup de 0.. j'avais pensé a faire une liste non pas de la map mais contenant les elements a afficher vu qu'il y a plus de 0 que de 1 dans la matrice actuelle. D'ailleurs je ne comprends pas tellement pourquoi mon lancer de rayons est si lent même en C...
Ajouté le 06/11/2019 à 17:37 :
Et en plus je ne sais pas ce que je fais ici en ce moment vu que demain c un bac blanc de français
-Planétarium 2
Citer : Posté le 06/11/2019 17:38 | #
Pour éviter ce problème de vide lié au fait que toutes les zones ne sont pas denses, il y a les quadtrees ! Comme dans Doom !