OpenGL

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

OpenGL (Open Graphics Library) je průmyslový standard specifikující multiplatformní rozhraní (API) pro tvorbu aplikací počítačové grafiky. Používá se při tvorbě počítačových her, CAD programů, aplikací virtuální reality či vědeckotechnické vizualizace apod.

Aktuální verze je OpenGL 4.4 z 21. července 2013.

Standard OpenGL spravuje konsorcium označované jako ARB (Architecture Review Board), jehož členy jsou firmy jako např. NVIDIA, SGI, Microsoft, AMD atd.

Implementace[editovat | editovat zdroj]

Implementace OpenGL existují pro prakticky všechny počítačové platformy, na kterých je možno vykreslovat grafiku. Kromě implementací vestavěných v grafickém hardware (na grafické kartě) existují také softwarové implementace, které umožňují používat OpenGL i na hardwaru, který ho sám o sobě nepodporuje (ale obvykle nabízejí nižší výkon). Příkladem takové implementace je open source knihovna Mesa 3D, která ovšem z licenčních důvodů nemůže být označena jako implementace OpenGL, ale pouze jako implementace API, které je „velmi blízké“ OpenGL.

Struktura OpenGL[editovat | editovat zdroj]

Základní funkcí OpenGL je vykreslování do framebufferu. Umožňuje vykreslování různých základních primitiv (bodů, úseček, mnohoúhelníků a obdélníků pixelů) v několika různých režimech. Veškerá činnost OpenGL se řídí vydáváním příkazů pomocí volání funkcí a procedur (kterých OpenGL definuje cca 250). V OpenGL se nepoužívá objektově orientované programování. Jednotlivá primitiva jsou definována pomocí vrcholů – každý z nich definuje bod, koncový bod hrany nebo vrchol mnohoúhelníku. Každý vrchol má přiřazena data (obsahující souřadnice umístění bodu, barvy, normály a texturovací souřadnice).

Rozhraní OpenGL je založeno na architektuře klient-server – program (klient) vydává příkazy, které grafický adaptér (server) vykonává. Díky této architektuře je možné, aby program fyzicky běžel na jiném počítači než na tom, na kterém se příkazy vykonávají, a příkazy se předávaly prostřednictvím počítačové sítě.

Historie[editovat | editovat zdroj]

V 80. letech 20. století byla opravdovou výzvou vyvíjet software, který by mohl pracovat s různým grafickým hardwarem. Softwarový vývojáři psali různá rozhraní a ovladače pro každý kus hardwaru. Tato práce byla velice drahá a bylo vyžadováno veliké úsilí.

Na počátku 90. let byla jedničkou v 3D grafice firma SGI. Jejich technologie IRIS GL API byla považována za nejmodernější a de facto se stala průmyslovým standardem zastiňující technologii PHIGS. IRIS GL se stala nejpoužívanější díky své jednoduchosti pro použití a podpory okamžitého renderování. Naproti tomu metoda PHIGS byla považován za obtížnou k použití a zastaralou ve smyslu funkčnosti.

Konkurenti SGI (včetně Sun Microsystems, Hewlett Packard a IBM) také chtěli na trh přinést 3D hardware, podporovaný rozšířením vytvořeným pro standard PHIGS. Čím více dodavatelů 3D hardwaru bylo, tím menší měla SGI podílu trhu. Ve snaze ovlivnit trh, SGI se rozhodla změnit jejich IrisGL API na volně otevřený standard nazvaný OpenGL.

Nicméně SGI měla velký počet zákazníků softwaru, pro které změna z IrisGL na OpenGL představovala větší investici. Navíc rozhraní IrisGL mělo funkce, které nebyly důležité pro 3D grafiku. Například obsahovalo zvlášť funkce pro okna, rozhraní pro myš a klávesnici, protože bylo vyvíjeno před X Window System a Sun NeWS systémy. Také knihovny IrisGL byly kvůli licencovaným a patentovaným částem nevhodné pro volný přístup. Tyto důvody donutily SGI nadále podporovat moderní Iris Inventor v programování rozhraní když obchod pro OpenGL kvetl.

Jedno z omezení IrisGL bylo to, že poskytoval přístup pouze k funkcím podporovaným základním hardwarem. Pokud grafický hardware nepodporoval některé funkce, aplikace nebyla schopna je použít. OpenGL tento problém obcházel poskytováním podpory pomocí softwaru pro vlastnosti nepodporované hardwarem tím, že dovoloval aplikacím používat pokročilou grafiku na relativně nízkovýkonových systémech. OpenGL standardizoval přístup k hardwaru tak, že tlačil odpovědnost za vývoj na výrobce hardwaru a přenesené funkce na základní operační systém. S tolika různými druhy grafického hardware, pokud by všechny uměly komunikovat stejným jazykem, by to mělo významný vliv na to, že by vývojáři mohli vyvíjet 3D software na vyšších úrovních.

V roce 1992, SGI byla vedena k vytvoření OpenGL průmyslového konsorcia (OpenGL ARB), skupina společností, které udržují a rozšiřují specifikaci OpenGL v budoucnu.

V roce 1994 si SGI hrála s myšlenkou realizovat OpenGL++, které by vkládalo možnosti jako např. rozhraní grafů. Myšlenka nikdy nebyla realizována.

V roce 1995 Microsoft zveřejnil Direct3D, který byl schopen konkurovat OpenGL. Dne 17. prosince 1997 Microsoft a SGI zahájili Fahrenheitův projekt, který měl spojit to nejlepší z OpenGL a Direct3D (přidávaje rozhraní pro grafy). V roce 1998 se k projektu připojil Hawlett Packard. To z počátku ukázalo nějaký příslib přinesení řádu do světa interaktivní 3D počítačové grafiky, ale z důvodu finančních omezení v SGI, strategických důvodů u Microsoftu a obecného nedostatku podpory průmyslu byl opuštěn v roce 1999.

V červenci roku 2006 OpenGL ARB hlasovala pro přenesení kontroly nad OpenGL standardem pod Khronos Group.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]