Tu te servais des plots statistiques ou qqch comme ça, non ?
Et là, c'est mieux en LUA ? Niveau rapidité ?
[W.I.P] Make3D pour TI-Nspire
Re: [W.I.P] Make3D pour Nspire CAS
Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1988
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: [W.I.P] Make3D pour Nspire CAS
Loulou 54 wrote:Tu te servais des plots statistiques ou qqch comme ça, non ?
Oui.
Et là, c'est mieux en LUA ? Niveau rapidité ?
Hum ... le rendu est juste instantané, ce qui permet de faire des turn-over avec 34 fps... regarde la page d'avant, le gif que tu verras est plus lent que la réalité

-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
Cool !
Sinon, j'ai vu aussi la 3D de l'OS 3.0 sur une touchpad, la rapidité est impressionnante face à celle de la 89 ! Il y a du potentiel sur ces calto !
Sinon, j'ai vu aussi la 3D de l'OS 3.0 sur une touchpad, la rapidité est impressionnante face à celle de la 89 ! Il y a du potentiel sur ces calto !

Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Posts: 1988
- Images: 8
- Joined: 02 Aug 2009, 00:00
- Location: 54, près de Metz
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ingé Logiciel chez Amazon
Re: [W.I.P] Make3D pour Nspire CAS
Loulou 54 wrote:Cool !
Sinon, j'ai vu aussi la 3D de l'OS 3.0 sur une touchpad, la rapidité est impressionnante face à celle de la 89 ! Il y a du potentiel sur ces calto !![]()
Et bien c'est exactement la même vitesse.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
J'ai récursifié le modèle des menus et je peux maintenant faire des sous menus, sous menus de sous menus etc ...

L'astuce est que finalement les boutons ne redirigent plus le flux, mais ont bel et bien la fonction associée (Avant les boutons redirigeaient vers les évents du type on.charIn(ch), comme par exemple la GUI ).
- Les flèches haut et bas permettent de sélectionner un item du menu
- la touche gauche permet de dérouler le menu (donc ajouter un écran), et ce dernier prend le contrôle sur les évents (J'utilise un Screen Manager). Si c'est un simple bouton, on exécute la fonction associée.
- la touche droite ferme le sous menu
- la touche Enter, un clic de souris, ou un raccourci clavier (1, 2, 3 ..), permet de faire la même chose que la touche gauche (la redirection a lieu ici en fait)
Le seul problème, je trouve, c'est que je n'arrive pas à faire en sorte que lorsque l'évent mouseDown() est appelé et qu'aucun bouton n'est touché, fermer tous les écrans. Ça pourrait parraître simple, seulement, lorsque j'appuie sur le bouton "space", l'event mouseDown() est maintenu, du coup, ça empile et dépile les écrans instantanément.

L'astuce est que finalement les boutons ne redirigent plus le flux, mais ont bel et bien la fonction associée (Avant les boutons redirigeaient vers les évents du type on.charIn(ch), comme par exemple la GUI ).
- Les flèches haut et bas permettent de sélectionner un item du menu
- la touche gauche permet de dérouler le menu (donc ajouter un écran), et ce dernier prend le contrôle sur les évents (J'utilise un Screen Manager). Si c'est un simple bouton, on exécute la fonction associée.
- la touche droite ferme le sous menu
- la touche Enter, un clic de souris, ou un raccourci clavier (1, 2, 3 ..), permet de faire la même chose que la touche gauche (la redirection a lieu ici en fait)
Le seul problème, je trouve, c'est que je n'arrive pas à faire en sorte que lorsque l'évent mouseDown() est appelé et qu'aucun bouton n'est touché, fermer tous les écrans. Ça pourrait parraître simple, seulement, lorsque j'appuie sur le bouton "space", l'event mouseDown() est maintenu, du coup, ça empile et dépile les écrans instantanément.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
J'ai ajouté la gestion de Dupliquer et Supprimer des objets. Cela implique que j'ai également fait un gestionnaire d'objets qui contient toute la scène. De plus, j'ai rajouté un sélecteur (la petite main) qui permet d'ajouter un ou plusieurs objets à un groupe de sélection qui subira toutes les transformations sans distinction. On peut parcourir les éléments avec la touche TAB/Maj+TAB et ajouter à la sélection avec ENTER.
Je travaille également sur les scripts d'import/export, notamment pour conserver le format objet de la version TI-BASIC de Make3D.

Les objectifs sont : coder les fonctions du menu Translate (Grab, Scale, Rotate), du menu Add (Point, Line, Plane, Cube), et donc coder une classe Popup qui remplacera Request et Text du TI-BASIC que l'on ne peut pas utiliser ici.
Je travaille également sur les scripts d'import/export, notamment pour conserver le format objet de la version TI-BASIC de Make3D.

Les objectifs sont : coder les fonctions du menu Translate (Grab, Scale, Rotate), du menu Add (Point, Line, Plane, Cube), et donc coder une classe Popup qui remplacera Request et Text du TI-BASIC que l'on ne peut pas utiliser ici.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
Bravo, c'est vraiment classe 
Sinon, pour les popup, tu peux utiliser mes RoundRects

Sinon, pour les popup, tu peux utiliser mes RoundRects

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14896
- Images: 1211
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: [W.I.P] Make3D pour Nspire CAS
Super
:

Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6875
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: [W.I.P] Make3D pour TI-Nspire
De retour après ma période d'exams, j'ai passé 2 jours à me replonger dans le code.
J'en ai profité pour actualiser les classes que j'avais commencées pour Make3D puis améliorées pour mon Sudoku, cela m'a permis de ne pas perdre une miette de mon précédent travail (C'est ça la souplesse de travailler avec du langage objet de haut niveau, même si le Lua n'est pas à la base un langage objet)
J'ai également codé à la sauce Blender les outils de transformation Grab/Scale/Rotate (en français : Déplacer/Redimensionner/Tourner), c'est à dire, avec l'apparition d'un overlay en bas de la fenêtre permettant de rentrer un nombre.
Dans Blender, les outils fonctionnent également avec des contraintes immédiates :
Et bien, j'ai codé tout cela pour Make3D.
La seule chose que je n'ai pas citée et qui existe dans Blender, c'est la gestion de la souris. Je suis en train de travailler dessus, seulement, ça casse un peu l'optimisation que j'avais faite pour toute la gestion du clavier. En effet, la gestion de la souris est différente pour la Translation, pour la Rotation et pour la mise à l'échelle.

Je dois également reprendre la matrice de rotation car j'ai glissé une erreur dans la rotation Z ( que je n'avais jamais testée auparavant puisque la caméra opère une rotation X et Y seulement)
Je me demande également si l'utilisation des matrices est pas meilleur (j'avais déjà posée la question), ou ne serait-ce que faire des optimisations au niveau de l'accès de ma trig table (un précalcul de toute la table trigonométrique pour éviter des pertes de performance énormes). En effet, voici une scène qui fait particulièrement ramer Make3D (en temps réel, en effet, on parle à un autre niveau) :

J'ai dupliqué 26 fois mon cube de départ (qui comprend 27 points et 24 faces), soit 702 points et 624 faces. Il y a une perte de performance évidemment à l'affichage. Je ne peux pas accélérer la gestion des listes déjà très rapide, mais je pense que c'est au niveau des opérations trigonométriques qu'il y a de quoi gagner.
D'un autre coté, cette scène a 80% de points inutiles (en doubles ou invisibles au rendu).
Pour ceux qui voudraient tester (toujours le même lien) :
http://levak.free.fr/ftp/nspire/Make3D/Make3D.tns
Raccourcis :
J'en ai profité pour actualiser les classes que j'avais commencées pour Make3D puis améliorées pour mon Sudoku, cela m'a permis de ne pas perdre une miette de mon précédent travail (C'est ça la souplesse de travailler avec du langage objet de haut niveau, même si le Lua n'est pas à la base un langage objet)
J'ai également codé à la sauce Blender les outils de transformation Grab/Scale/Rotate (en français : Déplacer/Redimensionner/Tourner), c'est à dire, avec l'apparition d'un overlay en bas de la fenêtre permettant de rentrer un nombre.
Dans Blender, les outils fonctionnent également avec des contraintes immédiates :
- Appuyer sur X, Y ou Z contraint la transformation à s'opérer sur l'axe sélectionné uniquement
- Utiliser Maj+X, +Y, ou +Z contraint la transformation à ne pas s'opérer sur l'axe sélectionné (Donc déplacement que sur Y et Z, X et Z ou X et Y)
- Appuyer sur - inverse le signe de la transformation
- La transformation est prévisualisée dès que l'on rentre une valeur (sans appuyer sur Enter)
- Appuyer sur Esc, annule la transformation en cours, Enter, la valide
Et bien, j'ai codé tout cela pour Make3D.
La seule chose que je n'ai pas citée et qui existe dans Blender, c'est la gestion de la souris. Je suis en train de travailler dessus, seulement, ça casse un peu l'optimisation que j'avais faite pour toute la gestion du clavier. En effet, la gestion de la souris est différente pour la Translation, pour la Rotation et pour la mise à l'échelle.

Je dois également reprendre la matrice de rotation car j'ai glissé une erreur dans la rotation Z ( que je n'avais jamais testée auparavant puisque la caméra opère une rotation X et Y seulement)
Je me demande également si l'utilisation des matrices est pas meilleur (j'avais déjà posée la question), ou ne serait-ce que faire des optimisations au niveau de l'accès de ma trig table (un précalcul de toute la table trigonométrique pour éviter des pertes de performance énormes). En effet, voici une scène qui fait particulièrement ramer Make3D (en temps réel, en effet, on parle à un autre niveau) :

J'ai dupliqué 26 fois mon cube de départ (qui comprend 27 points et 24 faces), soit 702 points et 624 faces. Il y a une perte de performance évidemment à l'affichage. Je ne peux pas accélérer la gestion des listes déjà très rapide, mais je pense que c'est au niveau des opérations trigonométriques qu'il y a de quoi gagner.
D'un autre coté, cette scène a 80% de points inutiles (en doubles ou invisibles au rendu).
Pour ceux qui voudraient tester (toujours le même lien) :
http://levak.free.fr/ftp/nspire/Make3D/Make3D.tns
Raccourcis :
- Espace : Affiche le menu
- Tab/Maj+Tab : Pointer un objet
- Enter : Ajouter l'objet pointé à la liste de sélection
- Maj+D : Dupliquer
- Maj+X : Supprimer
- R : Lance l'outil de rotation
- G : Lance l'outil de positionnement
- S : Lance l'outil de redimensionnement
- X : contraindre la transformation sur X
- Y : || sur Y
- Z : || sur Z
- Maj+X : contrainte la transformation sur tous les axes sauf sur X
- Maj+Y : || sauf sur Y
- Maj+Z : || sauf sur Z
- - : valeur négative
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42528
- Images: 17406
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests