Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Betas et WIPs » Truc où ça tourne (81 réponse(s))
./REPRISE DU POST PRECEDENT (post n°38)   Marquer comme non lu.
Folco Ecrit le: Mardi 17 janvier 2006 à 17:42 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


intéressant en effet... ceci dit, je ne suis pas sûr que mon algo soit moins rapide...
d'une manière comme d'une autre, je vais parcourir tous les pixels, mais linéairement, sans me faire ch**r à passer par un algo de droite. Ca doit être dû au fait que mon algo est très spécifique (sprite 16*16 uniquement).
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°39   Marquer comme non lu.
LionelA Ecrit le: Mardi 17 janvier 2006 à 19:55 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


dans extgraph.h


//-----------------------------------------------------------------------------
// Arbitrary angle sprite rotating functions. Courtesy of Joey Adams. Slightly
// modified to fit the needs.
//-----------------------------------------------------------------------------
void RotateSprite8_R(unsigned char *srcSprite asm("%a0"),unsigned char *destSprite asm("%a1"),short height,short originX asm("%d1"),short originY asm("%d2"),long degreesClockwise asm("%d0")) __attribute__((__stkparm__));
void RotateSprite16_R(unsigned short *srcSprite asm("%a0"),unsigned short *destSprite asm("%a1"),short height,short originX asm("%d1"),short originY asm("%d2"),long degreesClockwise asm("%d0")) __attribute__((__stkparm__));
void RotateSprite32_R(unsigned long *srcSprite asm("%a0"),unsigned long *destSprite asm("%a1"),short height,short originX asm("%d1"),short originY asm("%d2"),long degreesClockwise asm("%d0")) __attribute__((__stkparm__));
void RotateSpriteX8_R(unsigned char *srcSprite asm("%a0"),unsigned char *destSprite asm("%a1"),short width,short height,short originX asm("%d1"),short originY asm("%d2"),long degreesClockwise asm("%d0")) __attribute__((__stkparm__));


mais je sais pas si c'est ca qui va bien pour toi :)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°40   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 17 janvier 2006 à 23:44 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Martial> Je pense que ton algo est effectivement moins rapide que si tu utilises Bresenham pour suivre la droite. La destination est parcourue linéairement dans les 2 cas, c'est l'algo pour parcourir la source qui est optimisé.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°41   Marquer comme non lu.
Sasume Ecrit le: Mercredi 18 janvier 2006 à 00:12 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Mais on n'est même pas obligé de bresenhamiser le parcourt...
La complexité de nos algos est la même, ce qui est important c'est de savoir en combien de cycles on obtient la valeur d'un pixel de sprite rotaté...
Avec la technique décrite sur les sites que j'ai indiqués, le coût est de deux additions.
Je crois que pour ta technique Martial, il y a des multiplications qui rentrent en jeu ?
    
./Post n°42   Marquer comme non lu.
Folco Ecrit le: Mercredi 18 janvier 2006 à 08:12 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


oui, 4 mulu par pixels...
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°43   Marquer comme non lu.
Jfg Ecrit le: Mercredi 18 janvier 2006 à 10:06 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


j'utilise la technique des additions pour positionner les tiles.
Kill Mario
    
./Post n°44   Marquer comme non lu.
Jfg Ecrit le: Jeudi 19 janvier 2006 à 22:38 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


(c'était pour dire que je connais la technique)
Je n'avais pas eu l'idée de l'appliqué à la rotation des sprites vu que de toute façon je comptais précalculer leurs rotations.

Là je vais reprogrammer le moteur d'affichage parceque pour l'instant c'est du bricolage et du coup c'est pas évident de détecter les collisions avec précisions. Je vous tiens au courant.
Kill Mario
    
./Post n°45   Marquer comme non lu.
Sasume Ecrit le: Vendredi 20 janvier 2006 à 09:44 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Tu comptes faire des tiles non-carrés ?
    
./Post n°46   Marquer comme non lu.
Jfg Ecrit le: Vendredi 20 janvier 2006 à 10:17 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


L'idée ma traversé l'esprit, mais non.
Kill Mario
    
./Post n°47   Marquer comme non lu.
Jfg Ecrit le: Lundi 30 janvier 2006 à 18:48 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


La détection des collisions marchent, et j'arrive à calculer une espèce de "normale" aux surfaces quand il y a collision ce qui me permetra de faire de bon rebonds =)

http://fpgforce.dyndns.org/~jyaif/Public-files/Ti-Screens/ROT_COLLIS.GIF
Kill Mario
    
./Post n°48   Marquer comme non lu.
limmt Ecrit le: Lundi 30 janvier 2006 à 19:15 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


joli :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°49   Marquer comme non lu.
Onur Ecrit le: Mercredi 1er février 2006 à 01:59 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Je te kiff.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°50   Marquer comme non lu.
FpgForce Ecrit le: Mercredi 1er février 2006 à 12:32 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

T'es mon idole.
    
./Post n°51   Marquer comme non lu.
Jfg Ecrit le: Mercredi 1er février 2006 à 14:44 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


merci merci #love#

N'empèche que j'en chie pour faire que la balle puisse glisser. :'(
Kill Mario
    
./Post n°52   Marquer comme non lu.
Sasume Ecrit le: Samedi 25 février 2006 à 21:08 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Ce n'est pas abandonné, j'espère ?
    
./Post n°53   Marquer comme non lu.
Jfg Ecrit le: Dimanche 26 février 2006 à 19:25 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Non, c'est pas abandonné.
D'ailleurs je viens aujourdhui de faire en sorte que les sprites soit rotatés en temps réel:
à chaque frame je calcul un tableau qui contient les coordonnées des pixels rotatés, comme ça pour rotater les sprites à afficher je n'ai qu'à lire ce tableau de cette façon:

void createSprite(SmallCoord t[16][16], unsigned short *src, unsigned short *dest) {
  memset(dest,0,16*2);
  short x,y;
  for (x=16;x--;) {
    for (y=16;y--;) {    
      if (t[x][y].x!=-1 && (src[ t[x][y].y ]&(0b1000000000000000>> t[x][y].x))) {
        dest[y] = dest[y]|(0b1000000000000000>>x);  
      }
    }
  }
}

Au début je calculais le tableau en question avec 2 multiplications par pixels, mais je vais passer à la technique par additions...

À part ça j'ai trop du mal avec les collisions, et c'est pour ça que je n'ai pas donné de nouvelles.




-Edité le Dimanche 26 février 2006 à 19:27 par JfG-
-Edité le Dimanche 26 février 2006 à 19:27 par JfG-
EDIT:smileys
-Edité le Dimanche 26 février 2006 à 21:49 par limmt-

voilà, le tableau qui contient les coordonnées rotatées est calculé avec des additions. Pour gagner un peu de vitesse, j'affiche maintenant moins de sprites:
http://fpgforce.dyndns.org/~jyaif/Public-files/Ti-Screens/SO1.GIF
Si ça vous chante d'essayer (en fait c'est pour faire une sauveguarde des sources :p)
-Edité le Dimanche 26 février 2006 à 22:14 par JfG-
Kill Mario
    
./Post n°54   Marquer comme non lu.
Sasume Ecrit le: Samedi 4 mars 2006 à 19:52 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Tu devrais coder la boucle de rotationnage des sprites en temps réel en assembleur pour être sûr d'avoir un max de rapidité.
Si tu ne connais pas l'ASM, poste ton code en C et je te donnerai un équivalent en ASM (en espérant que d'autre membres de cette communauté très soudée participent à son amélioration).
    
./Post n°55   Marquer comme non lu.
geogeo Ecrit le: Dimanche 5 mars 2006 à 12:27 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je peux aider mais dans la limite de mes compétences. :D
Sinon que pensez vous d'intégrer ce futur code à ExtGraph? D'ailleur depuis que lionel Debroux est parti, ça n'avance plus?
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°56   Marquer comme non lu.
Jfg Ecrit le: Dimanche 5 mars 2006 à 13:45 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Merci de te proposer. Voilà le code C:

là c'est du code pour savoir comment les 2 fonctions sont utilisées:
http://rafb.net/paste/results/T10IlW15.html

et là c'est le code à optimiser:
http://rafb.net/paste/results/pGtIgX40.html
(les 2 "commentaires" sont faux)

Geogeo> je pense que personne va utiliser un moteur comme ça, donc ça ne vaut pas le coup de
l'intégrér à Extgraph. Par contre je vais peut être faire une toute petite lib de mon coté pour le fun.

-Edité le Dimanche 5 mars 2006 à 14:20 par Jfg-
Kill Mario
    
./Post n°57   Marquer comme non lu.
Sasume Ecrit le: Dimanche 5 mars 2006 à 21:46 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Jfg> OK, je regarde ça :)

geoego> Je ne m'occupe plus d'extgraph depuis un bon moment. Depuis le départ de Lionel, effectivement, rien n'a bougé :(
    
  :: Index » Forum Ti68K » Betas et WIPs » Truc où ça tourne (81 réponse(s))
Pages : 3/5     « 1 2 [3] 4 5 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 54.28ms avec 18 requetes