routine 3D ultra-performante pour 6502

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar du membre
Mokona
Messages : 510
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: routine 3D ultra-performante pour 6502

Message par Mokona » 15 janv. 2020 23:54

__sam__ a écrit :
10 janv. 2020 12:39
Oui, et on retrouve les multiplications par 8, qui bien que plus rapides que la multiplication en général, restent plus lentes que pas de multiplication du tout! (cf photo plus haut). Avec les conventions du programmes VG on aurait:
Mince j'avais loupé la réponse. Effectivement, j'avais loupé la différence. Je vais regarder de plus près pourquoi ça marche. Merci.

joaopa
Messages : 496
Enregistré le : 14 sept. 2013 12:17

Re: routine 3D ultra-performante pour 6502

Message par joaopa » 18 janv. 2020 18:30

__sam__ a écrit :
09 janv. 2020 18:21
On peut cependant faire un peu mieux comme cela a été montré durant la Forever-Party de l'an dernier: http://www.logicielsmoto.com/phpBB/view ... ?f=3&t=595
Est-ce que cet algo permet de paver le plan avec des cercles?
https://fr.wikipedia.org/wiki/Algorithm ... d%27Andres
Sinon, son intérêt est limité.

__sam__
Messages : 5084
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ » 18 janv. 2020 22:01

j'en parle dans le lien que tu as cité: http://www.logicielsmoto.com/phpBB/view ... 5725#p5725, et non ce ne sont pas des cercles d'Andres, ni des cercles de Bresenham (qui laissent aussi des trous, les plus savants diront un effet de moiré), c'est autre chose dont l’intérêt de de tracer des cercles plus rapidement et plus facilement sur 8bits que les autres algorithmes. Il a aussi la particularité, contrairement aux autres, de faire des cercles de précisément un pixel de large là ou avec les autres les cercles sont tous un peu pâteux et couvrent parfois 2 pixels en hauteur ou en largeur. C'est d'ailleurs cette particularité qui l'empêche de couvrir le plan quand on augmente le rayon de 1 pixel à la fois.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

JiBé
Messages : 6
Enregistré le : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé » 26 janv. 2020 10:17

__sam__ a écrit :
09 janv. 2020 18:21
JiBé a écrit :
09 janv. 2020 15:42
Le plus efficace pour tracer un cercle est certainement l'algo de Bresenham dont une implémentation en assembleur 6502 est disponible ici.
On peut cependant faire un peu mieux comme cela a été montré durant la Forever-Party de l'an dernier: http://www.logicielsmoto.com/phpBB/view ... ?f=3&t=595
Je n'ai pas regardé en détails .. mais si ça marche c'est vraiment impressionnant !!
Se dire qu'en 2019 on puisse encore trouver des optims sur ce genre d'algo .. c'est juste hallucinant !!
Merci pour le partage.

JiBé
Messages : 6
Enregistré le : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé » 26 janv. 2020 10:33

6502man a écrit :
15 janv. 2020 23:06
Tu à codé un exemple sur oric pour voir ce que cela donne ?
Oui :)

Dans la pièce jointe: 3 fichiers TAPs :
  • glOric_txtDemo_2019_01_26.tap : est une démo d'un texte rendu en ascii art ("Merci René" le mec qui m'a vendu mon premier Oric)
  • glOric_hrsDemo_2019_01_26.tap: est une démo d'un rendu en hires mode
    Et en exclusivité sur system-cfg.com : un échantillon des dernières features ajoutées (clipping et zbuffer) qui ouvrent la porte à la 3D immersive:
  • glOric_lrsDemo_2019_01_26.tap
Concernant cette dernière démo, l faut savoir qu'elle n'est pas encore optimisée. Les fonctions de clipping et de z-buffering viennent juste d'être introduites, elles sont encore codées en C non optimisée. Il y a une grosse marge de gain sur les performances.

Les démos comportent deux parties:
  • une intro où la caméra est animée automatiquement,
  • une phase interactive où l'utilisateur peut interagir en temps-réel sur la position de la caméra
les touches de déplacements 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
glOric_Demo_2019_01_26.zip
3 petites démos d'utilisation de glOric.
(23.9 Kio) Téléchargé 15 fois

__sam__
Messages : 5084
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ » 26 janv. 2020 11:02

Ca marche bien, et effectivement la dernière est un peu plus lente que ses consœurs.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

JiBé
Messages : 6
Enregistré le : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé » 02 mars 2020 21:38

Coucou .. après optimisation de la rasterization et le passage à la couleur ça donne à peu près ça sur Oricutron:

Image

Pour ceux qui veulent tester:
PopulateMeCozAmFast.zip
Démo 3D immersive en couleur sur Oric
(8.86 Kio) Téléchargé 11 fois

__sam__
Messages : 5084
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ » 02 mars 2020 22:07

Bravo, c'est zoli (je suivais ça en parallèle sur le forum de defence-force). :D
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Avatar du membre
Xavier_AL
Messages : 1000
Enregistré le : 06 déc. 2017 20:30

Re: routine 3D ultra-performante pour 6502

Message par Xavier_AL » 02 mars 2020 23:24

:lol:

Zut, encore un truc qui va nous faire rallumer la lampe de chevet en disant…
"Comment qui zont fait !"...

Code magique, mystérieux et frustrant… et même avec le code, on répètera "Mais comment qui zont fait !"...

Bon, on ne peut sûrement pas faire ça sur ZX81... donc, ça me rassure.
:mrgreen:

Avatar du membre
Mokona
Messages : 510
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: routine 3D ultra-performante pour 6502

Message par Mokona » 03 mars 2020 00:08

Impressionnant.

Avatar du membre
Falkor
Messages : 1083
Enregistré le : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: routine 3D ultra-performante pour 6502

Message par Falkor » 03 mars 2020 09:20

Très chouette !

JiBé
Messages : 6
Enregistré le : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé » 04 mars 2020 21:47

Xavier_AL a écrit :
02 mars 2020 23:24
:lol:
"Comment qui zont fait !"...
:D :D
Bah faut juste aller regarder le code .. qui est encore un peu sale pour l'instant ..
Mais en attendant une release officielle dans la branche master, toutes les sources de la démo sont déjà disponibles dans la la branche develop

Répondre