π
<-

[W.I.P] Make3D pour TI-Nspire

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 18:07

Wahou !
En cours de maths... ne me demandez pas pourquoi, mais en voyant le prof tracer la représentation graphique d'une fonction (avec des log et des shx et des chx = il voulait nous épater parce que c'était pas au programme, mais qu'on comprenait tous) J'ai eu une lumière...

Je savais depuis longtemps que l'optimisation se ferait au niveau de l'affichage des lignes, car pour les points, à moins d'être moins précis, le calcul ça reste du calcul. Seulement, pour les lignes c'est un judicieux amalgame entre accès à matrice et à liste, ce qui ralenti considérablement le système au niveau du traitement des données..

Je vais essayer d'être le plus clair possible pour pas obliger à ouvrir le classeur tns pour comprendre ^^

Avant (car je viens de le modifier) : Pour tracer une ligne (avec le point compris) je fais :
- On calcule les coordonnées X et Y du point sur l'écran (avec algo pour connaître les sens des normales et tracer la face mais ça on s'en fou pas notre problème..)
- On stock X dans xspp1 et Y dans yspp1

// Tracage d'une face

- On extrait les points à relier de la matrice (on les stock dans des variables pour éviter l'accès à la matrice plusieurs fois)

- On trace une ligne entre point 1 et point 2
- On essaye de savoir si c'est un quad/tri en fonction du nombre de colonnes de la matrice
- On trace 3 lignes de plus si c'est un quad (23 puis 34 puis 41)
- Sinon on trace 2 lignes de plus pour le tri (23 puis 31)
- Et enfin si erreur on renvoie rien (donc on a tracé une ligne pour rien, remarquez comme l'algo est cochon...)

// Pour tracer une ligne :
- On rajoute X et Y dans les listes des lignes ET On provoque une erreur ( 1/0 )

C'est là que le code perd de son optimisation... A CHAQUE ligne on provoque une erreur. L'intérêt de provoquer une erreur est que la ligne ne se trace pas, et on peut ainsi utiliser une seule liste pour tracer toutes les lignes. Ok... mais pas A CHAQUE lignes... je ne sais pas où j'avais mis mon cerveau le jour où j'ai fait l'algo !!

En effet, c'est complètement inutile de provoquer l'erreur entre les lignes d'une meêm face puisqu'elle sont reliées entre elles par un même point à chaque fois...
En gros j'avais dans une liste :
{1,2,undef,2,3,undef,3,4,undef,4,1,undef....} soit 1/3 de "undef" d'erreur en fait..

Maintenant : Je revus l'algo pour ne tracer que manuellement l'erreur entre chaque face, ce qui épurge les 1/3 d'erreur et en met que 6 (car 6 faces) au lieu de 12 (car 12 lignes) avant pour un simple cube...
Bien que ceci raccourcis le temps de rendu de 20% ... (oui 20% sur un gros modèle ça fait beaucoup hein), il reste toujours une grosse opti à faire encore. En effet, ma liste actuelle ressemble à ça :
{1,2,2,3,3,4,4,1,undef,...}
Avouez, vous avez envie de me taper ? C'est encore inutile de faire une ligne entre 2 et 2, ce sont les mêmes points !

Après (projet) :
je travaille donc sur la réalisation de fonction créatrices de triangles et de carrés 2D (non pas en 3D, car ça c'est pour la librairie), en gros, un code modifié de la ligne mais qui accepte plus d'arguments.

Vala vala je vous tiens au courant ! :#top#:

ps : Si vous avez une idée de pourquoi les cosinus et Sinus hyperbolique et logarithme m'ont fait faire cette déduction, je vous en remercierais ! xD
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 19:10

Waaaaaaaaaaaaaaaaaaaa

première op : 36 27
Deuxième op (pas celle prévue, mais 15 fois plus efficace)
27 18

:#wahoo#: :#wahoo#: :#vive#:

Edit : je posterais un peu plus tard, je suis sous l'émotion... je me demande encore comment j'ai pu coder comme ça avant sans me dire que ça clochait...
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby jacques » 19 Jan 2010, 19:19

:#top#: Belle optimisation !

Je suis sûr qu'avec tes nouveaux acquis en maths depuis l'an dernier, tu pourras trouver encore de nouvelles optimisations ! :):
Sublime Chevalier Elu des TI

Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!

Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
User avatar
jacques
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 14.9%
 
Posts: 2057
Images: 0
Joined: 25 Aug 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: prépa PSI

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 19:36

jacques wrote:Je suis sûr qu'avec tes nouveaux acquis en maths depuis l'an dernier, tu pourras trouver encore de nouvelles optimisations ! :):


Malheuresement, je n'ai rien acquis depuis l'année dernière concernant la modélisation dans l'espace, soit c'est pas au programme, soit l'a pas encore abordé.
Il y a certes les complexes, mais même si le modèle est simple, ça va me compliquer la vie plus qu'autre chose, la partie calcul est, à mon avis, inoptimisable. Il n'y a que la gestion des données où je peux améliorer.

Comme je disais, 1+1 = 2 et met x temps à être calculé
for i,1,100
1+1
endfor

Je te laisse interpréter... ce "x" est multiplié par 100; MAIS il y a également le temps d'interpréter le "for" qui est y


for j,1,100

for i,1,100
1+1
endfor

endfor

Et là on voit que x est multiplié par 100*100 et que y est multiplié par 100, donc si on dit que x vaut 1 et y vaut 2 , on a : 10000 + 200 = 10200 au lieu de 10000 si l'on avait écrit les 10000 opérations.
Après, la nSpire a un fâcheux avantage/défaut , c'est son pretty-print qui va faire laguer le système parce qu'on aurait tapé les 10000 opérations.
Il faut donc jouer entre optimisation et traitement des données quand on fait des calculs à répétition. Les calculs sont inoptimisables si on a déjà réduit l'accès à la mémoire, il reste donc les autres accès tel que les lignes ou autres...
Ceci est ma vision de l'optimisation. Pour d'autre ça sera surement "comment réduire 1000 lignes de code en 10" ou encore " comment réduire 1000 accès mémoire en 10" moi se sont les deux à la fois car la nspire, bien que plus rapide que les z80 et 68k, a son caractère... :%):
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 19:39

Bon, sinon mon optimisation a servie a quelque chose !

Le rendu suivant, réalisé précédemment :
Image
mettait 303 secondes soit un peu plus de 5 minutes (voir les screens de la page précédente)

Maintenant ?

hehehe


3 minutes 30


Pas mal non ?

Il reste un gros boulot à faire dans d'autres domaine, mais bon, celui-là m'est venu "Comme ça" xD

Pour les beta-testeurs volontaire de faire exploser leur calto :
TELECHARGER-MOI


.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby critor » 19 Jan 2010, 20:17

Levak wrote:Bon, sinon mon optimisation a servie a quelque chose !

Le rendu suivant, réalisé précédemment :
Image
mettait 303 secondes soit un peu plus de 5 minutes (voir les screens de la page précédente)

Maintenant ?

hehehe


3 minutes 30


Pas mal non ?

Il reste un gros boulot à faire dans d'autres domaine, mais bon, celui-là m'est venu "Comme ça" xD

Pour les beta-testeurs volontaire de faire exploser leur calto :
TELECHARGER-MOI


.




Félicitations Levak, c'est le couronnement de toute une vie!!!
http://tiplanet.org/index.php?mod=ne ... iresid=790

Tu es nominé aux TI-Bank Awards 2009!!!!
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 54.7%
 
Posts: 42528
Images: 17406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 20:22

YeaaaaaaaaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHH




ahem...

merci à tous ceux qui ont voté ! ^^
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 19 Jan 2010, 21:26

Mic wrote:Tu mettras à jour ta nouvelle version sur le portail ?

Pas encore, il reste la doc...et là, ya pleins de changements à faire :#ouin#:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 01 Feb 2010, 21:13

Bon, la semaine dernière, en permanence je n'avais rien d'important à faire, et comme il n'y avait plus de place au CDI, je me suis retrouvé sur les sortes de divans consacrés à la lecture silencieuse. C'est donc là que j'ai sorti ma nspire (les autres ont fait "Ouuaaaaa") et un bout de papier, et j'ai dessiné une représentation UML (non standard bien sûr, juste pour le look) et essayé d'envisager un raccord graphique en temps réel comme Nelson Souna l'a fait pour son moteur 3D qu'il développe de son coté :

Voilà le résultat arrangé sous Inkscape :
Image

la case "projet" représente le moteur graphique qui devrai remplacer le programme segment qui met tant de temps à générer, tout en laissant la possibilité de faire le rendu en mode Programme plutôt qu'en prévisualisation (oui car le moteur graphique en temps réel dans un Tableur, sera nécessairement trèèèèèèès optimisé ^^ )
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby tama » 01 Feb 2010, 21:14

Haha, les heures de perm et le CDI, ça me rappelle des vieux souvenirs ça :%):
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40.9%
 
Posts: 10995
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1864 utilisateurs:
>1845 invités
>11 membres
>8 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)