Derniers sujets
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité Aucun
Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion
Statistiques
Nous avons 240 membres enregistrésL'utilisateur enregistré le plus récent est Jean72
Nos membres ont posté un total de 8915 messages dans 811 sujets
une atan2 pour vos lib math
5 participants
Forum Oric :: Forums :: Forum Public :: Assembleur
Page 1 sur 1
une atan2 pour vos lib math
Bonjour tout le monde,
C'est avec un immense plaisir que je vous annonce aujourd'hui ma première contribution à l'éco système logiciel de l'Oric.
Une bien maigre contribution certes .. mais une contribution quand même ..
Il s'agit d'une routine d'arctangente que j'ai décliné en deux versions.
Les deux versions ont été testées par brute force sur [-7 .. 7]*[-7 .. 7] sans qu'aucune erreur de précision ne soit détectée.
Le programme de test sert d'exemple d'utilisation.
Ces deux versions ne sont pas encore totalement optimisées (la version 16 bits ne l'est vraiment pas) et je posterai sur ce thread si des mises à jour améliorent la précision ou la performance.
Pour ceux qui connaissent la version 8 bits sur codebase, celle que je propose ici est probablement plus coûteuse en cycle, mais elle calcule juste et tient sur moins de 2 pages.
C'est avec un immense plaisir que je vous annonce aujourd'hui ma première contribution à l'éco système logiciel de l'Oric.
Une bien maigre contribution certes .. mais une contribution quand même ..
Il s'agit d'une routine d'arctangente que j'ai décliné en deux versions.
- une version 8 bits qui prend à peu près 200 cycles. L'algo est ici.
- une version 16 bits qui prend à peu près 1800 cycles. L'algo est ici.
Les deux versions ont été testées par brute force sur [-7 .. 7]*[-7 .. 7] sans qu'aucune erreur de précision ne soit détectée.
Le programme de test sert d'exemple d'utilisation.
Ces deux versions ne sont pas encore totalement optimisées (la version 16 bits ne l'est vraiment pas) et je posterai sur ce thread si des mises à jour améliorent la précision ou la performance.
Pour ceux qui connaissent la version 8 bits sur codebase, celle que je propose ici est probablement plus coûteuse en cycle, mais elle calcule juste et tient sur moins de 2 pages.
jbperin- Messages : 132
Date d'inscription : 05/11/2019
Localisation : Drôme
Re: une atan2 pour vos lib math
Un petit exemple d'usage.
Il faut:
- décompresser l'archive pour obtenir le .TAP et les sources.
- insérer le .TAP dans oricutron (ou autre),
- charger le merdier avec un CLOAD""
et une fois que le bastringue est chargé , appuyer sur la touche flèche avant en croisant les doigts.
ne touchez à rien d'autre sinon ça risque d'exploser .. c'est très dangereux les arctangentes ..
Il faut:
- décompresser l'archive pour obtenir le .TAP et les sources.
- insérer le .TAP dans oricutron (ou autre),
- charger le merdier avec un CLOAD""
et une fois que le bastringue est chargé , appuyer sur la touche flèche avant en croisant les doigts.
ne touchez à rien d'autre sinon ça risque d'exploser .. c'est très dangereux les arctangentes ..
- Fichiers joints
jbperin- Messages : 132
Date d'inscription : 05/11/2019
Localisation : Drôme
Re: une atan2 pour vos lib math
Bon ben finalement, j'ai porté sur Oric l'arctangente de codebase64
Et c'est elle que je vais utiliser car:
- la précision n'est pas super importante dans mon cas
- je peux me permettre de prendre 3 pages
- cette version est plus rapide que la mienne
Ça a quand même été très formateur de se pencher sur cet algo.
La version atan2 8 bits pour Oric est là.
Je vais bientôt vous montrer ce que ça donne .. stay tuned
Et c'est elle que je vais utiliser car:
- la précision n'est pas super importante dans mon cas
- je peux me permettre de prendre 3 pages
- cette version est plus rapide que la mienne
Ça a quand même été très formateur de se pencher sur cet algo.
La version atan2 8 bits pour Oric est là.
Je vais bientôt vous montrer ce que ça donne .. stay tuned
jbperin- Messages : 132
Date d'inscription : 05/11/2019
Localisation : Drôme
Re: une atan2 pour vos lib math
arc tangente ... je sais meme plus a quoi ca peut servir ?
je suis curieux de voir la suite
je suis curieux de voir la suite
_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
Re: une atan2 pour vos lib math
Pour la 3d du projet glOric ?
kenneth- Modérateur
- Messages : 877
Date d'inscription : 13/01/2013
Age : 56
Localisation : 63
Re: une atan2 pour vos lib math
Oui c'est ça :-)
avec le projet glOric je veux adresser le sujet de la 3D temps réel sur Oric.
L'idée (qui reste à vérifier) c'est que pour faire de la 3D temps réel sur machine 8 bits à processeur 1Mhz, il vaut mieux utiliser la trigonométrie que l'algèbre linéaire.
L'arctangente c'est l'opérateur trigonométrique qui permet de convertir des coordonnées cartésiennes (points 3D) en coordonnées angulaires (proche des coordonnées écran).
Et c'est celui que je compte utiliser sur glOric pour :
-obtenir des performances de fou jamais égalées sur Oric
-époustoufler la communauté Oric
Si ma théorie est juste j'arriverai alors à révolutionner la 3D temps réel sur Oric, entrer dans l'histoire de cette machine et devenir riche et célèbre.
Sinon je terminerai dépressif et alcoolique mais au moins j'aurais mis à la disposition de la communauté quelques petites routines sympa .. :-)
Donc ça vaut quand même le coup ..
avec le projet glOric je veux adresser le sujet de la 3D temps réel sur Oric.
L'idée (qui reste à vérifier) c'est que pour faire de la 3D temps réel sur machine 8 bits à processeur 1Mhz, il vaut mieux utiliser la trigonométrie que l'algèbre linéaire.
L'arctangente c'est l'opérateur trigonométrique qui permet de convertir des coordonnées cartésiennes (points 3D) en coordonnées angulaires (proche des coordonnées écran).
Et c'est celui que je compte utiliser sur glOric pour :
-obtenir des performances de fou jamais égalées sur Oric
-époustoufler la communauté Oric
Si ma théorie est juste j'arriverai alors à révolutionner la 3D temps réel sur Oric, entrer dans l'histoire de cette machine et devenir riche et célèbre.
Sinon je terminerai dépressif et alcoolique mais au moins j'aurais mis à la disposition de la communauté quelques petites routines sympa .. :-)
Donc ça vaut quand même le coup ..
jbperin- Messages : 132
Date d'inscription : 05/11/2019
Localisation : Drôme
Re: une atan2 pour vos lib math
Sinon je terminerai dépressif et alcoolique
Pour sur dépressif ... alcoolique tu l'es déjà H24 pour avoir des idées pareilles
_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
Re: une atan2 pour vos lib math
Tu n'aurais "plus qu'à" porter Mercenary sur Oric
Symoon- Messages : 779
Date d'inscription : 26/04/2014
Re: une atan2 pour vos lib math
A mon avis, l animation sur Apple etait precalculee, il suffit de dessiner les polygones et de les remplir. Pour l'oric en temps reel, il va falloir recalculer les points par rapport a une position angulaire spatiale initiale, sinon les volumes vont se déformer avec les dechets de calcul, et j ai peur qu on soit obligé d'utiliser des abaques pour la rotation, si on passe par la trigonometrie apres chaque sequence image on risque de consommer beaucoup de cycles. On peut commencer par une 3d en fil de fer pour voir comment l'oric se comporte, puis on passerait a a 3d convexe (dos caché) puis une 3d concave (l objet proche cache l'objet loin), là, on posera des glaçons sur le processeur, parceque il n y aura plus de boucles de pause...
kenneth- Modérateur
- Messages : 877
Date d'inscription : 13/01/2013
Age : 56
Localisation : 63
Re: une atan2 pour vos lib math
Oui exactement .. j'ai commencé à recalculer les points par rapport a une position angulaire spatiale courante .. et je suis face à une déformation de type fisheye .. c'est normal ..kenneth a écrit:Pour l'oric en temps reel, il va falloir recalculer les points par rapport a une position angulaire spatiale initiale, sinon les volumes vont se déformer avec les dechets de calcul
J'ai peur que tu ais raison. Les abaques de 1337 me plaisent bien .. on doit pouvoir y taper dedans.kenneth a écrit: j ai peur qu on soit obligé d'utiliser des abaques pour la rotation
Totalement vrai .. j'ai fait un truc en assembleur que j'ai déjà bien optimisé (par rapport à ce que je suis capable de faire) et j'arrive au résultat dans l'archive jointe.kenneth a écrit:si on passe par la trigonométrie après chaque sequence image on risque de consommer beaucoup de cycles
kenneth a écrit: On peut commencer par une 3d en fil de fer pour voir comment l'oric se comporte, puis on passerait a a 3d convexe (dos caché) puis une 3d concave (l objet proche cache l'objet loin), là, on posera des glaçons sur le processeur, parceque il n y aura plus de boucles de pause...
Joli programme ... :-)
Avant la 3d fil de fer, je me suis attardé sur l'ascii art ..
Dans le petit exemple en pièce jointe, j'utilise un rendu (buggé) en mode texte ascii art.
Côté calcul, ça gère 60 points 3d reliés entre eux par à peu près 50 segments.
Au chargement, je supprimer l'IT clavier et je déroule une animation de la position ..
Ensuite je remets l'IT clavier pour permettre de se déplacer interactivement et ainsi voir comment ça se comporte.
Dans les 2 phases, la projection et le rendu sont calculés en temps réel.
Les commandes clavier pour se déplacer sont:
- Flèche haut / bas pour avancer / reculer
- W / X pour se déplacer latéralement
- Flèche gauche / droite pour tourner la tête
- Q / A pour incliner la tête
- P / ; pour monter descendre
- Fichiers joints
jbperin- Messages : 132
Date d'inscription : 05/11/2019
Localisation : Drôme
Re: une atan2 pour vos lib math
hello,
j'ai cliqué par mégarde sur un - sur le premier message de JB...
Je ne savais pas que c'était pour voter !
désolé donc, c'était pas volontaire
j'ai cliqué par mégarde sur un - sur le premier message de JB...
Je ne savais pas que c'était pour voter !
désolé donc, c'était pas volontaire
_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
drpsy- Messages : 208
Date d'inscription : 20/07/2014
Age : 52
Localisation : Lagny sur Marne
Forum Oric :: Forums :: Forum Public :: Assembleur
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 5 Mar 2024 - 18:54 par kenneth
» Meurtre à Grande Vitesse
Dim 25 Fév 2024 - 5:09 par Iurius
» ORIC-1 sur LE BON COIN
Ven 23 Fév 2024 - 23:01 par Mcar
» ORIC ATMOS sur LE BON COIN
Dim 4 Fév 2024 - 12:06 par kiwilevrai
» Problème d'affichage des couleurs avec un Oric Atmos
Sam 27 Jan 2024 - 1:26 par pierbail
» Bienvenue dans le Forum des Oriciens
Mar 9 Jan 2024 - 12:33 par Dom50
» Rencontre avec Laurant Weill, co-fondateur de Loriciel, et mon garçon de 12 ans
Ven 29 Déc 2023 - 14:13 par Arcade-des-Monts
» Bonnes fêtes
Mar 26 Déc 2023 - 10:21 par Dom50
» Murders in Venice / Meutres à Venise
Sam 18 Nov 2023 - 22:44 par retroric
» Un clavier PS/2 pour tester un ORIC
Dim 27 Aoû 2023 - 9:49 par Voyageur
» Disquette 3" Sedoric
Mar 1 Aoû 2023 - 14:22 par AtomeX
» faire un 6502 avec des phototransistor
Dim 16 Juil 2023 - 17:26 par Voyageur
» Oricutron linux et DSK
Jeu 29 Juin 2023 - 18:34 par Voyageur
» No Problem !
Dim 25 Juin 2023 - 17:53 par Voyageur
» MONASM pour emulateur ORIC
Lun 12 Juin 2023 - 18:31 par Gliou