Bit blit

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Termenul Bit blit , care înseamnă bit bl ock t ransfer (scris și BITBLT , BIT BLT , BitBLT , Bit BLT , Bit Blt etc.), indică o operație grafică pe computer în care una sau mai multe bitmap-uri sunt combinate împreună utilizând o funcție booleană . [1]

Descriere

Un bit blit implică cel puțin 2 bitmap-uri, sursa și destinația. Pot fi implicate și alte bitmap-uri: în acest caz sunt utilizate ca „măști”, pentru a modifica biții bitmap-ului sursă. Funcțiile booleene care pot fi aplicate sunt AND , OR , XOR și NOT , utilizate individual sau combinate pentru a forma funcții mai complexe. [2] [1]

Tehnicile grafice moderne au înlocuit aproape complet operațiunile efectuate pe unii biți cu alții care creează efecte grafice mai complexe, cum ar fi manipularea canalului alfa , datorită faptului că blocările de biți nu permit obținerea de rezultate care reflectă efectele reale combinația de lumini sau cerneluri. Unele programe folosesc încă o operație XOR pentru a desena dreptunghiuri de evidențiere: folosind această tehnică este posibil să se obțină o textură de umplere neobișnuită, care să iasă în evidență de restul imaginii. [3]

Origini

Numele Bit blit derivă din cel al rutinelor create de dezvoltatorii de software Xerox PARC pentru a gestiona grafica computerelor pe care le-au proiectat în anii șaptezeci , cum ar fi Xerox Alto , primul computer comercializat cu o interfață grafică bazată pe metafora biroului: rutinele au fost denumite Bit BLT și au fost utilizate pentru a simplifica gestionarea imaginilor și urmărirea obiectelor prin deplasarea blocurilor de date în memoria video a computerului. La rândul lor, biții BLT și-au extras numele din „BLT”, care era o instrucțiune de asamblare a computerelor DEC PDP-10 concepute pentru a muta blocuri de memorie. Rutinele Bit BLT au stat la baza tuturor operațiunilor grafice gestionate prin limbajul Smalltalk pe sistemele proiectate la XEROX PARC. [4] Dezvoltarea a fost condusă de Dan Inglass și echipa sa formată din Larry Tesler, Bob Sproull și Diana Merry. [5] [6]

Blit și sprite

Pictogramă lupă mgx2.svg Același subiect în detaliu: Sprite (informatică) .

Deși ambele tehnici au rezultatul final al gestionării figurilor grafice suprapuse unei imagini de fundal, modul în care aceasta este obținută diferențiază substanțial biturile de spriturile hardware. În timp ce bit blit scrie dinamic datele imaginii pentru a fi suprapuse în bufferul video (o tehnică numită "blitting"), un sprite hardware este gestionat de un circuit specific care își suprapune imaginea pe cel principal, similar cu o "fantomă" sau un "spirit". [7] [8] Blitting este o metodă care lasă programatorului o mare libertate de acțiune, deoarece datele pot fi modificate continuu și există mai puține restricții privind dimensiunea imaginilor care trebuie suprapuse. Pe de altă parte, această tehnică necesită un sistem de înaltă performanță (CPU și / sau cip grafic foarte rapid) și o cantitate mai mare de RAM, necesară pentru a gestiona bufferul video și datele de imagine care trebuie suprapuse. [7] Spritele au dezavantajul de a prezenta o limită a numărului de obiecte care pot fi gestionate prin hardware, dar oferă totuși avantajul de a putea fi deplasate pe ecran cu o încărcare software foarte mică. [7]

Spritele au fost principalul sistem de animație pe sisteme cu putere și memorie de calcul limitate, cum ar fi consolele și computerele de acasă din anii 80 ai secolului al XX-lea . Chiar și jocurile video arcade din acea perioadă au folosit în principal sprite, deoarece gestionarea lor a fost făcută de un hardware special, care a ușurat calculele care cântăreau pe CPU și care au permis utilizarea unei cantități mai mici de RAM, nefiind creată dinamic, deoarece acestea erau deja predefinite. în memoria nevolatilă a sistemului. [8] Odată cu creșterea memoriei și a puterii de calcul a sistemelor, spriturile au fost înlocuite încet cu operații de blit. [7]

Blitter

Atari Blitter integrat în cele mai noi modele Atari ST .

Mai târziu, pentru a accelera și mai mult calculele și a ușura volumul de lucru pe procesoare, tehnicile bit blit au fost implementate și în hardware prin dezvoltarea coprocesoarelor speciale numite Blitter . Deși controlere video , capabile să execute operații de biți blit au fost deja dezvoltate între anii șaptezeci și începutul anilor optzeci , primul cip real , proiectat și creat doar pentru acest scop a fost Amiga Blitter, integrat în chipset - ul original , al primelor calculatoare. Amiga : ea a fost capabil să mute sau să modifice blocuri dreptunghiulare de grafică, dar și să deseneze linii unice ale imaginii. [9]

Amiga Blitter a fost atât de faimos și fundamental pentru succesul computerului încât chiar și Atari Corporation a decis să dezvolte unul pentru a fi integrat în versiunile actualizate ale modelelor Atari ST , Mega și STE. Numit BLiTTER , BLock Image TransferrER , cu toate acestea, nu a fost utilizat pe scară largă, deoarece dezvoltatorii de software tindeau să producă jocuri și programe compatibile chiar și cu modele mai vechi, care nu le aveau. [10] [11] Atari integrate , de asemenea , un blitter în sale Atari Lynx si Atari Jaguar console .

GPU-uri moderne

GPU-urile moderne, descendenții primelor cipuri blitter, efectuează operațiuni grafice 3D mult mai complexe și avansate decât bliturile simple 2D bit [12], cu toate acestea, unele unități blitter sunt încă prezente în unele dintre ele. [13] . Unele SoC integrează, de asemenea, unități blitter, cum ar fi cele fabricate de Texas Instruments . [14]

Implementare

O utilizare obișnuită a operațiilor bit blit este pentru gestionarea spritei. În exemplul următor, imaginea din stânga reprezintă fundalul pe care să operați, în timp ce în dreapta se află spritele de aplicat și masca corespunzătoare.

Imagine de fundal Sprite (stânga)
și mască (dreapta)
Blit back.png Blit dot.png

În timpul primului pas, masca este suprapusă peste imaginea de fundal cu o operație AND logică : în mască un bit alb (valoarea 1) indică un pixel care trebuie păstrat în imaginea de fundal în timp ce un bit negru (valoarea 0) indică un pixel pe care se va aplica spritul. Deoarece în valorile AND logice orice valoare combinată cu 1 rămâne neschimbată (1 ȘI 1 = 1 și 0 ȘI 1 = 0) biții albi nu modifică pixelii corespunzători ai imaginii de fundal; invers, ȘI un bit cu valoarea 0 dă întotdeauna 0 ca rezultat (1 ȘI 0 = 0 și 0 ȘI 0 = 0) astfel încât biții care au valoarea 0 în mască să creeze un pixel negru în fundal imagine. Deoarece masca este de 1 bit, nu există nicio posibilitate de a aplica vreun efect de amestecare alfa . [2] După aplicarea măștii, rezultatul este următorul:

Primul pas
(Logică ȘI a
masca)
Blit and.png

Așa cum am menționat, zonele negre sunt cele care vor găzdui sprites, care sunt adăugate la imagine folosind o operație logică SAU :

Al doilea pas
(OR logic
sprite)
Blit final.png

Notă

  1. ^ a b Julio Sanchez, Maria P. Canton, Afișarea imaginilor bit-mapate , în Soluții software pentru ingineri și oameni de știință , CRC Press, 2007, p. 690.
  2. ^ a b BLIT FAQ ( TXT ), la paradox.atari.org , Paradox Atari. Adus 20/05/2015 (arhivat din original la 5 martie 2016) .
  3. ^ Context grafic - Rapid la extragere: XOR , la eclipse.org . Adus 24-05-2015 .
  4. ^ Charles Peztold, 14-Bitmaps and bitblips , în Programarea Windows de Charles Peztold , Microsoft Press, 1998.
  5. ^ Eric Steven Raymond, Capitolul 2. Istorie: o scurtă istorie a interfețelor utilizatorilor , pe primele GUI , catb.org . Adus pe 24.05.2015 .
  6. ^ Dan Inglass, Inter-Office Memorandum - Bit BLT ( PDF ), la bitsavers.informatik.uni-stuttgart.de , Xerox PARC. Adus pe 24.05.2015 .
  7. ^ a b c d Sprite (concept) , pe giantbomb.com . Adus 09-01-2018 .
  8. ^ a b Construirea unui sprite hardware , pe ca.olin.edu , Arcade Hardware Design. Adus 09-01-2018 .
  9. ^ Caracteristici Amiga Blitter , la amigadev.elowar.com , Amiga Developers Docs. Adus pe 24.05.2015 .
  10. ^ Apariția lui BLiTTER , pe sillyventure.eu , SillyVenture (arhivat din original la 29 octombrie 2014) .
  11. ^ Atari ST (E) BLiTTER ( TXT ), pe paradox.atari.org . Accesat la 24.05.2015 (arhivat din original la 5 martie 2016) .
  12. ^ Tehnologie care a schimbat jocurile: Commodore Amiga , la blitterandtwisted.com , BlitterAndTwisted. Adus la 24 mai 2015 (arhivat din original la 24 mai 2015) .
  13. ^ Listă de legături către documentația unităților blitter ale unor GPU-uri moderne , la renderingpipeline.com , Renderingpipeline.org. Adus 24-05-2015 .
  14. ^ Ghidul utilizatorului Bitblit , la processors.wiki.ti.com , Texas Instruments. Adus la 24 mai 2015 (arhivat din original la 24 mai 2015) .

Elemente conexe

Alte proiecte

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT