× Aktuálně z oboru

Vychází Game Ready ovladače pro Far Cry 5 [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]
Celá zprávička [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]

Verze OpenGL

[ http://programujte.com/profil/1483-lukas-chury/ ]Google [ https://plus.google.com/101446994797551111026?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       28. 5. 2006       33 698×

Her pro rozhraní OpenGL je ve světě Windows ve srovnání s DirectX přece jen méně. Přitom právě OpenGL je skutečným standardem počítačové grafiky (nejen ve hrách, ale i v profesionálním oboru) na mnoha platformách.

Schopnosti grafi cké karty jsou v OpenGL vymezeny především podporou tzv. extenzí (extension je anglicky rozšíření). Pomocí nich se rozšiřuje paleta funkcí původního OpenGL 1.0. Příkladem zápisu extenze budiž třeba GL_ARB_multisampling. Začátek GL_ napovídá, že se jedná o extenzi, ARB_ je názvem sdružení, které se o novou extenzi zasloužilo (může zde být také třeba ATI_ nebo NV_) a multisampling je činnost, kterou extenze zahrnuje. Zde tedy vyhlazovaní hran.


Extenze jsou také trochu kamenem úrazu OpenGL; protože je lze patentovat, nerozšíří se u konkurence a nestanou se standardem, který by byl podporován. Oproti DirectX je standardem třetí strany a cokoli z jeho specifikace mohou používat všichni výrobci hardwaru. Do standardu OpenGL jsou zahrnovány samozřejmě univerzálně použitelné extenze, ale ATI nebo nVidia mají pro některé z nich vlastní alternativy.

Typickým příkladem je poslední specifikace OpenGL 2.0, do které byl konečně zahrnut vyšší programovací jazyk OpenGL shaderů – GLSL. Společnost nVidia však oficiálně stále uvádí, že její ovladače podporují OpenGL 1.5. Přitom většinu potřebných extenzí pro shadery podporovala už dávno, pouze ve vlastním provedení (GL_NV místo GL_ARB).


Jak to funguje

OpenGL je rozhraní pro programování aplikací, které může fungovat nad libovolným hardware, který pracuje s pixely (má frame buffer). V OpenGL je vše popsáno stavy a programátor svými příkazy tyto stavy mění. OpenGL je nezávislé na platformě a prostřednictvím ovladače komunikuje přímo s hardware (nikoli přes operační systém). Přístup k vykreslování (grafická pipeline) se od Direct3D přece jen liší. Počáteční data (vrcholy i pixely, tedy objekty a textury) se uloží do seznamu. Následně se zpracují vrcholová data a vypočítají jednotlivé body z jimi vymezených trojúhelníků (pasterizace), zvlášť se pak provedou potřebné operace s texturami, jež se nanesou až na rasterizované trojúhelníky. Jednotlivým takto vzniklým pixelům se říká fragmenty a s nimi dále pracuje fragment procesor (shader).


Chcete-li zjistit, jakou verzi OpenGL podporuje vaše karta a ovladače, stáhněte si ze stránky www.raltech-vr.com [ http://www.realtech-vr.com/glview ] program OpenGL Extension Viewer. Zjistíte v něm například, že hlavním přínosem OpenGL 1.1 bylo urychlení a zjednodušení práce s vrcholy, v OpenGL 1.2 přibyly 3D textury, v důležité verzi 1.3 pak vícenásobné texturování, multi-sampling, komprese textur a bump mapping. Práce se shadery byla ukotvena ve verzi 1.5 a teprve nedávno vydaná verze 2.0 dohnala DirectX 9.0. GLSL by měly podporovat všechny karty nVidia od GeForce FX 5200 a ATI od Radeonu 9500 výše. To, že některé extenze podporují jen karty ATI a některé jen nVidia, vás tolik mrzet nemusí, protože vytvořit hru běžící jen na čipech jedné z firem si žádná vývojářská společnost netroufne. To spíše narazíte na technologická dema (typicky vnadné víly Dawn a Dusk od nVidie), která normálně běží jen na kartách určeného výrobce. Pro některé extenze lze najít na internetu tzv. wrapper, tedy překladač, který za cenu velmi nízké rychlosti umožní alespoň spuštění a prohlédnutí daného dema na kartě, pro niž nebylo původně navrženo.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006052606-verze-opengl/ ].