Welcome, Guest. Please login or register.


Author Topic: Grafikai trükkök (Read 205791 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #45 on: 2013.April.12. 23:47:24 »
Hát elég határeset ... IstvanV nem egy kókler, biztos nem lehet azt az oszlop hozzáadó+lpt hekkelő kódot nagyságrendileg csökkenteni időben (biztos nem teljesen rossz már az most sem), vagyis az bizony 40% ... Két vacak pixeloszlop frame -enként ... és ráadásul egy folyamatos memóriatérképről másolja, nem játékokhoz szükséges, karakterszerű blokkokból rakja össze. De még ha ez nem is számít, ez akkor is 30-40 % -a a rendelkezésre álló időnek.

Ez jelenleg frame -enként 400 pixel ( mindket képre egy plussz pixel oszlop ) megmozgatása ... ezt még duplázni lehet (vagy már lehet most is úgy van) azzal ha a forrás grafika is megvan eltoltan is letárolva, akkor 800 pixel per frame.

800 pixel tehát 40% processzoridő.

16 darab 16X16 pixeles sprite = 4096 pixel ... amit nem csak kirakni kell, hanem el is kell menteni ugyanennyi pixelt alóluk ... Naggyon - naggyon cipőkanalas dolog ez az 50 FPS -sel valami jatékgrafikat kirakni téma EP -n ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14775
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #46 on: 2013.April.13. 00:06:39 »
Quote from: Z80System
Naggyon - naggyon cipőkanalas dolog ez az 50 FPS -sel valami jatékgrafikat kirakni téma EP -n ...
Mondjuk továbbra se értem az 50 FPS mániát, 25-nek is bőven örülni kéne :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #47 on: 2013.April.13. 00:09:15 »
Quote from: Z80System
Ez jelenleg frame -enként 400 pixel ( mindket képre egy plussz pixel oszlop ) megmozgatása ... ezt még duplázni lehet (vagy már lehet most is úgy van) azzal ha a forrás grafika is megvan eltoltan is letárolva, akkor 800 pixel per frame.
Nem pixel, hanem byte oszlopot kell mozgatni, tehát 400 pixelt beléptetni egyszerre két pufferbe, az egyikben egy pixellel eltolva (amihez szükség van a következő oszlopra is). Ezen kívül a jelenlegi kód először két byte oszlopot egy átmeneti pufferbe másol, és utána ezt használja a rajzoláshoz; itt lehetne optimalizálni kevesebb másolással.
Egyébként C64-en ennél valamivel több időt igényel egy teljes karakteres képernyő (de nem a szín memória) mozgatása, még ciklus nélkül 1000 LDA/STA utasítással is. EP-n a nagyobb probléma a hardveres sprite rajzolás hiánya, ezért célszerűbb játékoknál 25 fps-re korlátozni a sebességet.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #48 on: 2013.April.13. 00:12:30 »
Quote
Mondjuk továbbra se értem az 50 FPS mániát, 25-nek is bőven örülni kéne
Amiket írni fogok, azokat úgy fogom készíteni, hogy (addig amíg az egy frame -be is beleférnek) lehessen egykönnyen változtatni, hogy hány frame -es legyen a működés.

Ha nem runtime paraméterként lesz bennük, akkor kapsz majd verziókat.

Es akkor majd te is kiprobálhatod, hogy milyen élménybeli különbség teljesen ugyanaz a dolog (sebességek megfelelően skálázva), de fele vagy harmada képfrissítéssel.

Akkor majd vagy te is megérted, vagy én fogok koppanni, hogy honnan is vettem én ezt az 50 FPS mániát ... Ha légből kapott (amit nem hiszek), akkor nagyon- nagyon régi fixációmat fogjuk orvosolni ... :)
Z80 System

Offline nyuzga

  • EP addict
  • *
  • Posts: 2304
  • Country: hu
Re: Grafikai trükkök
« Reply #49 on: 2013.April.13. 00:26:42 »
Quote from: IstvanV
16 színű, 928x200 méretű kép pixel felbontású vízszintes scrollozása 160x200 méretű ablakban, 50 fps sebességgel:
Nagyon jó. :smt023

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #50 on: 2013.April.13. 01:14:08 »
Csak azt nem értem, hogy

ha mondjuk 4 pixel oszlop a 30%,

akkor 12 pixel oszlop az 1 frame,

akkor 10 frame még mindíg csak 120 pixel oszlop, tehát úgy 12 frame (-nyi idő) a teljes képernyő kimásolása.

Akkor a sub hunter mennyi FPS -sel megy ?

És még sprite -okat is rajzol ...
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #51 on: 2013.April.13. 08:32:39 »
Nagyon jóóó lett :)
Majd megnézem ,hogy mennyivel megy  a Sub Hunter.
Amúgy a 25fps-es mozgatás is folyamatos, egyáltalán nem darabos.

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #52 on: 2013.April.13. 08:59:19 »
A Sub Hunter is 25 FPS-sel megy. :D

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: Grafikai trükkök
« Reply #53 on: 2013.April.13. 10:08:51 »
Quote from: IstvanV
16 színű, 928x200 méretű kép pixel felbontású vízszintes scrollozása 160x200 méretű ablakban, 50 fps sebességgel:


Jó lett! :-)
Viszont azt nem értem, miért foglalja le az összes szegmenst, akár 640kB, akár 1024kB RAM van a gépben... .-)
*** Speicherplatz zu klein

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #54 on: 2013.April.13. 11:22:39 »
Quote
A Sub Hunter is 25 FPS-sel megy. 
Hát ez az ...

Hogy van az hogy 2 pixelsor kimásolása az 0.3 frame idő,
de egy teljes képernyő kimásolása meg belefér 2 frame időbe, sprite -okkal, mindennel ?

Nekkem itt valami büdös ...
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #55 on: 2013.April.13. 12:46:38 »
Quote from: Z80System
Hogy van az hogy 2 pixelsor kimásolása az 0.3 frame idő,
de egy teljes képernyő kimásolása meg belefér 2 frame időbe, sprite -okkal, mindennel ?
Ez így nem igazán hasonlítható össze, mert:
- a "2 pixelsor kimásolása" valójáben nem annyira egyszerű (egy byte feldolgozása viszonylag sok utasítás), és még lehetne rajta optimalizálni is
- a "teljes képernyő" a Sub Hunter esetében kis méretű
- a Sub Hunter valójában nem is scrollozza a képet, hanem csak egyszerű 1-4 karakteres ismétlődő animált mintát rajzol ki PUSH utasításokkal (C64-en ez egy fix háttér lenne karakters módban, a karakterkészlet animációjával)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #56 on: 2013.April.13. 12:54:18 »
Quote from: Povi
Viszont azt nem értem, miért foglalja le az összes szegmenst, akár 640kB, akár 1024kB RAM van a gépben... .-)
Azért foglal le mindent, mert video szegmenseket csak így lehet foglalni. Természetesen utána a nem használt szegmenseket fel kellene szabadítani, de ez csak egy egyszerű és rövid idő alatt megírt demo, aminek nem az volt a célja, hogy "tökéletes" legyen, hanem csak az, hogy működjön. De a sok kritika miatt a forráskódot töröltem is. :oops: Majd ha lesz rá idő, feltöltök egy jobbban megírt változatot.

Offline Lacika

  • EP addict
  • *
  • Posts: 3212
  • Country: hu
    • http://www.ep128.hu
Re: Grafikai trükkök
« Reply #57 on: 2013.April.13. 13:26:05 »
Képet hogy tudunk konvertálni a scroll-rutinhoz?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10085
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Grafikai trükkök
« Reply #58 on: 2013.April.13. 16:30:29 »
Ez a scroll demó nagyon ász! :smt041
Olyat kéne még, hogy játékok screenshotos térképét etetni meg a scroll demóval, és azt görgetné jobbra-balra.
SPACE lenyomására nem éreztem különbséget.
Ha még a CPU 40%-át sem használja ez ki, akkor akár valami zene is szólhatna alatta? Esetleg lassabb scrollal, és némi zenével érdekes demó lehetne.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #59 on: 2013.April.13. 18:00:35 »
Quote from: Z80System
Hát ez az ...

Hogy van az hogy 2 pixelsor kimásolása az 0.3 frame idő,
de egy teljes képernyő kimásolása meg belefér 2 frame időbe, sprite -okkal, mindennel ?

Nekkem itt valami büdös ...
Hát valahogy úgy, hogy a hullámok nem másolva vannak, hanem fixen a kódba van ágyazva minden képernyőre kerülő bájt, a sprite-ok kicsik, és kb a 24x30-as kép 2/3-án zajlik a játék, és ott nincs bitművelet se 400 bájton, ja ,és azt nem néztem, hogy pixelenkénti scroll van benne, vagy byte-onkénti.