Page 2 sur 3
Re: Démo "Dog"
Publié : jeu. 16/mai/2019 18:49
par Ollivier
Modifiez la recette :
Rouge : 35%
Vert : 40%
Bleu : 25%
Code : Tout sélectionner
Procedure GrayGradient(Color.I)
R = Red(Color)
G = Green(Color)
B = Blue(Color)
M = ((35 * R) + (40 * G) + (25 * B) ) / 100
ProcedureReturn RGB(M, M, M)
EndProcedure
Re: Démo "Dog"
Publié : jeu. 16/mai/2019 21:05
par crisot
C'est marrant de revoir les effets de déformations / tracé laser / zoom vertical.
Culture: Saviez vous que ces effets se faisaient sur Amiga sans utiliser le moindre temps machine? Ni le 68000, ni le Blitter (puce "d'accélération" graphique). Et c'était pourtant ultra impressionnant à l'époque.
C'était juste une capacité de nombreux 8 / 16 bits de l'époque, grâce au Copper dans le cas de l'Amiga, de choisir quelle ligne de la mémoire vidéo devait être affichée pour chaque ligne de l'écran. Ainsi la ligne 0 du moniteur n'était pas forcément la ligne 0 de l'Amiga, ni la ligne 1 du moniteur la ligne 1 de l'Amiga, et ainsi de suite. On pouvait choisir quelle ligne de la mémoire vidéo était affichée pour chaque ligne du moniteur. Ainsi donc on pouvait étirer une image en hauteur, la retourner, ou la déformer ainsi, parfaitement gratuitement en temps machine.
En fait, l'image qui s'animait à l'écran était totalement fixe en mémoire vidéo.
Et ce ne sont pas les seuls effets à avoir abusé de ces artifices. L'un des plus impressionnant étant les "Big Balls".
Re: Démo "Dog"
Publié : ven. 17/mai/2019 16:35
par djes
crisot a écrit :C'est marrant de revoir les effets de déformations / tracé laser / zoom vertical.
Culture: Saviez vous que ces effets se faisaient sur Amiga sans utiliser le moindre temps machine? Ni le 68000, ni le Blitter (puce "d'accélération" graphique). Et c'était pourtant ultra impressionnant à l'époque.
C'était juste une capacité de nombreux 8 / 16 bits de l'époque, grâce au Copper dans le cas de l'Amiga, de choisir quelle ligne de la mémoire vidéo devait être affichée pour chaque ligne de l'écran. Ainsi la ligne 0 du moniteur n'était pas forcément la ligne 0 de l'Amiga, ni la ligne 1 du moniteur la ligne 1 de l'Amiga, et ainsi de suite. On pouvait choisir quelle ligne de la mémoire vidéo était affichée pour chaque ligne du moniteur. Ainsi donc on pouvait étirer une image en hauteur, la retourner, ou la déformer ainsi, parfaitement gratuitement en temps machine.
En fait, l'image qui s'animait à l'écran était totalement fixe en mémoire vidéo.
Et ce ne sont pas les seuls effets à avoir abusé de ces artifices. L'un des plus impressionnant étant les "Big Balls".
Only Amiga makes it possible !
Sur d'autres machines (y compris sur PC), on pouvait aussi se caler sur la position du spot et changer les registres en temps réel. On arrivait même parfois à avoir une précision supérieure au copper (moins de 16 pixels), de quoi faire de belles démos à la «Copper Master» mais sans copper !
Re: Démo "Dog"
Publié : ven. 17/mai/2019 16:42
par SPH
Re: Démo "Dog"
Publié : ven. 17/mai/2019 19:55
par crisot
djes a écrit :
Only Amiga makes it possible !
Sur d'autres machines (y compris sur PC), on pouvait aussi se caler sur la position du spot et changer les registres en temps réel. On arrivait même parfois à avoir une précision supérieure au copper (moins de 16 pixels), de quoi faire de belles démos à la «Copper Master» mais sans copper !
De mémoire en OCS/ECS un cycle du copper permettait de changer une couleur sur une ligne tous les 8 pixels, on tombait à 4 pixels sur machines AGA.
Re: Démo "Dog"
Publié : ven. 17/mai/2019 20:38
par djes
J'avoue que je ne me souviens plus très bien pour la résolution du copper (je vais regarder tiens) ! Sinon, pas de combat Amiga/PC, j'aime trop l'Amiga, je ne veux pas me faire l'avocat du diable. C'était juste une remarque comme ça, aussi pour faire remarquer qu'à l'époque sur PC, on pouvait avoir un accès exclusif à la carte graphique, ce qui rendait ce genre d'astuce possible, contrairement à aujourd'hui où on se fait piquer le CPU par l'OS.
Edit: oui, tu as raison, c'est bien 8 pixels si on fait des move à la suite. L'article sur le zoom hardware (excellent au passage!)
http://www.stashofcode.fr/zoom-hardware ... sur-amiga/
Re: Démo "Dog"
Publié : ven. 17/mai/2019 21:48
par crisot
Ah mais je triche, j'utilise/code encore, c'est donc bien plus frais dans ma mémoire.
Re: Démo "Dog"
Publié : ven. 17/mai/2019 22:05
par djes
Re: Démo "Dog"
Publié : dim. 19/mai/2019 18:19
par SPH
Ar-S a écrit :Le 1er effet aussi est bien (le genre de déformation reflet) mais tu ne devrais pas le répéter. (un seul reflet suffirait).
En effet, je me suis aperçu sur une resolution plus elevé qu'un seul reflet suffisait sinon ca faisait moche.
J'ai refait un morceau du code pour etre plus clair.
Et j'ai rajouté un effet.
A ceux qui ne l'on pas vu, retelechargez la
Re: Démo "Dog"
Publié : lun. 20/mai/2019 12:11
par crisot
Fais ton effet proportionnel à la résolution.
Re: Démo "Dog"
Publié : lun. 20/mai/2019 13:17
par SPH
crisot a écrit :Fais ton effet proportionnel à la résolution.
C'est ce que j'ai a peu pret fait :
Re: Démo "Dog"
Publié : lun. 20/mai/2019 15:19
par crisot
Je veux dire, ta déformation. Il te faut un facteur proportionnel à la résolution dans tes cos/sinus. Ce n'est pas le cas.
Par exemple quelque chose comme:
Code : Tout sélectionner
u=Cos(Radian((yyy+i*3)*ddh*0.0005))*ry+Sin(Radian((xxx+i*2)*ddh*0.0005))*rx
(en gros)
Re: Démo "Dog"
Publié : lun. 20/mai/2019 16:46
par SPH
Pour que tout soit proportionnel, il faudrait aussi redimentionner l'image BMP et j'ai pas envie de me lancer dans cette galere (meme si c'est pas compliqué)
Re: Démo "Dog"
Publié : lun. 20/mai/2019 22:54
par Ollivier
@SPH
Sans avoir encore pu tester, je lis ta dernière remarque et je me dis que ce n'est pas si compliqué que ça de redimensionner un BMP. Je crois qu'il existe une fonction ResizeImage() avec une option pour choisir si on veut pixeliser ou lisser.
https://www.purebasic.com/documentation ... image.html
Re: Démo "Dog"
Publié : mar. 21/mai/2019 15:49
par crisot
Adapter son code aux résolutions c'est quand même le minimum syndical. Y'a beaucoup de gens qui utilisent des portables en 1366x768 et de l'autre côté les moniteurs 3860x2160 ne manquent pas non plus.