OpenGL(Open Graphics Library - ашық графикалық кiтапхана, графикалық API) - платформалы тәуелсiз программалық интерфейс, екi өлшемдi және үш өлшемдi компьютерлік графиканы қолданушы қосымшаларды жазу үшiн программалау тiлінен тәуелсiз анықтайтын спецификация.

Күрделi үш өлшемдi сахналардың суреттерін салуы үшiн қарапайым примитивтерден 250-ден астам функцияларды қосады. Компъютерлік ойындар жасауда, САПР, виртуалды нақтылықта, ғылыми зерттеулердегi визуализацияда қолданылады. Windowsтiң платформасында Direct3D-мен бәсекелеседi.

Спецификация өңдеу

Негiздi деңгейде, OpenGL - бұл жай ғана спецификация, яғни функциялардың жиыны және олардың дәл мiнез-құлықтарын суреттейтiн құжат . Осы спецификацияның негiзiнде жабдықтың өндiрушiлерi iске асыруларды құрауда - функциялар, спецификацияның функцияларының тиiстi жиындарының кiтапханасы. Іске асыру жабдықтың мүмкiндiктерін мүмкiндігі бар жерде пайдаланады. Егер аппаратура қандай болмасын мүмкiндiкті жүзеге асыруға мүмкiндiк бермесе, ол программалы эмулдануы керек . Іске асыру OpenGL түрде классифицияланғанға дейiн, өндiрушiлер ерекше тесттер (conformance tests - сәйкестiкке тесттер) өтуі керек. Сайып келгенде, программалық қамтамасыз етудiң өңдеушiлерiне аппаратты қамтамасыз етудiң соңғы өңдеушiлерiнiң тиiмдi iске асыруын қалдырып, суреттеп айтылған спецификацияны, функцияны пайдалануды үйренудің өзі жеткiлiктi .

Windows, Unix - платформа, PlayStation 3 және Mac OS үшiн OpenGLның тиiмдi iске асырулары бар. Бұл iске асырулар видеоадаптерлердiң жасап шығарушыларымен әдетте жеткiзiлiп берiледi және соңғы мүмкiндiктердi белсене пайдаланады. Сонымен бiрге OpenGL спецификациясының таза программалық iске асыруларының бірі Mesa кiтапханасы болып табылады. Кодтардың деңгейiнде толық олармен үйлесiмдi болғанымен, лицензиялық пiкiрлерiнен Mesa OpenGLның бейресми iске асыруы болып табылады.

1992 жылы ұйымдастырылған OpenGL спецификациясы ARB Консорциумымен(Architecture Review Board ) қаралады. Консорциум қол жетімді және кең таралған API жасауға қызығушылығы танытатын серiктестiктерден тұрады. OpenGLның ресми сайтына сәйкес, ARB мүшелерiмен 2004 жылдың қарашасына шешушi дауыспен кәсiби графикалық аппаратты құралдарының өндiрушiлері SGI, Matrox және Evans & Sutherland(әскери қосымшалар), ATI және NVIDIAның тұтынушы графиклық аппаратты құралдарының өндiрушiлері, Intel процессорлардың өндiрушiсi, компьютер және және IBM, Apple, Dell, Hewlett-Packard және Sun Microsystemsтiң компьтер жабдықтарын жасап шығарушылар,сонымен бiрге компьютер ойын индустриясының жетекшiлерінiң бiрi id Software болып табылады. Консорциумның бастаушыларының бiрi Microsoft, оны 2003 жылдың наурызында тастап кеттi. Тұрақты мүшелерден тысқары, жылма-жыл OpenGL ARBдың бiр бөлiгi болуға бiр жыл iшiнде дайындалатын басқа серiктестiктердiң үлкен саны шақырылады. Түрлi қызық шеңберіне қатыстырылған мұндай үлкен сандағы серiктестiктер OpenGLның мүдделердiң қолданбалы, үлкен санымен, кең интерфейс тағайындауға мүмкiндiк бердi.

Курт Экли (Kurt Akeley) және Марк Сигал (Mark Segal) OpenGLдың бiртума спецификациясының авторлары болып табылады. Крис Фрэзиер (Chris Frazier) 1.1 версиясын редакциялады. Йон Лич (Jon Leech) 1.2ден 2.0 дейiнгі версияларды редакциялады.

Архитектура өңдеу

OpenGL келесi екi есепте бағдарланады:

•Бейiмделу күрделiлiктерін әр түрлi 3D-үдеткiштер бiртұтас APIлердi өңдеушiге iлiге жабылсын .

Аппаратты платформалардың мүмкiндiктерiндегi айырмашылығын программалық эмуляция көмегiмен жетiспеушiлiкетiн функционалдықтың iске асыруы талап ете жабу.

OpenGL жұмыстар негiзгi қағида жадтағы және/немесе векторлық графикалық қарапайымдардың жиындарының нүктелер, сызықтар және алған мәлiметтердiң келесi математикалық өңдеуi бар көпбұрыштарының түрiндегi алу және растрлық суреттiң құрастыруы пердеде болып табылады. Векторлық өзгерулер және растеризация мән дискреттi автомат болатын (graphics pipeline ) график түрiнде конвейермен орындалады. OpenGLның командаларының басым көпшiлiгi топтар екеуiнiң бiрiлер бiр нәрсеге тиедi: немесе олар конвейерге графикалық қарапайымдар кiруге толықсытады, немесе өзгерулердi әр түрлi орындауға конвейерлердi кескiндейдi.

OpenGL бағдарламашы (тегеурiндi жол) қорытынды растрлық графиктi құрастыру үшiн адымдардың дәл тiзбегiн ерiксiз көндiрдiре алатын төмен деңгейлi процедура APIлерi болып табылады. Бұл барлық сахна қаралудан өтiп пердеде салатын (ағаш жиiрек) мәлiметтер құрылымының түрiнде берiлгенде дескриптор жолдарынан негiзгi айырмашылық болып табылады. Бiр жағынан, тегеурiндi жол үш өлшемдi графиканың заңдарының терең бiлiмнiң бағдарламашысы және математикалық үлгiлерден талап етедi, басқа жағынан - әр түрлi инновациялардың енгiзуi бостандық бередi.