Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Vous cherchez une fonction ?
Jeux >> Graph 90+E >> Divers >> Raytracing
Raytracing
Version : 1.0 Taille : 13000 octets Ajouté le : 2020-04-10 09:50 Modifié le : 2020-04-10 13:28
Auteur et posteur :
LightmareHors ligneMembre de CreativeCalcPoints: 663 Défis: 0 Message
Planète Casio - Jeu Casio - Raytracing - Lightmare - Calculatrices
Nombre de visites sur cette page : 3376
Score au progrank : 28
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
390 téléchargements | Soumettre un test


Description :

ATTENTION : ce programme nécessite la mise à jour de la Graph 90 vers la version 3.40 !

C'est un programme de raytracing en python utilisant directement la bibliothèque graphique casioplot. Le programme peut encore beaucoup gagner en vitesse et en lisibilité, ce que je suis en train de faire sur mon pc !
Cependant il est possible de changer la scène assez facilement en changeant les coordonnées des objets (il y a un plan, une sphère, une caméra et une source lumineuse), mais on ne peut pas encore rajouter d'objets.

-> le dernier paramètre de la sphère permet de décider de si elle sera un miroir ou non :


image par Mactul

mises à jours
Cliquer pour enrouler

1.1 : on peut switcher au lancement du programme depuis la calculatrice pour choisir si la sphère sera un miroir ou non


Commentaires :

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

TituyaHors ligneRédacteurPoints: 2005 Défis: 16 Message
Posté le 11-04-2020 à 12:51 | #
Et alors niveau performance ?
CritorHors ligneAdministrateurPoints: 2332 Défis: 18 Message
Posté le 11-04-2020 à 12:53 | #
Sans doute nettement mieux selon les tests déjà effectués dans mon premier article.

Mais il faut que je prenne le temps de retester ce script avec le même nombre, vu que les écrans sont différents.
LightmareHors ligneMembre de CreativeCalcPoints: 663 Défis: 0 Message
Posté le 11-04-2020 à 13:47 | #
@Critor : c'est impressionnant ! tu peux poster le code afin que je puisse voir comment tu as fait ?
CritorHors ligneAdministrateurPoints: 2332 Défis: 18 Message
Posté le 11-04-2020 à 13:56 | # | Fichier joint
Oui, bien sûr.

En gros des factorisations de duplications de code, avec une bonne dose de sucre syntaxique Python.

L'utilisation du heap ne dépasse maintenant plus les 32K, et donc ça passe sur NumWorks.

Par contre le défi maintenant, c'est d'arriver à faire pareil avec un heap de 18K (TI-83 Premium CE Edition Python).
CritorHors ligneAdministrateurPoints: 2332 Défis: 18 Message
Posté le 11-04-2020 à 15:22 | # | Fichier joint
Ce n'est pas la taille qui compte, mais ça donne une idée :
- le script initial qui ne passait pas avec les heap de 32K et moins faisait 14K
- la version optimisée que je viens de partager pour les heap de 32K faisait 7K

Voici maintenant ci-joint la version ultime en seulement 4,5K.

Malheureusement, malgré ces efforts de compression surhumains (j'y suis depuis hier soir), ça ne passe toujours pas avec le heap de 18K de la TI-83 Premium CE Edition Python.
CritorHors ligneAdministrateurPoints: 2332 Défis: 18 Message
Posté le 11-04-2020 à 17:10 | # | Fichier joint
Puisque maintenant on a beaucoup de place en heap sur les modèles où ça marche, voici une version avec des menus bilingues anglais-français, et qui permet même de spécifier si l'on veut rafraîchir à chaque pixel, chaque ligne ou à la fin.

Intègre une détection des dimensions maximales de la zone affichable, et les précise lors de l'input en question.

Intègre une couche de compatibilité graphique Casio/NumWorks/TI, qui pourra nous resservir pour un concours de rentrée au autre.
Math680Hors ligneMembrePoints: 455 Défis: 5 Message
Posté le 22-04-2020 à 14:36 | #
J'ai l'erreur can't convert flot to int ligne 255, quand je met hauteur : 196 largeur : 384 et que je n'active pas le miroir (avec le miroir ça marche), tu sais pourquoi ?

EDIT :
ça me fait pareil en carré (196, 196) et cela se produit toujours juste avant de passer la moitié de la sphère bleue
LightmareHors ligneMembre de CreativeCalcPoints: 663 Défis: 0 Message
Posté le 22-04-2020 à 14:41 | #
Le truc, c'est qu'il n'y a pas de ligne 255 dans le programme
Je n'ai jamais eu ce problème, tu peux essayer avec d'autres résolutions ?
LephenixnoirHors ligneAdministrateurPoints: 22874 Défis: 149 Message
Posté le 22-04-2020 à 14:41 | #
Ça peut arriver si tu envoies une position flottante à set_pixel().
LightmareHors ligneMembre de CreativeCalcPoints: 663 Défis: 0 Message
Posté le 22-04-2020 à 14:44 | #
Ok, j'ai un problème avec le calcul de la taille de l'image du coup... je vais me pencher dessus, car de toute façon il fallait changer ce bout de code.

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 39 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