Home » Articole » Articole » Calculatoare » Imagini » Grafică pe computer bidimensională – Pixeli – Antialising

Grafică pe computer bidimensională – Pixeli – Antialising

postat în: Imagini 0

Pentru a crea o imagine bidimensională, fiecărui punct din imagine i se atribuie o culoare. Un punct în 2D poate fi identificat printr-o pereche de coordonate numerice. Culorile pot fi specificate și numeric. Cu toate acestea, atribuirea numerelor punctelor sau culorilor este oarecum arbitrară. Așa că trebuie să petrecem ceva timp studiind sistemele de coordonate, care asociază numerele cu puncte și modelele de culori, care asociază numerele cu culori.

O imagine digitală este formată din rânduri și coloane de pixeli. Un pixel dintr-o astfel de imagine poate fi specificat spunând ce coloană și ce rând îl conține. În ceea ce privește coordonatele, un pixel poate fi identificat printr-o pereche de numere întregi care oferă numărul coloanei și numărul rândului. De exemplu, pixelul cu coordonatele (3,5) se află în coloana numărul 3 și în rândul numărul 5. În mod convențional, coloanele sunt numerotate de la stânga la dreapta, începând cu zero. Majoritatea sistemelor grafice, inclusiv cele pe care le vom studia în acest capitol, numerează rândurile de sus în jos, începând de la zero. Unele, inclusiv OpenGL, numerotează rândurile de jos în sus.

Pixel

(Grile de 12 pe 8 pixeli, afișate cu numerele rândurilor și coloanelor. În stânga, rândurile sunt numerotate de sus în jos, în dreapta, sunt numerotate de jos în sus.)

Rețineți în special că pixelul care este identificat printr-o pereche de coordonate (x,y) depinde de alegerea sistemului de coordonate. Întotdeauna trebuie să știți ce sistem de coordonate este utilizat înainte de a ști despre ce punct vorbiți.

Numerele rândurilor și coloanelor identifică un pixel, nu un punct. Un pixel conține multe puncte; matematic, conține un număr infinit de puncte. Scopul graficii pe computer nu este cu adevărat de a colora pixelii, ci de a crea și manipula imagini. Într-un anumit sens ideal, o imagine ar trebui să fie definită prin specificarea unei culori pentru fiecare punct, nu doar pentru fiecare pixel. Pixelii sunt o aproximare. Dacă ne imaginăm că există o imagine adevărată, ideală pe care dorim să o afișăm, atunci orice imagine pe care o afișam prin colorarea pixelilor este o aproximare. Acest lucru are multe implicații.

Să presupunem, de exemplu, că vrem să desenăm un segment de linie. O linie matematică nu are grosime și ar fi invizibilă. Deci, vrem cu adevărat să desenăm un segment de linie gros, cu o lățime specificată. Să presupunem că linia ar trebui să aibă lățimea de un pixel. Problema este că, cu excepția cazului în care linia este orizontală sau verticală, nu putem trage linia prin colorarea pixelilor. O linie geometrică diagonală va acoperi unii pixeli doar parțial. Nu este posibil să faceți o parte dintr-un pixel neagră și o parte albă. Când încercați să desenați o linie doar cu pixeli alb-negru, rezultatul este un efect de scară zimțat. Acest efect este un exemplu de ceva numit „aliasing” (alias, dedublare). Aliasul poate fi văzut și în contururile caracterelor desenate pe ecran și în limitele diagonale sau curbate dintre oricare două regiuni de culoare diferită. (Termenul de alias provine probabil din faptul că imaginile ideale sunt descrise în mod natural în coordonate cu numere reale. Când încercați să reprezentați imaginea folosind pixeli, multe coordonate cu numere reale se vor mapa la aceleași coordonate întregi ale pixelilor; toate pot fi considerate ca nume sau „aliasuri” diferite pentru același pixel.).

Antialiasing este un termen pentru tehnici care sunt concepute pentru a atenua efectele aliasing. Ideea este că atunci când un pixel este acoperit doar parțial de o formă, culoarea pixelului ar trebui să fie un amestec de culoarea formei și culoarea fundalului. Când desenați o linie neagră pe un fundal alb, culoarea unui pixel parțial acoperit ar fi gri, cu nuanța de gri depinzând de fracțiunea de pixel care este acoperită de linie. (În practică, calcularea acestei zone exact pentru fiecare pixel ar fi prea dificilă, așa că se folosește o metodă aproximativă.) Iată, de exemplu, o linie geometrică, afișată în stânga, împreună cu două aproximări ale acelei linii făcute prin colorarea pixelilor . Liniile sunt mult mărite, astfel încât să puteți vedea pixelii individuali. Linia din dreapta este trasată folosind antialiasing, în timp ce cea din mijloc nu este:

Linii

Rețineți că antialiasing nu dă o imagine perfectă, dar poate reduce „jaggies” (artefacte în imaginile raster, cel mai frecvent din aliasing, care, la rândul său, este adesea cauzată de efecte de amestecare neliniare care produc componente de înaltă frecvență sau lipsă sau slabă filtrare anti-aliasing înainte de eșantionare) cauzate de aliasing (cel puțin atunci când este vizualizat la o scară normală).

Există și alte probleme implicate în maparea coordonatelor cu numere reale la pixeli. De exemplu, care punct dintr-un pixel ar trebui să corespundă coordonatelor cu valori întregi, cum ar fi (3,5)? Centrul pixelului? Unul dintre colțurile pixelului? În general, considerăm că numerele se referă la colțul din stânga sus al pixelului. Un alt mod de a gândi la acest lucru este să spunem că coordonatele întregi se referă la liniile dintre pixeli, mai degrabă decât la pixelii înșiși. Dar asta încă nu determină exact ce pixeli sunt afectați atunci când este desenată o formă geometrică. De exemplu, iată două linii desenate folosind grafica HTML canvas, afișate mult mărite. Liniile au fost specificate pentru a fi colorate în negru cu o lățime de linie de un pixel:

Linii

Linia de sus a fost trasată de la punctul (100.100) la punctul (120.100). În grafica canvas, coordonatele întregi corespunzătoare liniilor dintre pixeli, dar când este trasată o linie de un pixel, aceasta se extinde cu o jumătate de pixel de fiecare parte a liniei geometrice infinit de subțiri. Deci, pentru linia de sus, linia așa cum este desenată se află jumătate într-un rând de pixeli și jumătate într-un alt rând. Sistemul grafic, care folosește antialiasing, a redat linia colorând ambele rânduri de pixeli în gri. Linia de jos a fost trasată de la punctul (100,5,100,5) la (120,5,120,5). În acest caz, linia se află exact de-a lungul unei linii de pixeli, care devine colorată în negru. Pixelii gri de la capetele liniei de jos au de-a face cu faptul că linia se extinde doar la jumătatea distanței în pixelii de la punctele sale finale. Alte sisteme grafice pot reda aceleași linii în mod diferit.

Toate acestea sunt complicate și mai mult de faptul că pixelii nu mai sunt ceea ce erau înainte. Pixelii de azi sunt mai mici! Rezoluția unui dispozitiv de afișare poate fi măsurată în funcție de numărul de pixeli pe inch de pe afișaj, o cantitate denumită PPI (pixeli per inch) sau uneori DPI (dots per inch). Ecranele timpurii au avut tendința de a avea rezoluții de undeva aproape de 72 PPI. La acea rezoluție și la o distanță de vizualizare tipică, pixelii individuali sunt vizibili clar. Pentru o vreme, s-a părut că majoritatea ecranelor aveau aproximativ 100 de pixeli pe inch, dar afișajele de înaltă rezoluție de astăzi pot avea 200, 300 sau chiar 400 de pixeli pe inch. La cele mai mari rezoluții, pixelii individuali nu mai pot fi distinși.

Faptul că pixelii vin într-o astfel de gamă de dimensiuni este o problemă dacă folosim sisteme de coordonate bazate pe pixeli. O imagine creată presupunând că există 100 de pixeli pe inch va arăta mică pe un afișaj de 400 PPI. O linie lată de un pixel arată bine la 100 PPI, dar la 400 PPI, o linie lată de un pixel este probabil prea subțire.

De fapt, în multe sisteme grafice, „pixel” nu se referă cu adevărat la dimensiunea unui pixel fizic. În schimb, este doar o altă unitate de măsură, care este stabilită de sistem pentru a fi ceva adecvat. (Pe un sistem desktop, un pixel este de obicei aproximativ o sutime de inch. Pe un telefon inteligent, care este de obicei văzut de la o distanță mai apropiată, valoarea poate fi mai aproape de 1/160 inch. În plus, semnificația unui pixel ca unitate de măsură se poate schimba atunci când, de exemplu, utilizatorul aplică o mărire unei pagini web.)

Pixelii provoacă probleme care nu au fost complet rezolvate. Din fericire, acestea reprezintă o problemă mai mică pentru grafica vectorială, care este în mare parte ceea ce vom folosi în această carte. Pentru grafica vectorială, pixelii devin o problemă doar în timpul rasterizării, etapa în care o imagine vectorială este convertită în pixeli pentru afișare. Imaginea vectorială în sine poate fi creată folosind orice sistem de coordonate convenabil. Reprezintă o imagine idealizată, independentă de rezoluție. O imagine rasterizată este o aproximare a acelei imagini ideale, dar modul de realizare a aproximării poate fi lăsat în seama hardware-ului de afișare.

Sursa: David J. Eck, Introduction to Computer Graphics (Eck), LibreTexts, licența CC BY-NC-SA 4.0. Traducere și adaptare Nicolae Sfetcu

Adobe Photoshop pentru începători
Adobe Photoshop pentru începători

Descoperă-ți potențialul creativ și învață să creezi imagini care vor captiva.

Nu a fost votat Interval de prețuri: 9.14 lei până la 20.72 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *