π
<-

Un ptit moteur 3D ?

Assembleur, Axe, C/C++, ICE...

Un ptit moteur 3D ?

Message non lude Plokki » 23 Déc 2014, 16:45

Vous savez quoi ? C'est presque Noël alors pour la peine j'ai fait un petit moteur 3D en Axe. 0:]
Voilà ce que ça donne après 3 jours de travail intensif :
Demo3D.gif


On peut faire des rotations selon 2 angles, se rapprocher ou s'éloigner et déplacer la caméra (ou le cube c'est pareil :) ) sur les 3 axes.
Sur la calculatrice je tourne à 30 fps avec 14 points et 24 arrêtes, c'est donc un peu plus fluide que sur le screen shot. B-)
J'avais fait une version en BASIC qui tourne à 1/2 fps, c'était pas génial du coup je l'ai porté en Axe et c'est beaucoup mieux cependant une question se pose : Matref si tu passe par là, comment t'as géré l'occlusion sur ton shooter 3D ?
Tu calcules la distance entre chaque point et la camera et tu n'affiche pas les plus éloignés ou tu affiches des "surfaces" je sais pas trop comment ?

Vu que je n'ai absolument pas regardé de doc à propos de la 3d je me demande si vous faites des projections de vos points sur l'écran (comme en optique) ou alors d'une autre manière ? Et pour les rotations c'est le point de vue ou les points qui tournent ? (pour moi c'est tous les points)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar de l’utilisateur
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 40.6%
 
Messages: 124
Inscription: 02 Sep 2014, 15:15
Localisation: Près de... ah bah non !
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: T°S-spé math

Re: Un ptit moteur 3D ?

Message non lude Victor D » 23 Déc 2014, 17:18

Bonjour,

Très intéressant, je comprend que ça t'ai soûler 3 jours de travail intensif :p ,mais bon tu peut-être satisfait du résultat !

En tout cas tu as bien mériter des vacances :)

Très bonnes fêtes de fin d’année,



Le site pour réussir ton exam !
Annales, corrigés, info, épreuves, calendrier...
Deviens V.I.P ! ;)
Envie d'être repéré facilement sur le forum et sur le chat, et d'avoir des fonctionnalités spéciales ?
Plus d'infos : premium.php
Tu aimes TI-Planet.org ?


Alors rendez-vous sur facebook, pour toutes les actus, toutes les news, et bien plus encore...
Ce site t'a aidé ?

PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !

Alors aide le à ton tour !
Ce site est géré bénévolement par L'association UPECS, mais tu peux aider à payer le site, les serveurs...
Avatar de l’utilisateur
Victor DModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 13.1%
 
Messages: 1581
Images: 98
Inscription: 28 Oct 2014, 22:02
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Un ptit moteur 3D ?

Message non lude Plokki » 23 Déc 2014, 17:20

Au contraire ! Si j'y ai passé 3 jours c'est que c'était super intéressant (pas mal dur aussi :p )
Bonnes fêtes aussi ^^
Avatar de l’utilisateur
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 40.6%
 
Messages: 124
Inscription: 02 Sep 2014, 15:15
Localisation: Près de... ah bah non !
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: T°S-spé math

Re: Un ptit moteur 3D ?

Message non lude Victor D » 23 Déc 2014, 17:21

Plokki a écrit:Au contraire ! Si j'y ai passé 3 jours c'est que c'était super intéressant (pas mal dur aussi :p )
Bonnes fêtes aussi ^^



Je te crois, je te crois, et j'imagine surtout :)

Merci



Le site pour réussir ton exam !
Annales, corrigés, info, épreuves, calendrier...
Deviens V.I.P ! ;)
Envie d'être repéré facilement sur le forum et sur le chat, et d'avoir des fonctionnalités spéciales ?
Plus d'infos : premium.php
Tu aimes TI-Planet.org ?


Alors rendez-vous sur facebook, pour toutes les actus, toutes les news, et bien plus encore...
Ce site t'a aidé ?

PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !

Alors aide le à ton tour !
Ce site est géré bénévolement par L'association UPECS, mais tu peux aider à payer le site, les serveurs...
Avatar de l’utilisateur
Victor DModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 13.1%
 
Messages: 1581
Images: 98
Inscription: 28 Oct 2014, 22:02
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Un ptit moteur 3D ?

Message non lude Wistaro » 03 Jan 2015, 21:34

Très beau travail !! :)

Sa serait possible d'avoir les sources?
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Un ptit moteur 3D ?

Message non lude Plokki » 04 Jan 2015, 13:22

Bien sûr ! :p
Par contre je ne m'attends pas à ce que tu comprennes quoi que ce soit, le but était juste d'avoir un truc qui fonctionne et pas d'avoir quelque chose d'optimisé et clair.
En passant je me demande si il existe une commande en axe pour convertir un nombre d'un octet en un nombre de deux octets parce que j'ai ça:
-10→{L1} donc {L1}=246 mais si je fait:
{L1}→A j'ai: A=246 et pas A=65526
du coup je suis obligé de mettre ça dans mon prog pour que mes variables aient la bonne valeur:
X>127?X-256→X
Y>127?Y-256→Y
Z>127?Z-256→Z


Code: Tout sélectionner
.CUBE3D
Data(1,2,1,4,1,5,7,6,7,8,7,3,5,6,5,8,3,2,3,4,4,8,2,6,9,10,9,11,9,12,9,13,14,10,14,11,14,12,14,13,10,11,10,12,13,11,13,12)→GDB1
/je dit quel sommet doit être relié à quel sommet
Data(10,10,⁻10,⁻10,10,10,⁻10,⁻10,10,0,0,0,0,⁻10)→Pic1X
Data(⁻10,10,10,⁻10,⁻10,10,10,⁻10,0,10,0,0,⁻10,0)→Pic1Y
Data(10,10,10,10,⁻10,⁻10,⁻10,⁻10,0,0,10,⁻10,0,0)→Pic1Z
/les coordonnées x,y,z de mes points

0→θ→W
40→R
50→G

0→r₄→r₅→r₆
Repeat getKey(15)
ClrDraw

cos(θ)→{L₂}ʳ
cos(θ+64)→{L₂+2}ʳ
sin(θ)→{L₂+4}ʳ
sin(θ+64)→{L₂+6}ʳ
cos(W)→{L₂+8}ʳ
cos(W+64)→{L₂+10}ʳ
sin(W)→{L₂+12}ʳ
sin(W+64)→{L₂+14}ʳ
/tout plein de calculs

For(U,0,13
/je calcule les coordonnées x,y de mes 14 sommets sur mon écran
{Pic1X+U}→X
{Pic1Y+U}→Y
{Pic1Z+U}→Z

X>127?X-256→X
Y>127?Y-256→Y
Z>127?Z-256→Z

X+r₄→X
Y+r₅→Y
Z+r₆→Z

{L₂}ʳ*X+({L₂+2}ʳ*Y)//127→A
{L₂+4}ʳ*X+({L₂+6}ʳ*Y)//127→B
{L₂+8}ʳ*A+({L₂+10}ʳ*Z)//127→C
{L₂+12}ʳ*A+({L₂+14}ʳ*Z)//127→D

C→A
A→X
B→Y
⁻D→Z

R-X→X
G*Y//X+48→{L₁+U}
G*Z//X+32→{L₃+U}
Pxl-On({L₁+U},{L₃+U}
/j'affiche mes points
End

GDB1→r₁
For(K,0,23
/je trace mes 24 arrêtes
{r₁}→L
{r₁+1}→M
r₁+2→r₁
Line({L+L₁-1},{L+L₃-1},{M+L₁-1},{M+L₃-1}
End

DispGraph

θ+getKey(2)-getKey(3)→θ
W+getKey(1)-getKey(4)→W
R-getKey(48)+getKey(54)→R
r₄-getKey(35)+getKey(19)→r₄
r₅-getKey(28)+getKey(26)→r₅
r₆-getKey(11)+getKey(10)→r₆
/un pâté de getkey pour modifier mes variables
End


Et voilà ! Je pense que je vais essayer de trouver une autre méthode qui serait peut être plus rapide quand il y a plus de points, je vous tiens au courant :D
Avatar de l’utilisateur
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 40.6%
 
Messages: 124
Inscription: 02 Sep 2014, 15:15
Localisation: Près de... ah bah non !
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: T°S-spé math

Re: Un ptit moteur 3D ?

Message non lude Wistaro » 04 Jan 2015, 16:22

Oki merci :)
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Un ptit moteur 3D ?

Message non lude Hayleia » 04 Jan 2015, 20:19

Plokki a écrit:En passant je me demande si il existe une commande en axe pour convertir un nombre d'un octet en un nombre de deux octets parce que j'ai ça:
-10→{L1} donc {L1}=246 mais si je fait:
{L1}→A j'ai: A=246 et pas A=65526
du coup je suis obligé de mettre ça dans mon prog pour que mes variables aient la bonne valeur:
X>127?X-256→X
Y>127?Y-256→Y
Z>127?Z-256→Z

Dans le zip où tu as téléchargé l'Axe Parser, il y a un fichier "Commands.hmtl". Il te sera souvent utile. La ligne qui t'intéresse aujourd'hui est la suivante :
signed{EXP} Key:int() Returns the single byte the expression points to. It will be in the range -128 to 127.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Un ptit moteur 3D ?

Message non lude TheMachine02 » 05 Jan 2015, 14:33

Et bien ça ma l'air bien tout ça :p
30 fps pour 24 arrêtes et 14 points c'est respectable ....... *TheMachine02 vérifie les performances de son engin.

Matref pour son shooter utilisait un trick dût au caractère spécial du tunnel (si c'est bien celui là dont tu parle).
Pour l'occlusion y'a pas 36000 possibilités, dans tout les cas ça sera très lent ... ça fait deux ans que je me casse la tête dessus :D
Pour les rotations tout dépend de ce que tu veux faire, mais en général c'est les points qui bougent.
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 30%
 
Messages: 342
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: Un ptit moteur 3D ?

Message non lude Ti64CLi++ » 05 Jan 2015, 19:15

Pas mal du tous.
Il donne envie.
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.5%
 
Messages: 3446
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2051 utilisateurs:
>2019 invités
>26 membres
>6 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)