Millised on OpenGL®-i draiverite erinevad tüübid?

OpenGL®, avatud graafikakeel, on avatud lähtekoodiga standardne ja abstraktne programmeerimisliides (API) kolmemõõtmelise (3D) graafika programmeerimiseks arvutiprogrammides. Selleks, et API töötaks kompileerimisel ja käivitamisel, peavad programmi käivitavas arvutis olema installitud õiged OpenGL®-i draiverid. Draivereid on mitut tüüpi, kuid need kõik täidavad ainsat eesmärki, toimides liidesena OpenGL® API abil kirjutatud koodi ja graafikat renderdava riistvara vahel. OpenGL®-i draivereid ei arenda ega vabasta inimesed, kes haldavad OpenGL®-i API-d; selle asemel annavad need välja arvuti sees oleva riistvara tootjad. Ainus erinevus tegelikkuses eri tüüpi OpenGL® draiverite vahel on selle riistvara kood, millega see liidestub.

OpenGL®-i standard sai lõpuks ühtseks lihtsaks platvormiks ja põhiliste 3D-graafika funktsioonide valdavalt keelest sõltumatuks juurutamiseks, mida saaks kasutada väga madalal tasemel riistvaraga liidestamiseks. See arenes selles suunas, kuna kasvas hulk patenteeritud 3D API-sid, millest igaühel oli erinev disainifilosoofia ja funktsioonide allkirjad. API-d võtsid kasutusele nii programmeerijad kui ka riistvaratootjad, kuna see oli avatud lähtekoodiga ega nõudnud kasutamiseks litsentsi ostmist, nagu seda tegi mõni teine ​​operatsioonisüsteem või keelepõhine API.

Põhilisi OpenGL® draivereid toodavad graafikakaartide, laienduskaartide ja graafikakiirendite tootjad. See tähendab, et iga draiver on kirjutatud vastavalt sihtriistvara täpsetele ja täpsetele spetsifikatsioonidele ning et riistvara saab toota nii, et jõudluse suurendamiseks optimeeritakse draiverit. API laialdane aktsepteerimine ja sellega kaasnevad suhteliselt madalad üldkulud on muutnud selle väärtuslikuks valikuks suure jõudlusega graafikarakenduste jaoks ning omakorda ajendanud riistvaratootjaid püüdlema madala taseme optimeerimise poole, et täiendada seda jõudlust oma kaartidega. .

Vastuseks riistvaratootjate jõupingutustele pakkusid OpenGL®-i arendajad mehhanismi, mis võimaldaks draiveritel rakendada kohandatud toiminguid, mida saab OpenGL®-i draiveritesse kodeerida. Need erinevate riistvaraosade erifunktsioonid võivad sisalduda OpenGL® API-s. See võimaldaks tootjal omada graafikakaarti, mis toetab riistvarakiirendusega funktsioone, näiteks kanga simulatsiooni algoritme, ning võimaldaks OpenGL® API-l helistada ja selle funktsiooniga liidestuda. Need laiendused pakkusid mehhanismi, mille kaudu OpenGL®-i draiverid ja API-d võivad muutuda sujuvaks, laiendatavaks mehhanismiks 3D-graafika programmeerimiseks.

Alates 2011. aastast on OpenGL®-i draiverid iga standardit toetava riistvara puhul individuaalsed. Ühtset ühtset draiverit ei saa olla, sest iga riistvaraosa on selgelt erinev ja kasutab mõnikord patenteeritud teavet. See tähendab, et kuigi OpenGL®-i draivereid on tehniliselt mitut tüüpi – üks iga riistvarakaardi jaoks –, täidavad nad programmeerimise seisukohast kõik täpselt sama funktsiooni.