Welcome, Guest. Please login or register.


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

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 #330 on: 2013.October.30. 12:13:53 »
Quote from: Z80System
Ja. Símán csak egymás után teszed a memóriában az LPT -ket, mintha normál LPT -k lennének, és a reload flag -et csak a legutolsó végére teszed be.
csináld te is ezt :)
Vigyázat! Szektás vagyok! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #331 on: 2013.October.30. 12:18:41 »
Quote
csináld te is ezt 
Az én szempontomból nézve ez megint csak egy százhuszonnyolcadik trükk. Ennek is túl nagy kötöttsége van, fixen az a szekvencia van, amit letároltál.

Én meg azt akarom, hogy cpu -val váthassam akármelyik frame -be, akaármelyik LPT -t, kódtól függő logikával.
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 #332 on: 2013.October.30. 12:30:28 »
Quote from: Z80System
Az én szempontomból nézve ez megint csak egy százhuszonnyolcadik trükk. Ennek is túl nagy kötöttsége van, fixen az a szekvencia van, amit letároltál.

Én meg azt akarom, hogy cpu -val váthassam akármelyik frame -be, akaármelyik LPT -t, kódtól függő logikával.
na de úgyis fix 50fps-t akarsz, tehát a logika miért szól itt bele?
Vigyázat! Szektás vagyok! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #333 on: 2013.October.30. 12:46:55 »
Quote
na de úgyis fix 50fps-t akarsz, tehát a logika miért szól itt bele?

Az 50 FPS -valóban jó lenne mindaddig, míg annyira ki nem cipőkanalazom, hogy néha mégis átbukik a frame határon, és akkor onnantól csúnya villogás lenne, míg nem bukik megint egyet.

De ez a szál most nem a gyakorlati problémák kezelésére való, hanem elvben gondolkodik.

- mivel a kódomban Zozo féle gyors port írás van, ez kb. eliminálja a problémát, gyakorlatban többet vacakolni vele felesleges
- mivel összesen 2 sor megváltozatásával meg tudom csinálni a stabil borderes működést, ezért az jobb, mint egy statikus NICK animhoz kötődni
- mivel csak 2 LPT -t váltogatok, amik elférnek 1000H -n, és történetesen c000H -án vannak, ezért az egy port írás hack is teljesen 100% megoldást jelentene

De ez mind smafu. Én ELVI MEGOLDÁS -ban gondokodok. De legalábbis egy teljesen általános megoldásban, ha elvit nem is sikerül.

Egy olyan stuffot feltételezek, aminek a kirajzolása minden körben szélsőséges értékek között változhat, mondjuk 0 és 10 frame között, amire ráadásul egy olyan double bufferes LPT váltogatást akarok ráhúzni, mi kódból változó sorrendű és nem fér el 1000H -n. Ilyen lehetne pld. egy 3D vektoros demó, amin komplex LPT effektek vannak. Mily fura, ismerek olyan embert, aki két játékdemó között ilyenben gondolkodik.

Egy tiszta, ideális PC -szerű double buffer működésen gondolkodok, mert ha másról nem is, de erről azt hittem, hogy ez az EP nagy erőssége, hiszen minden máshoz képest ő még baszikból is képes képernyőt vágni ... Meg videólapokat animálni ... amit aztán rajta kívül nemtudom még ki tud ... (Tán az Amiga tud ilyeneket még OS -ből, de az nagyon unfair volna, ha a 16 bites amígóhoz mércéznénk.)

És akkor a tüzetes vizsgálódásból az derül ki, hogy az ELVI, IDEÁLIS double buffert, ha ki akarom terjeszteni a buffer fogalmát az LPT tulajdonságokra is, na azt azért mégsem tudja ...
« Last Edit: 2013.October.30. 12:50:21 by Z80System »
Z80 System

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re: Grafikai trükkök
« Reply #334 on: 2013.October.30. 12:52:19 »
Quote from: Z80System
Igen, ez egy újabb módosítás, ahhoz képest mindenképp, ahogy én gondolkodok a dologról,

viszont míg a borderes dologra még boldogan rábólintok, mert nem tudok jobbat,

addig ezt már határozottan vissza kell utasítsam, biztos vannak olyan feladatok, amiknek a kirajzolásánál ilyeneket figyelembe lehetne venni,

de egy sprite -os grafikánál, vagy egy csillagmozgásnál felülről lefele rendezni a grafikát, és mindíg a videó sugár mögött tartani magam minden sugár pozíció kiolvasási lehetőség nélkül sztm túl sokat lassítana, ez maximum valami komondoros raszter trükknél, vagy ilyesminél lehetne sztm. gazdaságosan alkalmazható.

Azon kívül vegyük észre hogy mind a borderes módszer is (csak az még kevésbé), de ez a "sugárral szinkronizálom magam" módszer pláne, PONT AZ ELLENTÉTE a backbuffer lényegének.

A doublebuffer pont azért lenne, hogy 100% -ban független lehessek a sugártól, egyedül a képváltás van szinkronizálva (elvileg a függöleges visszafutásra, EP- n egy jelentéktelennek tűnő dolog miatt úgy tűnik csak a borderre), és a rajzolás pedig innentől kezdve teljesen szabad a backbufferen, ahogy a legszebbet a leggyorsabban ki tudjuk rajzolni.

Ha én tudom magam a sugárhoz szinkronizálni, akkor rajzolhatok mindent úgy, hogy szinkronizálva vagyok a sugárhoz, és kész, nem kell semilyen doublebuffer.

De mi nem akarunk ilyennel bíbelődni, ezért doublebuffert használunk, csak nem tudjuk a doublebuffert biztonságosan váltani, ezért elkezdünk szinkronizálni a sugárhoz ? Sztm ez értelmetlen. Újabb manifesztálódása csak a 22 -es csapdája problémának.
Nézd, az én szempontomból mindegy hogy a tanácsot amit próbálok adni miközben együtt gondolkodok veled, azt elfogadod, vagy valamilyen szép elvi megfontolásból határozottan elutasítod. Nem tud egyikőnk se kötelezni arra, hogy amit mondunk ahhoz betű szerint ragaszkodj, és nem is akarunk. Én csak felhívtam a figyelmedet arra, hogy amennyiben jól kézben tartod az erőforrás használatodat, akkor a tankönyvi double buffering megvalósításhoz képest esetleg lehet egy kis teljesítményt nyerni. Ha erre nincs szükséged vagy lehetőséged, akkor nem használod. Ez az "Az elfajult dupla pufferelés monnyon le!" teljesen értelmetlen. Te írod a programodat, pontosan olyanra amilyennek szeretnéd.

Egyébként - ha van erre lehetőség - mondd már el légy szíves, hogy mit értesz a double buffer biztonságos váltásán és az hogyan valósul meg a sugárhoz szinkronizálás nélkül?

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 #335 on: 2013.October.30. 12:56:07 »
ergoGnomik,
akar egy x Hz-s hangot is, lehet hogy az adja a bizonytalanságot
Vigyázat! Szektás vagyok! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #336 on: 2013.October.30. 13:14:55 »
Quote
Egyébként - ha van erre lehetőség - mondd már el légy szíves, hogy mit értesz a double buffer biztonságos váltásán és az hogyan valósul meg a sugárhoz szinkronizálás nélkül?

Hát nem tudom, hogy ezt a témát hogy tudnám még ennél is jobban kirészletezni ...

Ezt írtam:

"A doublebuffer pont azért lenne, hogy 100% -ban független lehessek a sugártól, egyedül a képváltás van szinkronizálva (elvileg a függöleges visszafutásra, EP- n egy jelentéktelenne"

Mikor azt írtam, hogy "független a sugártól" akkor a rajzolókódra gondoltam, nem a váltásra. Ezt erősíti, hogy utána ezzel folytatom, hogy "egyedül a képváltás van szinkronizálva (elvileg a függöleges visszafutásra, EP- n egy jelentéktelennek ..."

Tehát a kép váltása igenis szinkronizálva van a függőleges visszafutáshoz, de ez az egyetlen dolog ami szinkronizálva van, ezen kívül az összes backbuffer műveletem szabad sorrendben és időzítésben történhet.

Ezt az ep a NICK reload -dal el is tudja mellesleg végezni, csak éppen amit betölt annak MEGADÁSÁHOZ is szinkronizálnom kell, és ez hazavágja az elvi szép megoldást, mindenféle trükkök bevetését igényli.
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #337 on: 2013.October.30. 13:19:47 »
Én csak azt nem értem hogy miért okoz neked lelki traumát hogy a border kezdetére tedd a váltást kiváltó VNT-et, amikor az pont erre van kitalálva? :oops:

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #338 on: 2013.October.30. 13:26:21 »
Quote
Én csak azt nem értem hogy miért okoz neked lelki traumát hogy a border kezdetére tedd a váltást kiváltó VNT-et, amikor az pont erre van kitalálva?

Márpedig te állítólag mindent elolvasol, tehát érthetnéd a traumám okát, mert már írtam:

Azért, mert ha ott van a megszak, akkor a megszak érkezésekor ugyan beírhatom az LPT címet, és a hasznos területet, pld. képernyőbuffert már generálhatom is újra, de MAGÁT az LPT -t még nem, mert az még kijelzés alatt lesz a frame végéig. És mi van ha ez én programom az LPT -t is újra akarja generálni ? Mert a programom "backbuffer" fogalmába beletartoznak az LPT tulajdonságok is. Azt éppúgy újra akarja generálni, mint a pixel adatokat.

Akkor az van, hogy ELVI problémával állunk szembe. A legszebb, legáltalánosabb megoldás a -1 pixelsor -os 2 megszakos verzió, de még az sem elvi. Csak általános.
« Last Edit: 2013.October.30. 13:31:53 by Z80System »
Z80 System

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re: Grafikai trükkök
« Reply #339 on: 2013.October.30. 13:39:43 »
Quote from: Z80System
Márpedig te állítólag mindent elolvasol, tehát érthetnéd a traumám okát, mert már írtam:

Azért, mert ha ott van a megszak, akkor a megszak érkezésekor ugyan beírhatom az LPT címet, és a hasznos területet, pld. képernyőbuffert már generálhatom is újra, de MAGÁT az LPT -t még nem, mert az még kijelzés alatt lesz a frame végéig. És mi van ha ez én programom az LPT -t is újra akarja generálni ? Mert a programom "backbuffer" fogalmába beletartoznak az LPT tulajdonságok is. Azt éppúgy újra akarja generálni, mint a pixel adatokat.

Akkor az van, hogy ELVI problémával állunk szembe. A legszebb, legáltalánosabb megoldás a -1 pixelsor -os 2 megszakos verzió, de még az sem elvi. Csak általános.
Ha az LPT-d állandó méretű, akkor amint a keretre érsz nyugodtan átírhatod azt a részt ami a megjelenítést végzi, mert azt a Nick már nem olvassa. Ha változó méretű az LPT-d, akkor meg lehet triple buffering-et használni. Akár csak külön a sorparaméter táblára.

Te elveket akarsz fejleszteni, vagy hatékonyan futó programot, amihez nem kell csillió megahertzes erőmű, elég az EP is?

Félre ne értsd, nem az elvekkel van a bajom, hanem azzal hogy keseregsz nincs elég jó program, nekilátsz lelkiismeretes kutató munkát végezni a felhasználandó technikákról, majd elvi megfontolások alapján ezeket elutasítod. Így hogyan készül el majd az a jó program?
« Last Edit: 2013.October.30. 13:43:42 by ergoGnomik »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #340 on: 2013.October.30. 13:49:21 »
Quote
Ha az LPT-d állandó méretű, akkor amint a keretre érsz nyugodtan átírhatod azt a részt ami a megjelenítést végzi, mert azt a Nick már nem olvassa.
Igaz, de csak hekk. Te magad is folytattad a nem hekk verzióval.


Quote
Ha változó méretű az LPT-d, akkor meg lehet triple buffering-et használni. Akár csak külön a sorparaméter táblára.

Na hasonló nekem is felrémlett, de ezt a triple buffering -et még PC vonatkozásában sem sikerült logikailag összerakjam eddig, hogy mi a mákér jó, mégis valahogy felderengett nekem is itt a mostani gondolkozások közepedte, de nem értem a végére.

Úgyhogy ezen elgondolkozok akkor ... lehet -e LPT triplabuffer elvi megoldas ide ...


Quote
Te elveket akarsz fejleszteni, vagy hatékonyan futó programot, amihez nem kell csillió megahertzes erőmű, elég az EP is?

Amíg nem lassítanak, addig elveket akarok. Minnél kevesebb szabályból álló, minnél merőlegesebb szabályrendszert, ahol a legnagyobb a szabadság. Nem vagyok zseni típus, nem szeretek sok komplex szabálynak engedelmeskedve dolgozni. Akkor haladok csak a komplexitás fele, ha muszaly.

Tehát nem lassító, villámgyors elveket akarok. És ha beláttam, hogy ilyen nincs, akkor menni csak a bonyiba, lecsóba.

És ha valamiről, akkor erről a kép váltogatásról azt hittem, hogy na ezt aztán CSONTRA tudja az EP.

Na de most akkor új remény csillant ... a tripla LPT buffer ... csak meg kéne értsem.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #341 on: 2013.October.30. 14:55:21 »
Quote
Na de most akkor új remény csillant ... a tripla LPT buffer ... csak meg kéne értsem.
Hopp, ugyan a tripla bufferes működés átgondolásába még nem fogtam bele, de közben bekattant, hogy mitől nem jó semmiképp, még ha egyébként pedig elvi megoldás is lenne.

Hát ha teljes három készletről beszélünk, akkor képernyő pufferekből is három kellene, ami túl nagy áldozat már az én súlyozásomban.

Ha meg csak az LPT tripla, ahogy az imént ráharaptam, akkor meg mivel csak 2 képernyőpufferünk van, akkor az LPT -ben a címeket frissíteni kell. Ami egy soronkénti LPT esetén olyan sok idő, hogy szintén nem tekintem elvi megoldásnak, egy 20 rasztersor árán megvalósított buffer váltás szerintem szintén túl nagy áldozat ...

Vagyis tripla buffer is lehúzva ... :(

Nincs elvi megoldás ... továbbra sem.
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #342 on: 2013.October.30. 15:04:17 »
Quote from: Z80System
 akkor az LPT -ben a címeket frissíteni kell.
Na de pont onnan indultunk, hogy mi van ha az LPT-t is újra akarod generálni.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #343 on: 2013.October.30. 15:09:08 »
Quote
Na de pont onnan indultunk, hogy mi van ha az LPT-t is újra akarod generálni.
Na, látom te legalább figyelsz ! :)

Már az előző hsz -emen gondolkodtam, hogy kijavítom precízebbre, de gondoltam, hogy "á, úgyse veszik észre ...", de látom azért nincs ennyire könnyű dolgom ... :)

Oks, akkor tovább részletezem:

Olyan pixelsoros, nagy és sok, nem újragenerált LPT -t akarok változó sorrendben kód logika szerint animálni,

amikben viszont a szinkronjaikban (az alsó felső borderen) valós idejű változtatásokkal akarok operálni. Szinkron trükkökkel.

És akkor máris visszakanyarodtunk az elvi probémához ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #344 on: 2013.October.30. 15:42:38 »
Hát demóban nyilván rengeteg helyen van, én a Sorcery -t vádoltam meg 50 FPS -ességgel, de valaki azt is csak 25 -nek véleményezte ...

Mindenesetre az elég jó reszponzív ... Én majd akkor hiszem, hogy nem 50 FPS, ha látom vason.
Z80 System