Какво е OpenGL

OpenGL е без съмнение преобладаващият интерфейс за индустриално програмиране (API) за разработване на 2D и 3D приложения. Може да се разглежда като наследник на GL библиотеката за Silicon Graphics IRIS, което направи работните станции SGI много популярни като платформа за научно, инженерно и специално въздействие. SGI инвестира много от своя опит в OpenGL, за да направи библиотеката лесна за използване, интуитивна, преносима, мрежова библиотека на бъдещето. В същото време трябва да отдадем заслуга на разбирането на SGI за важността на отворените стандарти. Няколко производители на хардуерни и софтуерни продукти взеха участие в разработването на стандарта. В резултат на това приложенията на OpenGL могат лесно да бъдат пренесени на почти всяка платформа на пазара днес, от компютри с Windows95 до нашата страхотна система Linux, от високопроизводителни работни станции UNIX до супер мейнфрейм компютри. Спецификацията на OpenGL се преглежда от Комитета за архитектурен преглед, приема или отхвърля промени и предлага тестове за съвместимост.

За разлика от старата библиотека SGI GL за IRIS, OpenGL е независима по дизайн платформа и операционна система. Библиотеката е свързана в мрежа, което позволява на приложението да се изпълнява на сървъра и на клиента да изобразява (показва) графики. Специален протокол прехвърля команди на OpenGL между сървър и клиент. Поради независимостта на операционната система, сървърът и клиентът могат да работят на различни платформи. Доста често сървърът е суперкомпютър, който прави сложни симулации, а клиентът е проста работна станция, занимаваща се предимно с графично изобразяване. OpenGL позволява на разработчиците да пишат приложения, които могат лесно да бъдат внедрени на множество платформи.

За да се постигне хардуерна независимост на OpenGL, командите за управление на прозорци, както и команди за получаване на вход от потребителя, са премахнати. Това може да изглежда като основен недостатък при използване на OpenGL, но както ще видим по-късно (вижте поредицата за програмиране GLUT), възможно е да се комбинира OpenGL с други гъвкави библиотеки, които ще се грижат за задачите на прозореца и получаването на потребителски данни. Освен това OpenGL не предоставя команди за описване на сложни модели (молекули, самолети, сгради, птици и т.н.). В OpenGL ще намерите само най-примитивните геометрични обекти (точки, линии и полигони). От разработчика зависи да създаде свои собствени модели, базирани на тези няколко прости примитива. Съществуват и библиотеки, свързани с OpenGL, които предоставят по-сложни модели и всеки може да използва тези библиотеки, за да изгради свои собствени.

В нашата поредица от статии за OpenGL програмиране ще използваме C интерфейса за OpenGL като най-популярния. Читателят обаче трябва да е наясно, че има възможности за използване на други езици с OpenGL: FORTRAN, C ++, Ada и Java. По-късно в нашата поредица, след като четецът се запознае с C интерфейса за OpenGL, ще кажем малко за Open-Inventor, библиотека за разширения на OpenGL в C.++.