Netezirea ecranului

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 20 decembrie 2015; verificările necesită 88 de modificări .

Anti - aliasing -ul  este o  tehnologie folosită în procesarea imaginilor pentru a face limitele liniilor curbe mai fine, eliminând „dinții” care apar pe marginile obiectelor . Anti-aliasing a fost aplicat pentru prima dată în 1972 la Institutul de Tehnologie din Massachusetts de către Architecture Machine Group , care mai târziu a devenit o parte centrală a MIT Media Lab .

Principiul de bază al netezirii

Principiul de bază al anti-aliasing este utilizarea capacităților dispozitivului de ieșire pentru a arăta nuanțele de culoare cu care este desenată curba. În acest caz, pixelii adiacenți pixelului de margine al imaginii capătă o valoare intermediară între culoarea imaginii și culoarea de fundal, creând un gradient și estompând chenarul.

Există două opțiuni pentru netezire:

Trebuie remarcat faptul că anti-aliasingul depinde de gama monitorului. În special, media între 0,2 și 0,8 nu este neapărat 0,5, ci . Acest lucru este vizibil mai ales pe modele subtile și text . Prin urmare, anti-aliasing de cea mai bună calitate se obține doar atunci când este cunoscut.

Tipuri de netezire

Notă: Anti-aliasing afectează rata de cadre (cadre pe secundă) în funcție de lățimea de bandă (lățimea de bandă de memorie) a plăcii video.

SSAA

Super eșantion A nti - A liasing - supraeșantionare anti-aliasing [1] , numită și anti- aliasing de înaltă calitate sau full-screen [2] , este folosită pentru a corecta alias- ul „jaggies” în imaginile pe tot ecranul [3] . SSAA era disponibil pe plăcile video timpurii, până la DirectX 7 . Este inclus ca o caracteristică în gama AMD HD6XXX (numai pentru jocurile DirectX 9 ) și a fost inclus în driverele NVIDIA Fermi pentru toate jocurile de la jocurile DirectX 9 până la jocurile DirectX 11 folosind orice placă grafică NVIDIA care acceptă DirectX 10 și versiuni ulterioare. .

Drept urmare, imaginea SSAA pare mai moale și mai realistă. Cu toate acestea, imaginile fotografice cu anti-aliasing simplu (cum ar fi supraeșantionarea și apoi media) pot degrada aspectul unor tipuri de desene sau diagrame (imaginea va arăta neclară), mai ales acolo unde liniile sunt cele mai orizontale sau verticale. În aceste cazuri, pot fi folosite sugestii .

Anti-aliasing-ul pe ecran complet vă permite să eliminați „dinții” caracteristici de la limitele poligoanelor . Cu toate acestea, ar trebui să se țină cont de faptul că anti-aliasing pe ecran complet încarcă puternic placa video, ceea ce duce la o scădere a ratei cadrelor .

Calitatea anti-aliasing este limitată de lățimea de bandă a memoriei video , astfel încât o placă video cu memorie rapidă va putea calcula anti-aliasing pe tot ecranul cu un impact mai mic asupra performanței decât o placă video slabă . Anti-aliasing poate fi activat în diferite moduri. De exemplu, anti-aliasing x4 va produce o imagine mai bună decât anti-aliasing x2, dar va reduce semnificativ performanța. Anti-aliasingul SSAAx2 dublează rezoluția , în timp ce SSAAx4 o dublează de patru ori [4] .

MSAA

M ulti s ample A nti- A liasing este un algoritm de înlocuire numai cu geometrie care înlocuiește SSAA, dând astfel un efect de anti-aliasing similar cu SSAA, dar la o sarcină mai mică.

CSAA

Eşantionarea C overage A nti-A liasing este o continuare a „evoluţiei” SSAA➔MSAA➔CSAA. Îmbunătățirea se realizează datorită faptului că mai multe informații despre subeșantionul de la pixelul vecin sunt transferate în framebuffer. Ceea ce în cele din urmă ajută la calcularea netezirii mai precise. Cu niveluri egale (x2, x4, x8...) de CSAA și MSAA, calitatea va fi întotdeauna mai mare pentru CSAA și sunt egale în ceea ce privește sarcina.

QCSAA

C overage de calitate Sampling Anti - A liasing este o versiune îmbunătățită a CSAA, datorită utilizării de două ori mai multe probe pentru analiză.

AAA

A daptive Anti - A liasing - MSAA are o problemă cu netezirea marginilor pe obiectele transparente. Acest algoritm este conceput pentru a elimina această problemă. Este o amalgamare a MSAA și SSAA . Acest tip este recomandat pentru proprietarii de plăci video puternice. Folosit numai de AMD .

TraAA

Transparență A nti-A liasing este similar cu AAA, dar de la Nvidia .

CFAA

C ustom F ilter A nti-A liasing este un algoritm care include 4 filtre: box, narrow-tent, wide-tent și edge-detect. Fiecare filtru este o abordare diferită a implementării MSAA. Folosit numai de AMD .

TXAA

A nti - A liasing este un algoritm de la Nvidia care utilizează cadrul MSAA. Formula de calcul folosește timpul, datele pixelilor din cadrele anterioare și datele din scena procesată. După aceea, are loc medierea culorilor. Acest lucru vă permite să scăpați de pâlpâirea și zvâcnirea obiectelor din joc. În depărtare, oferă o imagine de înaltă calitate, dar obiectele apropiate sunt puțin săpunoase și încărcătura este aproape ca cea a MSAA, deși calitatea este mai bună la aceleași valori. Potrivit dezvoltatorului: TXAAx2 este comparabil ca calitate cu MSAAx8, dar din punct de vedere al sarcinii este comparabil cu MSAAx2, iar TXAAx4 este mai calitativ decât MSAAx8, dar din punct de vedere al încărcăturii este comparabil cu MSAAx4. Excelent pentru netezirea dinamicii.

TAA

A nti- A liasing temporar este un analog al TXAA, dar nu de la Nvidia .

TSSAA

Super - eșantionare temporală A nti-A liasing este un analog al TXAA , dar nu este legat de plăcile video Nvidia și se bazează pe supraeșantionare .

FXAA

Aproximație rapidă Anti - A liasing este un algoritm de la Nvidia [5] , care este un pixel shader cu o singură trecere care calculează cadrul rezultat în post-procesare. Este o soluție mai productivă în comparație cu MSAA tradițională, care, totuși, afectează acuratețea muncii și calitatea imaginii.

MLAA

M orfo logical Anti-A liasing este un analog al FXAA de la Intel . Caută chenarele „zimțate” pe fiecare cadru, similare cu literele Z, L sau U, și amestecă culorile pixelilor învecinați incluși în fiecare astfel de parte. Algoritmul a fost tradus pentru a utiliza procesorul , nu placa video. Prin urmare, poate fi recomandat proprietarilor de plăci video slabe cu un procesor mai mult sau mai puțin productiv. Datorită algoritmului mai complex, imaginea este de o calitate mai bună decât FXAA. AMD are o implementare , dar din punct de vedere tehnic Nvidia o poate folosi și ea . Are o problemă: anti-aliasing nu funcționează pe texturi transparente. Prin urmare, pe lângă această post-procesare, trebuie să conectați și TrAA sau AAA pentru a îmbunătăți imaginea. Timpul de procesare durează 0,9 ms . Există, de asemenea, algoritmi MLAA implementați pe plăcile video .

MFAA

M ulti frame Sampled A nti-A liasing este un algoritm de la Nvidia , exclusiv plăcilor grafice din generația Maxwell . Prin intercalarea pozițiilor eșantionului, MFAAx4 are același impact asupra performanței ca MSAAx2, dar oferă o calitate a imaginii la egalitate cu MSAAx4. [6]

SRAA

Reconstrucție de subpixeli A nti-A liasing este un algoritm cu două treceri de la Nvidia . Foarte asemănător cu MLAA, dar funcționează cu tampon de adâncime și hărți normale , motiv pentru care definește mai bine marginile pentru anti-aliasing și marginile umbrite. Timpul de execuție este în general foarte mic, cea mai mare parte a timpului din algoritm este petrecut procesând umbrirea. În rezultat pot apărea artefacte. Pentru comparație, netezirea unei imagini cu o rezoluție de 1280x720 (HDV 720p) durează aproximativ 5-10 ms folosind SSAA și 1,8 ms pentru SRAA .

SMAA

A nti- Aliasarea m orfologică de subpixeli este o combinație de MSAA, SSAA și MLAA. În esență, un MLAA îmbunătățit cu adăugarea de contrast local, căutarea de modele și utilizarea mai multor mostre. Uneori poate fi adăugată și o supraeșantionare temporară. Consumă mai multe resurse decât MLAA, dar folosește placa video , nu procesorul .

Puteți găsi varietăți:

CMAA

A nti- Aliasarea morfologică conservatoare este o combinație de FXAA și SMAAx1. Ideal pentru plăci grafice slabe și medii . Diferența față de FXAA se datorează procesării liniilor de margine de până la 64 de pixeli lungime . Este utilizat un algoritm care gestionează doar întreruperile simetrice de culoare pentru a evita estomparea inutilă. Diferența față de SMAAx1 se datorează anti-aliasingului mai puțin complet al obiectelor, deoarece sunt procesate mai puține tipuri de forme și are o stabilitate temporală crescută, adică mai puțin pâlpâirea obiectelor.

Vezi și

Note

  1. AnandTech - Radeon HD 5870 de la AMD: Aducerea noii generații de GPU-uri
  2. Jason Gregory și Jeff Lander. Arhitectura motorului de joc (nedefinit) . A. K. Peters, Ltd.  , 2009. - P. 39. - ISBN 9781568814131 .
  3. M. Carmen Juan Lizandra. Biblioteci grafice pentru programare Windows (neopr.)  // Crossroads, ACM Student Magazine. - ACM, 2000. - iunie ( vol. 6 , nr. 4 ). - doi : 10.1145/333424.333433 .  
  4. Rayce185. Anti-aliasing: elementele de bază . overclock (ianuarie 2009).
  5. http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
  6. NVIDIA. TEHNOLOGIA MFAA . nvidia.com.ua _ nvidia.com.ua Data accesului: 17 aprilie 2020.

Literatură

Link -uri