Jump to content
Jagware
Sign in to follow this  
GT Turbo

Une belle bête incomprise : le blitter

Recommended Posts

GT Turbo    3

Je sais comment optimiser 'en profondeur', par contre j'ai besoin d'un petit coup de pouce de ......

 

 

 

On se revoit quand la routine sera optimisé héhé !!

 

 

 

 

 

GT Taillé pour gagné !! ;)

Share this post


Link to post
Share on other sites
GT Turbo    3

Un big THANKS to Azrael pour l'optimisation, on commence a sauver les meubles !! On repasse la barre des 32 !! :yes:

 

 

 

Grace a lui, la routine principale est passé de 22 lignes a 11, et je peux encore faire du nettoyage.

 

 

 

 

 

GT aidé par Azrael !! :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3

Azrael m'a encore passé des optims (Pas encore faite ! :wacko: ), par contre avec ces chiffres cela ne parle pas beaucoup donc, essais réel, j'ai une routine 3d (3 minutes de couper coller, c'est sur c'est que du 68000 pour l'instant mais vu la vitesse de devellopement de cette routine, on va pas se plaindre !! Qui a dit que l'assembleur était pas portable ? Je n'ai modifié AUCUNE ligne de la routine Falcon ! :D)

 

 

 

Donc mon premier essais, c'est 3d fil de fer routine Gpu, ensuite peut etre tracé de ligne au blitter puis on va passer sur la routine de polygones, je posterais les essais comme cela on pourra reellement voir ce que cela donne !!

 

 

 

 

 

GT Motivé a mort !! ;)

Share this post


Link to post
Share on other sites
GT Turbo    3

Voila le premier :

 

 

 

la routine 3d c'est du 68000, c'est une routine devellopé par Azrael.

 

 

 

La routine de ligne c'est une routine de tracé au Gpu.

 

 

 

Option passe du mode auto au mode manuel, en mode manuel (mode par défaut au lancement), fleche et Fire A et B pour jouer sur les 3 axes. diese et etoile pour arreter le code.

 

 

 

Je voulais agrandir encore plus l'objet mais n'ayant pas de clipping cela plante

 

 

 

[pfs]2-disk_7.zip[/pfs]

 

 

 

 

 

GT ;)

 

 

 

Edit : P.S. : Azrael vient de ma passer une nouvelle routine de ligne, on va essayer cela !!

Share this post


Link to post
Share on other sites
GT Turbo    3

Et nous revoila (Azrael et moi meme), Azrael m'a passé hier une nouvelle routine de ligne pour le remplissage, on passe a 37 polygones et la routine est deux fois plus courte !!

 

 

 

On essaie de règler un probleme de selection de tableau et après on rebalance un exemple mais face pleine !!

 

 

 

GT Perdu dans mes tableaux !! ;)

 

 

 

Edit : Azrael vient de me faire un joli dessin, je suis plus perdu dans mes tableaux !! L'exemple a venir très prochainement !! :yes:

Share this post


Link to post
Share on other sites
SCPCD    0

J'ai essayé ton prog ;)

 

Je n'arrivais pas à le lancé mais en fait, c'est moi qui n'envoyé pas le prog avec la bonne commande :wacko:

 

 

 

J'ai remarqué qu'il y avait un(ou 2) pixel(s) qui restait figé au milieu de l'ecran je sais pas si c'est normal ou pas...

 

 

 

Sinon, OUAOU !!! la fluidité !!! en 68000 en plus !!

 

 

 

Vivement la version face pleine ! :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3
SCPCD :


J'ai remarqué qu'il y avait un(ou 2) pixel(s) qui restait figé au milieu de l'ecran je sais pas si c'est normal ou pas...





C'est normal, j'avais pas trop l'envie de debugger !! :wacko:



SCPCD :


Sinon, OUAOU !!! la fluidité !!! en 68000 en plus !!





Oui la routine de calcul des points c'est du 68000, recopie exacte d'une routine Ste / Falcon !! Juste le tracé de ligne, c'est la routine de calculs des points au Gpu, qui affiche les points au lieu de les stocker, c'était juste pour un essais. Par contre au Dsp la précision de la routine 3d sera plus élévéé, on l'avait limité pour des raisons de vitesse, mais avec le Dsp on peut utiliser des précisions deux fois plus elevees sans perdre un cycle !!



SCPCD :


Vivement la version face pleine ! :yes:





Elle risque d'arriver très vite ! Nous (Azrael et moi meme) sommes en plein dedans, hier soir on a debugger et fini la routine, il me reste un peu de rangement dans les registres car 300 lignes de code sans variable c'est terriblement illisible !!



Et un peu d'optimisation, et après on attaque de plein fouet avec faces pleines et routine 3d au Dsp !!



GT Pour la Fast 3D sur Jaguar :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3
Fredifredo :


Je peux commander un moteur 3D pour un jeu de mecha ?





Toute commande de ce type est a adresser au gars qui passe son temps a courir après les Schtroumps !! Hihi !! ;)





GT Turbo B)

Share this post


Link to post
Share on other sites
GT Turbo    3

:yes: !! La routine de poly grimpe a 40 polygones, pour situer la chose avec 3, allez histoire qu'on voie plus rien, avec 4 polygones on remplit un écran 320*200, cela vous permet de vous situer.

 

 

 

Avec la nouvelle routine de ligne a Azrael, j'ai carrement pu degager un morceau de code qui ne servait plus a rien !!

 

 

 

Le clipping gauche et droit est implementé, ce soir je finis celui du bas et Azrael s'occupe de celui du haut.

 

 

 

J'ai aussi profité de 20 minutes pour convertir la routine 3d 68000 en routine Dsp, faut encores que je fasses les essais et le debuggage mais la routine est écrite !!

 

 

 

GT Chaud !! ;)

Share this post


Link to post
Share on other sites
cts    0

Vous utilisez quoi comme polygone de référence ? (taille ?)

 

 

 

À l'époque, y'a eu un début de benchmark sur AtariAge mais pas moyen de retrouver le sujet en question (en plus ça à plutôt changé depuis ;))

 

 

 

C'était un bench avec 3 différentes tailles de poly, puis une distinction flat/gouraud/texturé.

 

 

 

Pis la jag remplis plus vite un poly étalé horizontalement qu'un polygone de même surface, mais étalé verticalement...m'enfin, j'me comprends...

 

 

 

 

 

alors ?

Share this post


Link to post
Share on other sites
Fredifredo    0

argh...

 

 

 

J'ai trouvé ceci :

 

 

 

http://www.atariage.com/forums/index.php?showtopic=19187

 

 

 

-------------------------------------------------------------------

 

sinon quelques trucs pertinants :

 

 

 

http://www.atariage.com/forums/index.php?s...=52340&st=0

 

 

 

trucs de collisions :

 

http://www.atariage.com/forums/index.php?showtopic=64182

 

 

 

mapping mais très général :

 

http://www.atariage.com/forums/index.php?s...=53918&st=0

 

 

 

sur les résolutions avec code de mathias :

 

http://www.atariage.com/forums/index.php?showtopic=51325

 

 

 

et un truc sur Quake qui sert à rien :

 

http://www.atariage.com/forums/index.php?s...=43179&st=0

 

 

 

ps : ya des trucs en rapports avec des sujets déjà créés je sais ... :)

Share this post


Link to post
Share on other sites
GT Turbo    3
cts :


Exactement ça !



Ça donne une référence pour des benchs, Merci Fred !





Merci pour l'info comme cela je pourrais comparer, mais j'ai juste vite survoler la chose et il y a un point ou on gagne deja dessus, le clipping nous coute rien sur des lignes assez grandes !! On profite d'une boucle de synchro par rapport au blitter pour couper les lignes, et Azrael a du finir sa routine de clipping qui nous autoriserait a faire la meme chose pour des petites lignes, pour quelques cycles seulement !!



GT ;)

Share this post


Link to post
Share on other sites
SebRmv    2
J'ouvre un sujet sur le blitter, c'est un des points très fort de la Jag, aussi bien coté puissance que l'étendu de ces capacités peut rendre beaucoup de service.

Avant certaines questions et réponses techniques, quelqu'un aurait une idée de ce que veut dire ceci (Trouvé dans la doc officielle Atari) :

Single scan of polygon fills

Parce que sauf erreur de ma part on parle bien de remplissage de polygones, mais le single scan me perturbe, ca veut dire quoi ?

GT En train de cherché a comprendre :wacko:

 

pour répondre en echo à ma relance d'un autre topic :P

single scan = ligne de balayage

 

en fait, si vous regardez votre routine de polygone, vous avez une boucle genre

 

pour chaque segment [M,N] 
  tracer "virtuellement" le segment et remplir soit le tableau xmin, soit le tableau xmax

 

et j'imagine après

 

for y = ymin to ymax
  ...
  lit xmin et xmax pour y
  trace la ligne à l'ordonnée y de xmin à xmax
  ...
done

 

la deuxième boucle "for" utilise la technique de tracé par ligne de balayage

 

mais le hic dans l'histoire, c'est que ça sert absolument à rien d'avoir deux boucles for!

 

en effet, on peut aussi se débrouiller pour avoir un code comme suit:

 

for y = ymin à ymax
  ...
  {calculer xmin et xmax}
  ...
  {tracer la ligne de xmin à xmax}
  ...
done

 

et on a ainsi viré le stockage des points en insérant le code de tracé

(ça ne marche évidemment que pour les polygones convexes ;))

 

(ce bout de) la doc Atari devrait maintenant prendre tout son sens, non :P ?

 

edit: j'ai corrigé maintenant que je me suis souvenu de l'algo classique des démomakers des années 90

ça devrait avoir plus de sens maintenant

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×