Page 1 of 23

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

Unread postPosted: 21 Jan 2009, 22:20
by Levak
Bonjour tout le monde !!

Après le succès qu'a eu mon premier jeu et en plus sur TI Nspire, je me lance donc dans du lourd, du très lourd...
:#fou#: :#gol#:
Euh oui, je me lance dans la programmation d'un logiciel 3D pour TI Nspire CAS :8):

Quoi mais il est fou ce mec :|:

Non non ! je n'ai pas perdu la tête, c'est juste que j'ai eu envie que mon TPE m'aide à apprendre de nouvelle choses (TPE sur le modèle et la simulation 3D)

Il s'agit donc, pour l'instant, d'un simple affichage en projection perspective d'un modèle 3D définit par l'utilisateur à l'aide d'une matrice x*3 où x est le nombre de points. :):

Il permet de changer la position de l'observateur en x, y et z, mais, pour l'instant, pas de l'orientation :(:

Image

Je n'ai, pour l'instant (encore une fois), pas programmé le fait de pouvoir générer les arrêtes et les faces, sur le screen je l'ai fait manuellement pour débuger la suite vous allez voir :D:

Je disais donc qu'il y avait un problème; oui il y en a un, et un très embêtant...
J'ai commencé à programmer la matrice de rotation.... :%):
Et là... c'est le bordel il faut le dire...

- sur X de 5 rad
Image

- sur Y de 5 rad
Image

- sur Z de 5 rad (elle marche)
Image

- sur tous les axes de 5 rad
Image

J'ai essayé de me mettre en radian, puis en degré, aucun changement majeur, donc je suis resté en radian.
Il faut dire que j'ai pas très bien compris un truc dans la matrice en 3D

- L'objet a bien une matrice contenant tous les points sur X, Y et Z non ?
- L'objet a une matrice globale contenant la position du centre et son orientation ou je me trompe ?
- La matrice de rotation doit-elle comprendre les coordonnées homogène (la matrice en screen plus bas) ou c'est juste une formalité ?
(en gros est-ce que ça influence sur le reste du calcul )
- Est-ce que, pour obtenir les points après rotation, il faut faire:

MESH * MAT_ROT

où MESH est une matrice contenant tous les points sur x, y et z et MAT_ROT, la matrice que j'utilise pour la rotation soit
Image

Je demande aux pro, si il y a une erreur dans mon raisonnement, ou si il s'agit de la matrice de rotation que j'ai honteusement copiée depuis internet :#langue#:

@@+

edit: dans mon prog, ma matrice de translation n'est pas en coordonnées homogènes, donc elle est 3*3, sans la dernière ligne et dernière colonne

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

Unread postPosted: 22 Jan 2009, 17:05
by Levak
Bon, bah ça n'a pas l'air d'intéresser beaucoup de monde ... :(:

Ce n'est pas très grave, pour l'instant, phase initiale du projet...

J'ai donc finalement réussit à faire fonctionner les matrices de rotation, en fait cela venait du script de projection perspective...

voilà le screen :):
Image
Je me suis servit de Blender pour mieux pouvoir appréhender l'espace 3D :;):

Je ne sais pas quelle fonction intégrer en premier à part la rotation qui marche pour l'instant... peut être le target de la caméra, mais faut dire que c'est pas très pratique de faire les transformations depuis le programme....
Il faut que je creuse :%):

Avis zé remarques zont les bienvenues :#gol#:

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

Unread postPosted: 22 Jan 2009, 20:47
by tama
bah j'connais rien à ces trucs de matrice de rotation XD
mais ça a l'air intéressant, continues :)

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

Unread postPosted: 22 Jan 2009, 20:56
by Levak
Re....

ça s'annonce mal....

le temps de réaction entre deux manip pour un modèle de 290 points met 15 secondes à se générer...

Image

Et là je parlais seulement des points...
Les arrêtes mettent 2 minutes à se générer car 290 points 470 arrêtes....

Image

C'est du lourds, du très lourds....

Et au passage moi je programme avec la TI connectée au PC, donc je n'use pas les piles (je les retire même), donc je ne sais pas si les calculs vident les piles avec usages fréquents...

Le modèle que j'ai généré, est une tête de singe, déjà crée par défaut avec Blender, appelée "Suzanne" mais dont j'ai supprimé la moitié des points pour le rendre plus légère. Je l'ai exportée au format *.obj, puis fait quelques manips pour le rendre compatible en pascal et enfin utilisé TextEdition Nspire pour le convertir au format nsp

Image

Je peux actuellement, tourner le modèle 3D sans problème, la matrice marche nikel.
Image

voilà voilà....

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

Unread postPosted: 22 Jan 2009, 21:07
by Emyl
Ca fait quand même de beaux graphs la nSpire, mais en fait ça sert qu'à ça, non ? :D:
surtout quand on sais l'utiliser. Ca donne envie :#fou2#:

Bon continuation Levak !

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

Unread postPosted: 22 Jan 2009, 21:26
by Levak
Emyl wrote:Ca fait quand même de beaux graphs la nSpire, mais en fait ça sert qu'à ça, non ? :D:
surtout quand on sais l'utiliser. Ca donne envie :#fou2#:

Bon continuation Levak !


Lol

Je pari que si on passe tout ça en assembleur, ça marche plus vite sur TI-83+ :#gol#:

Nan sans dec... quelques cossinus et sinus à faire pour 290 points... c'est rien pour elle.... :#non#:

elle arrive bien à calculer 99^99*99^99 instantanément :#roll#:

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

Unread postPosted: 22 Jan 2009, 21:35
by tama
bah en même temps le processeur n'est pas comparable, à la base ça doit être au moins 5 fois plus rapide ;)

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

Unread postPosted: 23 Jan 2009, 00:40
by Adriweb
ba .... c'est un super projet mais bon, quand TI aura fait ca en natif, ca sera x fois plus rapide, faudra pas se plaindre ^^

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

Unread postPosted: 23 Jan 2009, 22:41
by Levak
Le modèle n'est pas de moi, j'ai juste retiré la moitié des points pour le rendre plus léger pds le calcul, sinon oui c'est sur que ça rend bien sur la calto ^^

Je ne pense pas non plus que ça naîtra en natif, et s'il le font ce sera pour faire des graphiques 3D à la limite, pas de la modélisation pure :#non#:

Je vais bientôt essayer de m'attaquer à un affichage plus soft avec le Tri des points visibles ou non (projet), mais je n'ai aucune idée de comment procéder ??!
Récemment j'ai étudié le produit scalaire en Physique (normale à une face), y aurait-il un moyen quelconque de faire avec ? Le problème c'est que je parle en matière de face, pas de points comme actuellement :hum:

Amicalement, Levak
@+

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

Unread postPosted: 24 Jan 2009, 04:13
by Adriweb
Mic wrote:je ne suis pas sûr que ça naitra un jour en natif....

Ba pourquoi ?? o_O ca serait dommage ! ils l'ont bien fait sur les 68k... ils peuvent reprendre leurs algos et les adapter sur arm, quand meme ^^