Tutoriale

▷ Opengl: pentru ce este vorba și pentru ce este

Cuprins:

Anonim

Ai auzit vreodată de OpenGL ? A devenit rapid principala API grafică în timp real a industriei, deoarece a fost practic singura disponibilă pe mai multe platforme. Astăzi vă aducem acest articol în care vă explicăm pentru ce este OpenGL și pentru ce este.

Indice de conținut

istorie

În anii 80, dezvoltarea de software compatibil cu o gamă largă de hardware legat de lumea grafică a fost o adevărată provocare pentru dezvoltatori. A trebuit să te ocupi de interfețe foarte diferite și să scrii drivere specifice pentru fiecare tip de hardware, fiind foarte scump, prin urmare, echipe de programatori au fost externalizate pentru a accelera dezvoltarea. Deoarece fiecare echipă a lucrat separat pe interfețele lor, a fost produs o mulțime de cod redundant. În 1992, SGI a condus la crearea OpenGL Architecture Review Board (OpenGL ARB), un grup de companii care va menține și extinde specificația în anii următori. OpenGL a evoluat de la IRIS GL, depășindu-și problema de dependență hardware, oferind emulații software pentru acele funcții neacceptate. Astfel, aplicațiile pot utiliza o grafică avansată pe sisteme relativ slabe.

Pentru a înțelege ce este OpenGL, trebuie mai întâi să știm ce este o API.

Înțelegând OpenGL, ce este o API?

O API sau o interfață de programare a aplicațiilor este un set de coduri care pot fi utilizate pentru diferite aplicații pentru a comunica între ele. Este un lucru care îndeplinește o sarcină similară cu interfața utilizatorului în promovarea interacțiunii între persoană și program, doar aplicat doar și exclusiv în mediul software. Este utilizat pentru a conecta coduri sau funcții între diferite platforme, astfel încât să puteți profita de serviciile unui site web pe altul.

Ce este OpenGL?

Este considerat în principal ca o API care ne oferă un set minunat de funcții pe care le putem folosi pentru a manipula imagini și imagini 3D și 2D. Cu toate acestea, de la sine nu este pur și simplu o API, ci o specificație, dezvoltată și întreținută de Grupul Khronos. De asemenea, este utilizat pentru dezvoltarea jocurilor video, unde concurează cu Direct3D pe platforma Microsoft.

Specifică exact care ar fi rezultatul fiecărei funcții și cum ar trebui să funcționeze. Întrucât specificația OpenGL nu oferă detalii de implementare, versiunile dezvoltate pot avea implementări diferite, atât timp cât rezultatele lor se conformează specificației (și, prin urmare, sunt aceleași pentru utilizator).

Dezvoltatorii bibliotecilor OpenGL sunt de obicei producătorii de plăci grafice. Fiecare GPU acceptă versiuni specifice ale acestei API, care sunt versiunile OpenGL dezvoltate special pentru placa grafică. De exemplu, atunci când utilizează un sistem de la o companie precum Apple, acestea întrețin biblioteca OpenGL și, sub Linux, există o combinație de versiuni ale furnizorului de grafică și adaptări pentru aceste biblioteci. Acest lucru poate însemna că de fiecare dată când OpenGL afișează un comportament ciudat pe care nu ar trebui, este foarte probabil vina producătorilor de carduri grafice. Ori de câte ori există o eroare în implementare, aceasta este de obicei rezolvată prin actualizarea driverelor de carduri grafice. Acești drivere includ cele mai recente versiuni pe care le acceptă GPU. Din acest motiv se recomandă întotdeauna actualizarea driverelor.

Obiective OpenGL

Principalele obiective sunt:

  • Reduceți complexitatea interfeței cu diferite placi grafice , prezentând programatorul cu o API unică și uniformă. Ascundeți diferitele capacități ale diferitelor platforme hardware , necesitând ca toate implementările să suporte setul complet de funcții OpenGL (folosind emularea software, dacă este necesar).

Operația de bază a OpenGL este să accepte acțiuni primitive, cum ar fi puncte, linii și poligoane și să le convertiți în pixeli. Acest proces este realizat de o conductă grafică cunoscută sub numele de OpenGL State Machine. Majoritatea comenzilor OpenGL emit operații primitive pentru segmentarea graficului. Până la lansarea versiunii 2.0, fiecare etapă a segmentării a fost executată într-o funcție stabilită, rezultând o configurabilitate redusă. De la această versiune, mai multe etape sunt complet programabile folosind GLSL.

extensiile

O caracteristică foarte interesantă este suportul pentru extensie. Ori de câte ori o companie de GPU introduce o nouă tehnologie sau un nou mod de optimizare pentru a reda imagini 3D , aceasta este într-o extensie implementată în drivere. Dacă hardware-ul pe care rulează o aplicație acceptă această extensie, dezvoltatorul poate utiliza funcționalitatea oferită de extensie pentru a obține o grafică mai avansată sau mai eficientă. În acest fel, un dezvoltator de jocuri video poate utiliza aceste noi tehnici de redare fără a fi necesar să așteptați ca OpenGL să includă funcționalitatea în versiunile viitoare, pur și simplu verificând dacă placa grafică acceptă extensia. Adesea, atunci când o extensie este populară sau foarte utilă, aceasta devine în cele din urmă parte a versiunilor viitoare ale OpenGL.

VĂ RECOMANDĂM Mad Max lansează suport pentru Vulkan în noua sa beta publică pentru Linux

Evoluție OpenGL

În martie 2015, API-ul Vulkan a fost introdusă ca succesorul OpenGL la Conferința dezvoltatorilor de jocuri. Inițial cunoscută sub numele de „Next Generation OpenGL” sau „glNext”, interfața de programare este open source și cross-platform. Diferența cu OpenGL este că se acordă mai multă atenție hardware-ului în timpul programării, ceea ce crește semnificativ puterea. Unele jocuri pe PC acceptă deja Vulkan, dar majoritatea folosesc DirectX. Vulkan este dezvoltat și de Grupul Khronos.

Vă recomandăm să citiți cele mai bune carduri grafice de pe piață.

Până acum articolul nostru despre OpenGL, sperăm că ai înțeles din ce constă și multe altele. În orice caz, puteți lăsa orice întrebări în comentarii.

Tutoriale

Alegerea editorilor

Back to top button