Ce este un OpenGL® Quad?

Un patrulater OpenGL®, sau quad, în programarea computerelor și grafică este o formă tridimensională (3D), numită și poligon, care are patru laturi și patru puncte. Fiecare punct 3D care reprezintă un singur colț al quad-ului OpenGL® este cunoscut ca un vârf și este definit cu trei numere legate de poziția sa de coordonate în spațiul virtual. Vârfurile unui quad nu trebuie să urmeze linii directoare reale, cu excepția faptului că trebuie să existe patru dintre ele; în caz contrar, forma este cunoscută ca poligon, triunghi sau linie în funcție de numărul real. Majoritatea imaginilor digitale sunt de fapt dreptunghiulare, așa că un OpenGL® quad poate fi o formă utilă, deoarece imaginea poate fi mapată textura la suprafață fără o cantitate mare de distorsiuni și fără a fi nevoie de tehnici complexe de cartografiere a texturii. Cu toate acestea, utilizarea unui OpenGL® quad are propriile provocări și există o serie de programatori care sugerează evitarea completă a utilizării acestora.

Una dintre utilizările majore pentru un OpenGL® quad este de a desena grafică bidimensională (2D) într-un mediu 3D. Acest lucru se poate face pentru a avea o interfață statică de utilizator suprapusă deasupra unei scene 3D sau pentru a emula grafica 2D cu OpenGL®. Chiar dacă OpenGL® a fost conceput pentru a reda grafică 3D complexă, este frecvent utilizat în aplicațiile de grafică 2D datorită optimizărilor și flexibilității interfeței de programare abstractă (API). Un quad devine foarte important în redarea graficelor 2D, deoarece este o reprezentare 3D naturală a unei imagini digitale, ceea ce înseamnă că un quad poate fi proporțional pentru a se potrivi exact cu dimensiunea imaginii. Odată ce proporțiile se potrivesc, imaginea poate fi mapată cu textura sau proiectată pe suprafața quad-ului fără niciun tip de distorsiune, înfășurare sau spațiu de scurgere.

Un avantaj al utilizării unui OpenGL® quad, potrivit unor programatori, este că este mai ușor să ne gândim la modul în care se potrivesc quad-urile, spre deosebire de vizualizarea modului în care triunghiurile se potrivesc. Acest lucru este valabil mai ales pentru formele 3D simple, cum ar fi un cub în care fiecare quad este o singură latură; cu o plasă triunghiulară, două triunghiuri trebuie combinate pentru a face un patrulă care face o singură latură. Quadurile pot fi, de asemenea, manipulate cu ușurință pentru a crea perspectivă sau alte efecte într-un mediu care este fie placat, fie aliniat la o grilă.

Există unele dezavantaje în utilizarea unui OpenGL® quad, mai ales din cauza algoritmilor utilizați pentru a rasteriza sau a reda o imagine în fereastra vizualizatorului. Una dintre cele mai întâlnite probleme este că placa de redare sau grafică ar putea, în orice moment, să spargă quad-ul în două triunghiuri în scopul eficienței. Acest lucru poate face ca o suprafață altfel netedă să aibă brusc o distorsiune vizibilă la un unghi prin quad, unde marginile triunghiurilor se întâlnesc.

O altă problemă care este mai comună decât se crede uneori are de-a face cu tăierea unui OpenGL® quad. Când o parte a quad-ului se află în afara ferestrei de vizualizare, în afara ecranului, redarea va decupa quad-ul astfel încât să fie redată doar porțiunea vizibilă. Aceasta înseamnă că un quad va fi tăiat geometric. Dacă quad-ul a fost convertit în două triunghiuri înainte de a avea loc tăierea, atunci fiecare triunghi devine un quad, iar fiecare dintre acele quad-uri este convertit în două triunghiuri. Acest lucru duce la o situație în care un quad tăiat este format dintr-o dată din patru triunghiuri în loc de un quad neted.

Complexitățile și imprevizibilitatea conversiei quad-urilor în triunghiuri conduc la rezultate nedorite. Acestea includ distorsiuni ale texturilor, inexactități sau artefacte legate de iluminarea vârfurilor și, uneori, suprafețele poligonului lipsă. Din aceste motive, unii programatori evită cu totul utilizarea quad-urilor.