Welcome, Guest. Please login or register.


Author Topic: Fraktálok assemblyben (Read 6221 times)

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 68.0.3440.106 Chrome 68.0.3440.106
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #75 on: 2018.September.14. 20:23:20 »
Kísérletek Julia-halmazzal:
http://ep.lgb.hu/jsep/demo/?disk=http%3A%2F%2Fpovi.uw.hu%2Fjul8.com&diskhack=load&autostart=yes&mem=128

Kb. 2.8 frame / sec

Geconak köszönet az LPT-ért

hasonló effekt C64-en:
https://youtu.be/wAZ5Nk_ShGU?t=206

kicsit, mintha ott gyorsabb lenne
« Last Edit: 2018.September.14. 20:36:02 by Povi »
*** Speicherplatz zu klein

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 687
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 12.17 Opera 12.17
    • View Profile
Re: Fraktálok assemblyben
« Reply #76 on: 2018.September.14. 21:03:13 »
hasonló effekt C64-en:
https://youtu.be/wAZ5Nk_ShGU?t=206

kicsit, mintha ott gyorsabb lenne
Egyrészt a felbontás 80*50-es, és az effekt ennél lényegesen kisebb területen jelenik meg. Másrészt egyáltalán nem biztos, hogy nem tömörített animáció. Én legalább is el tudom képzelni, hogy viszonylag egyszerű algoritmussal is lehetséges ilyen alacsony felbontású mozgóképet tárolni. Mondjuk nem fogok megpróbálni utána járni.

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 68.0.3440.106 Chrome 68.0.3440.106
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #77 on: 2018.September.14. 21:39:56 »
Egyrészt a felbontás 80*50-es, és az effekt ennél lényegesen kisebb területen jelenik meg.
Ahogy nézem, ott is ugyanakkora a felbontás, a barna "kör" 62x50 pixeles, én 64x48-at jelenítek meg.
Viszont a C64 verzió nagyon pontatlan, a külső barna körnek sokkal inkább kör alakúnak kéne lennie, nem pedig ilyen szögletesnek, szóval valahogy ők valamit nagyon máshogy számolnak :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.92 Chrome 69.0.3497.92
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #78 on: 2018.September.17. 09:39:41 »
Kísérletek Julia-halmazzal:
http://ep.lgb.hu/jsep/demo/?disk=http%3A%2F%2Fpovi.uw.hu%2Fjul8.com&diskhack=load&autostart=yes&mem=128

Kb. 2.8 frame / sec


Közben gyorsítottam egy kicsit rajta (a link maradt ugyanaz), most már 3.21 FPS átlagosan, vagyis a 72 frame-et 22.46 sec alatt rajzolja ki (az eddigi 25.855 helyett)

még kb. 10%-ot lehetne gyorsítani, ha az iterációt lejjebb viszem, a C64 demóban 8 színt használnak, én 10-et.
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3491
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 62.0 Firefox 62.0
    • View Profile
    • http://lgb.hu/
Re: Fraktálok assemblyben
« Reply #79 on: 2018.September.17. 10:49:11 »
Közben gyorsítottam egy kicsit rajta (a link maradt ugyanaz), most már 3.21 FPS átlagosan, vagyis a 72 frame-et 22.46 sec alatt rajzolja ki (az eddigi 25.855 helyett)

még kb. 10%-ot lehetne gyorsítani, ha az iterációt lejjebb viszem, a C64 demóban 8 színt használnak, én 10-et.

Egy fontos dolog, az JSep nem emulalja azt, hogy a video memoriaba irni (vagy onnan olvasni, stb) az lassabb, mint nem videomemoriaba. Tehat valodi gepen + jobb emulatoron (ep128emu) valoszinu nem pont ugyanez lenne az eredmeny. Igaz, gondolom sok kulonbseg azert nem lenne, ha nem olyan hatalmas mennyisegu adatot irsz adott ido alatt, illetve, nyilvan nem is ez viszi el az ido nagy reszet amugy sem, hanem a szamitas :)

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.92 Chrome 69.0.3497.92
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #80 on: 2018.September.17. 13:14:32 »
Egy fontos dolog, az JSep nem emulalja azt, hogy a video memoriaba irni (vagy onnan olvasni, stb) az lassabb, mint nem videomemoriaba. Tehat valodi gepen + jobb emulatoron (ep128emu) valoszinu nem pont ugyanez lenne az eredmeny. Igaz, gondolom sok kulonbseg azert nem lenne, ha nem olyan hatalmas mennyisegu adatot irsz adott ido alatt, illetve, nyilvan nem is ez viszi el az ido nagy reszet amugy sem, hanem a szamitas :)

jaja, az lehet, de az időket ep128emu-val mértem :-)
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3491
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 62.0 Firefox 62.0
    • View Profile
    • http://lgb.hu/
Re: Fraktálok assemblyben
« Reply #81 on: 2018.September.17. 14:20:00 »
jaja, az lehet, de az időket ep128emu-val mértem :-)

Ja, oke, akkor nem szoltam :D

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.92 Chrome 69.0.3497.92
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #82 on: 2018.September.18. 09:29:16 »
Közben gyorsítottam egy kicsit rajta (a link maradt ugyanaz), most már 3.21 FPS átlagosan

Azóta tegnap csendben föltornáztam 3.42 FPS-re (nincs fönt a honlapon az a verzió).
Aztán otthon megnéztem igazi gépen, és sokkal gyorsabbnak tűnt, mint emulátoron...
Aztán rájöttem, hogy az otthoni gép alapból kikapcsolja a RAM várakozást, szóval egy OUT 191,12-vel már emun is fölszökött a sebesség átlag 3.98 FPS-re!!! :-D

Ez már eléri a C64 verzió sebességét, szóval lassan lehet köré demo-t építeni :-)
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 6633
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 68.0.3440.106 Chrome 68.0.3440.106
    • View Profile
    • Honlapom
Re: Fraktálok assemblyben
« Reply #83 on: 2018.September.18. 14:21:14 »
érdekes lenne karakteres üzemmódban, ahol a karakter nem 1 pixelt jelentene hanem mondjuk egy színátmenet (gracha módban).
esetleg erre kihegyezni a fraktár generátort (tehát nem 1 pixelt generál hanem eleve egy ilyen gradiens pixelt)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7216
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 62.0 Firefox 62.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Fraktálok assemblyben
« Reply #84 on: 2018.September.18. 20:34:37 »
OUT 191,12-vel már emun is fölszökött a sebesség átlag 3.98 FPS-re!!! :-D
A POKE 56,akármennyi, talán 201 meg a megszakításokat kapcsolja ki, attól még gyorsabb lehet. Hát még ha Zzzippel lenne fordítva a program... Ja, azt Assemblyben nem lehet. :D

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #85 on: 2018.October.10. 14:44:52 »
75 mp (1:15) 64 iterációval úgy, hogy a négyzetre emelés egy 16384 elemű (32kB-os) táblázatból van, így már nem fut 128kB RAM-mal.
A táblázat generálása 1.7 mp.
No, az István féle LPT trükkel nyertem egy szegmenst, így már elég a 128kB RAM.
Közben kisebb optimalizációkkal lement 62.41 sec-re az idő (ebben benne van a táblázatok generálása is, és emlékeim szerinte a 75 mp-et még out 191,12 nélkül mértem).

Viszont ma újabb fejlemény:
a 2xy = x^2 + y^2 - (x-y)^2 azonosság miatt azt a szorzást, ami az iterációban kiszámolja a 2*r*i értékét, kicserélhető csak összeadásra és négyzetre emelésre (ami ugye meg táblázatból jön). Így már 47.19 sec (és még nincs kioptimalizálva, csak megnéztem, működik-e), MAXITER = 64 még mindig.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #86 on: 2018.October.11. 16:27:15 »
na, sikerült az álom fél perc alá leszorítani... 29.78 sec! :-) 64 iterációval!
http://ep.lgb.hu/jsep/demo/?disk=http%3A%2F%2Fpovi.uw.hu%2Fmfx.com&diskhack=load&autostart=yes&mem=128

128 iterációval is csak 41.58 sec!

az ábra nem pont ugyanaz lesz, mint amikor szorzással számolom az i * r-t, szerintem most pontatlanabb, mert három négyzetre emelésből jön a 2ri, és ezért összeadódnak a kerekítési hibák.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1651
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Fraktálok assemblyben
« Reply #87 on: 2018.October.11. 17:02:12 »
példaképpen egy belezoom-olt állapot (50x zoom a kezdőképernyőhöz képest):

szerintem nem rossz (mondjuk azért itt már látszik egy-két pixelhiba), a max. zoom, amit elvisel, az 100x zoom, ott már a szomszédos vertikális pixelek távolsága megegyezik a 16 bites fixpontos szám (Q2.13) felbontásával
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5022
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 62.0 Firefox 62.0
    • View Profile
Re: Fraktálok assemblyben
« Reply #88 on: 2018.October.12. 09:47:41 »
na, sikerült az álom fél perc alá leszorítani... 29.78 sec! :-) 64 iterációval!
Szép teljesítmény :)