Welcome, Guest. Please login or register.


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

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #30 on: 2013.April.12. 13:56:04 »
Hát eddig az 50 FPS-ről beszéltél :D, és még sztem ezek a programok a 25 FPS-t se érik el, mégis szép a mozgásuk, a Sub Hunter 32x24-es screent használ, és nincs memóriafelezés, a képernyő mérete 12288 kb, ugye ebből kb 7 karakter magas a kijelző, de akár 8 is lehet, még 8 esetén is 8kb adatot kell kipakolni a képernyőre, szerencsére a dupla videolap segítségével ez ilyen lesz :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #31 on: 2013.April.12. 14:09:27 »
Quote from: geco
De ez már sokat lassít, nem, mert kellenek bit műveletek is a negyed karakter eltoláshoz?
Kellenek, de csak egy fél karakteres oszlopon (és az is csak az egyik képernyő pufferben, a másikat nem kell eltolni), és nem az egész képernyőn. Ehhez már elég gyors a Z80, 50 fps sebességnél is, de játéknál talán célszerűbb a 25 fps, mert akkor több idő marad sprite rajzolásra. A két képernyő puffer egyébként is hasznos, hogy villogás nélkül lehessen frissíteni a képet. 2*16K méretű puffer elég egy 40x25 karakteres képernyőhöz, és marad 384 byte (4.8 képernyő) az "ablak" mozgatására LPT módosítással. A sprite-okat egy képkockában csak az egyik képernyőn kell frissíteni.

"Spectrum méretű" 32x24 karakteres képernyőn talán megoldható a 4 színű, pixel felbontású scroll is, de az már nagyon sok memóriát pazarol (4 puffer), és másra nem nagyon marad idő vagy hely. Demónál azonban lehet értelme.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #32 on: 2013.April.12. 14:09:43 »
Quote
Hát eddig az 50 FPS-ről beszéltél ,
Hat ja, tesztelni fogom vas EP- n is, CRT- n meg TFT- n is, a saját stuffjaimmal, kicsit most összezavarodtam ... En játszottam azzal a sub hunter dologgal, és látványt és kontroll reszponzivitást tekintve alig emlékszek ilyen jóra ... Na majd kitesztelem saját kódokon mire emlékszek, mit kavarok ...

Quote
még 8 esetén is 8kb adatot kell kipakolni a képernyőre
Most ezt miért mondod, pont az a lényege ezeknek a scroll cuccoknak, hogy nem kell a teljes képernyőt kiírni ... biztos vagy benne, hogy írjak képről képre a teljes képernyő memóriát ?
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #33 on: 2013.April.12. 14:52:57 »
Quote from: Z80System
Most ezt miért mondod, pont az a lényege ezeknek a scroll cuccoknak, hogy nem kell a teljes képernyőt kiírni ... biztos vagy benne, hogy írjak képről képre a teljes képernyő memóriát ?
A Sub Hunterben nincs hardveres scroll, ezért írja a majd full képernyőt.
Nekem úgy rémlik, hogy minden egyes frame-ben kirajzolja a parallax hátteret is.

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #34 on: 2013.April.12. 15:04:57 »
Quote from: IstvanV
Kellenek, de csak egy fél karakteres oszlopon (és az is csak az egyik képernyő pufferben, a másikat nem kell eltolni), és nem az egész képernyőn. Ehhez már elég gyors a Z80, 50 fps sebességnél is, de játéknál talán célszerűbb a 25 fps, mert akkor több idő marad sprite rajzolásra. A két képernyő puffer egyébként is hasznos, hogy villogás nélkül lehessen frissíteni a képet. 2*16K méretű puffer elég egy 40x25 karakteres képernyőhöz, és marad 384 byte (4.8 képernyő) az "ablak" mozgatására LPT módosítással. A sprite-okat egy képkockában csak az egyik képernyőn kell frissíteni.

"Spectrum méretű" 32x24 karakteres képernyőn talán megoldható a 4 színű, pixel felbontású scroll is, de az már nagyon sok memóriát pazarol (4 puffer), és másra nem nagyon marad idő vagy hely. Demónál azonban lehet értelme.
Azt vágom ,hogy az egyik képen nem kell tolni, viszont azt nem értem, hogy miért csak fél karakteres oszlopon, vagyis mostmár sejtem. Azért mert fél karakteres oszlopokkal etetjük meg minden egyes frémben a képet? Tehát az egyik képet egy eltolatlan fél oszloppal, a másik képet egy eltolt fél oszloppal etetni minden egyes képváltás előtt?

Húúú, már nem emléxem, hogy melyik demóban, volt pixelenkénti hullámzás, onnan vettem ki a Sub Hunterhez is a pixelenkénti mozgatást, minden egyes pixellel eltolt változat le volt tárolva.

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #35 on: 2013.April.12. 15:08:17 »
Megnéztem, a Megademo III volt

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #36 on: 2013.April.12. 15:14:07 »
Én továbbra sem akarom elhinni, hogy képes ilyen FPS- sel a z80 kiirni teljes képernyőket ...

Ha így van, akkor meGa kulpa, mert akkor villamgyors ez a rendszer ...

De egyenlőre nem akarom elhinni ... A sprite- ok lehetnek kirajzolva minden frame- ben, a háttér sztm scroll, vagyis mindig csak a belépő rész van írva. Másképp nem lehet ...
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #37 on: 2013.April.12. 15:16:44 »
Quote from: geco
Tehát az egyik képet egy eltolatlan fél oszloppal, a másik képet egy eltolt fél oszloppal etetni minden egyes képváltás előtt?
Igen.

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #38 on: 2013.April.12. 15:18:50 »
Quote from: Z80System
Én továbbra sem akarom elhinni, hogy képes ilyen FPS- sel a z80 kiirni teljes képernyőket ...

Ha így van, akkor meGa kulpa, mert akkor villamgyors ez a rendszer ...

De egyenlőre nem akarom elhinni ... A sprite- ok lehetnek kirajzolva minden frame- ben, a háttér sztm scroll, vagyis mindig csak a belépő rész van írva. Másképp nem lehet ...
Hát, pedig a Sub Hunterben tuti nem scroll, újrarajzolás. Két képernyőt használ ugyan, de nem az eltolás miatt, az egyik képernyő a munkás képernyő, a másik a megjelenített.
Az istván által említett 1 byte-os scrollal még gyorsabban lehetne scrollozni, akár 50 FPS-sel is

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #39 on: 2013.April.12. 15:20:42 »
Quote
Hát, pedig a Sub Hunterben tuti nem scroll, újrarajzolás. Két képernyőt használ ugyan, de nem az eltolás miatt, az egyik képernyő a munkás képernyő, a másik a megjelenített.
Az istván által említett 1 byte-os scrollal még gyorsabban lehetne scrollozni, akár 50 FPS-sel is
Juhúúúúúúúúúúú !!! :smt026
Z80 System

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Grafikai trükkök
« Reply #40 on: 2013.April.12. 16:12:16 »
ne lelkesedj annyira azért...
Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Grafikai trükkök
« Reply #41 on: 2013.April.12. 17:32:39 »
amúgy meg Laci írt egy Scroll demót ügye... :) kérdezd őt
szerintem a legjobb EP demó
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #42 on: 2013.April.12. 21:37:35 »
16 színű, 928x200 méretű kép pixel felbontású vízszintes scrollozása 160x200 méretű ablakban, 50 fps sebességgel:

[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

A Space billentyű 25 fps-re lassítja a scrollt, az Esc pedig kilép. 128K-s gépen nem EXOS kompatibilis a nagy memóriaigény miatt. Az eredeti kép itt található.
« Last Edit: 2013.April.13. 12:54:42 by IstvanV »

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14774
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #43 on: 2013.April.12. 21:53:39 »
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:
Nem semmi! A CPU kb hány %-ra van leterhelve?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #44 on: 2013.April.12. 23:32:04 »
Quote from: Zozosoft
Nem semmi! A CPU kb hány %-ra van leterhelve?
Kb. 37.5% ha a kép adat (a scroll.bin file-ból) nem a video RAM-ban van, egyébként ~38.8%. Ez 50 fps sebességnél az összes utasítás időtartama a HALT és a megszakítás kivételével, de minden második képkockánál csak LPT-t kell módosítani (puffer váltás), ezért az átlagos terhelés kisebb (~20%). Valószínűleg lehetne még javítani a kódon, és alacsonyabb CPU fogyasztást elérni. Elvileg van idő a 4 színű, 4 puffert használó megoldásra is, de ott problémát jelenthet a memória használat.
« Last Edit: 2013.April.12. 23:38:23 by IstvanV »