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 de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: routine 3D ultra-performante pour 6502

Message par Mokona »

__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 : 512
Inscription : 14 sept. 2013 12:17

Re: routine 3D ultra-performante pour 6502

Message par joaopa »

__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 : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
JiBé
Messages : 13
Inscription : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé »

__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 : 13
Inscription : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé »

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é 183 fois
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
JiBé
Messages : 13
Inscription : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé »

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é 186 fois
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Xavier_AL

Re: routine 3D ultra-performante pour 6502

Message par Xavier_AL »

: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 de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: routine 3D ultra-performante pour 6502

Message par Mokona »

Impressionnant.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: routine 3D ultra-performante pour 6502

Message par Falkor »

Très chouette !
JiBé
Messages : 13
Inscription : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé »

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
JiBé
Messages : 13
Inscription : 30 déc. 2019 22:43

Re: routine 3D ultra-performante pour 6502

Message par JiBé »

Bonjour,

J'ai élaboré un système de raycasting hyper efficace pour machine Oric et je me suis fait conseillé par un des plus puissant demo maker de la scène Oric (Dbug) pour obtenir un rendu très rapide et les résultats commencent à être vraiment intéressants:

Les images suivantes sont un screencap d'un jeu Oric en cours de développement.

Image
Avatar de l’utilisateur
adnz
Messages : 213
Inscription : 10 janv. 2010 00:07

Re: routine 3D ultra-performante pour 6502

Message par adnz »

ho mais c'est génial ça :shock:
et ça serait donc possible pour 6809 aussi alors ? (sur les TO)
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: routine 3D ultra-performante pour 6502

Message par __sam__ »

Sur les TEO la mémoire vidéo est plus large (16ko vs 8ko), donc la couleur c'est chaud à faire sauf à utiliser l'entrelacement ligne R/ligne G/ligne B comme dans "Oh la belle bleue!". Je pense que c'est aussi ce qui est fait sur Oric.

Je suis passivement (lurker) le fil de discussion correspondant sur le forum dédié Oric depuis le début. Ce sera intéressant de voir ce que cela donnera in fine. Ne précipitons pas les étapes.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre