OpenGL ES

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

OpenGL ES (z anglického OpenGL for Embedded Systems) je část OpenGL rozhraní (API) pro počítačové vykreslování 2D a 3D grafiky pro použití ve video hrách, typicky akcelerovaných za pomoci GPU. Je určen pro malé, vestavěné systémy, jako smartphony, tablety, herní konzole a osobní plánovače.

Toto API je použitelné v mnoha počítačových jazycích a na více platformách. Nepředstavuje ekvivalent k OpenGL API jako GLUT nebo GLU pro OpenGL ES. +more OpenGL ES je spravováno neziskovým technologickým konsorciem Khronos Group.

Verze

Existuje několik verzí specifikací OpenGL ES. OpenGL ES 1. +more0 je postavena na roveň specifikace OpenGL 1. 3, OpenGL ES 1. 1 je definována vztahem ke specifikaci OpenGL 1. 5 a OpenGL ES 2. 0 je definována relativně ke specifikaci OpenGL 2. Tím je myšleno, že například nějaká aplikace napsaná pro Open GL ES 1. 0 může být snadno přenesena na desktopovou OpenGL 1. 3. OpenGL ES je zjednodušená verze tohoto API, a obrácený postup může a nemusí být úspěšný, v závislosti na použitých rysech API.

Rozdíly ve verzích OpenGL a OpenGL ES jsou potom například v podpoře pohyblivé řádové čárky, kdy OpenGL ES podporuje pouze pevnou řádovou čárku (celá čísla).

OpenGL ES 1.0

OpenGL ES 1. 0 obsahuje funkcionalitu hodně omezenou oproti originalnímu OpenGL API a jen trochu funkcionality je přidáno navíc. +more Jeden zřetelný rozdíl mezi OpenGL a OpenGL ES je ten, že OpenGL ES odstraňuje potřebu uzavírat volání OpenGL knihovny s glBegin a glEnd. Další výraznou změnou je, že sémantika základních vykreslovacích funkcí umožňuje volání s vertex poli a podporu pevné řádové čárky pro vertex souřadnice. Také byly přidány atributy pro podporu vestavěných (grafických) procesorů, které často postrádají FPU, jednotku pro počítání s desetinnými čísly. Mnoho dalších funkcí a vykreslovacích součástí bylo kvůli odlehčení ve verzi OpenGL ES odstraněno, včetně:.

* čtyřúhelníkové a polygonální vykreslovací primitiva, * polygonální a antialiased polygonál rendering není podporován, přestože vykreslování použitím multisamplingu je stále možné (raději než alpha border fragmenty), * ARB_Image pixel class operace není podporována, ani bitmaps nebo 3D textures, * několik komplikovaných vykreslovacích módů je eliminováno, včetně frontbufferu akumulačního bufferu. Bitmapové operace, speciálně kopírování jednotlivých pixelů není možné, ani evaluatory, ani (uživatelem) vybrané operace, * display listy a zpětná vazba je odebrána, jako jsou push a pop operace pro stavové attributy, * některé materiálové parametry byly odstraněny, včetně back-face parametrů a uživatelsky definovaných ořezávacích rovin.

OpenGL ES 1.1

OpenGL ES 1.1 přidává například povinnou podporu pro multitexture, vylepšenou multitexturovou podporu (včetně slučovače a skalárního operace součinu textury), automatické generování mipmap, vertex buffer objects, stavové dotazy, uživatelských ořezávacích rovin, a větší možnosti co se týče vykreslování bodů.

OpenGL ES 2.0

OpenGL ES 2. 0 bylo zveřejněno v březnu 2007. +more Je zhruba na úrovni OpenGL 2. 0, ale eliminuje většinu renderovacích pipeline s pevně nastavenou funkcí ve prospěch programovatelných funkcí podobně, jako v případě přechodu od OpenGL 3. 0 to 3. 1. Řízení průchodu ve shaderech je obecně omezeno na dopředné skoky a cykly, kde maximální počet průchodů může být snadno určen při překladu. Většina všech vykreslovaných vlastností transformační a osvětlovací fáze, jako je specifikace materiálu a světelných parametrů dříve stanovených pevnou funkce API, se nahrazují shadery napsaných grafickým programátorem. Výsledkem je, že OpenGL ES 2. 0 není zpětně kompatibilní s OpenGL ES 1. 1. Některé nekompatibility mezi desktopovou verzí OpenGL a OpenGL ES 2. 0 zůstávají do OpenGL 4. 1, kdy je přidáno rozšíření GL_ARB_ES2_compatibility.

OpenGL ES 3.0

Specifikace OpenGL ES 3. 0 byla zveřejněna v srpnu 2012. +more OpenGL ES 3. 0 je zpětně kompatibilní s OpenGL ES 2. 0, umožňuje aplikacím postupně přidávat nové vizuální vlastnosti do aplikací. OpenGL 4. 3 poskytuje plnou kompatibilitu s OpenGL ES 3.

Nové funkce ve specifikaci OpenGL ES 3.0 zahrnují: * několikanásobná rozšíření ve vykreslovací pipeline pro umožnění akcelerace pokročilých vizuálních efektů včetně: occlusion queries, transform feedback, instanced rendering a podpora pro čtyři nebo více vykreslovaných objektů, * vysoce kvalitní ETC2 / EAC komprese textur jako standard, eliminující potřebu odlišného souboru textur for each platform, * nová verze GLSL ES shader jazyka s plnou podporou pro celočíselné a desetinné operace v jednoduché přesnosti (32 bit), * velice rozšířené functionality pro texturování, včetně garantované podpory pro desetinné textury, 3D textury, depth textury, vertex textury, NPOT textury, R/RG textury, immutable textury, 2D pole textur, swizzles, LOD a mip level clamps, bezešvé cube maps a sampler objekty, * rozšiřující soubor vyžadovaných, explicitně určené textury a render-buffer formáty, redukující implementační variabilitu a usnadňující psaní mobilních aplikací.

OpenGL ES 3.1

Specifikace OpenGL ES 3. 1 byla zveřejněna v březnu 2014. +more OpenGL ES 3. 1 je zpětně kompatibilní s OpenGL ES 2. 0 a OpenGL ES 3. 0, poskytuje funkce odlehčeného Open GL 4. 4 z desktopového prostředí.

Nové funkce ve specifikaci OpenGL ES 3. 1 zahrnují: * zavedení výpočetních shaderů - applikace mohou použít GPU k provádění výpočetních úloh, úzce spojených s grafickým vykreslováním. +more Výpočetní shadery jsou napsány v GLSL ES výpočetním jazyce, a mohou sdílet data s grafickou pipeline; * oddělené objekty shaderů - applikace mohou programovat vertex a fragment shader stupně GPU nezávisle, a mohou střídat a srovnávat vertex a fragment programy bez explicitního spojovacího kroku; * nepřímé vykreslovací příkazy - GPU může být zadáno zpracovat vykreslovací příkazy z jeho paměti raději, než čekat na příkazy z CPU. Toto umožňuje například výpočetní shader běžící na GPU k provádění fyzikální simulace a potom generování vykreslovacích příkazů nezbytných pro zobrazení jejich výsledků, bez intervence CPU; * vylepšená texturovací funkcionalita - zahrnující multisample textury, stencil textury, a texture gather; * vylepšení jazyka shaderů - nové aritmetické a bitové operace, a vlastnosti umožňující moderní styl programování shaderů; * volitelná rozšíření - per-sample shading, pokročilé blending módy, a tak dále.

Použití platformy v systémech

OpenGL ES 1.0

OpenGL ES 1. 0 přidal oficiální 3D grafické API do operačních systémů Android a Symbian, podobně jako do QNX Je podporován i v PlayStation 3 jako jedno z oficiálních grafických rozhraní (API) za použití Nvidia's Cg místo GLSL. +more PlayStation 3 také podporuje několik vlastností z verze OpenGL ES 2.

OpenGL ES 1.1

Verze 1.1 OpenGL ES je podporována:

* Android 1. 6 * Apple iOS pro iPad, iPhone, a iPod Touch * RIM's BlackBerry 5. +more0 operační systém série (pouze BlackBerry Storm 2, BlackBerry Curve 8530 a pozdější modely mající potřebný hardware) * BlackBerry PlayBook * BlackBerry BB10 * Palm webOS, za použití Plug-in Development Kit * Nintendo 3DS.

OpenGL ES 2.0

Verze 2.0 OpenGL ES je podporována:

* Platformou Android počínaje Androidem 2. 0 za pomoci NDK a v Android 2. +more2 za pomoci Javy * Apple iOS 5 a pozdější v iPad, iPad Mini, iPhone 3GS a pozdějším, a iPod Touch 3. generace a pozdější * BlackBerry zařízení s BlackBerry OS 7. 0 a Blackberry 10, stejně jako BlackBerry PlayBook * Google Native Client * Různé Nokia telefony (jako jsou například na Symbian^3 založená Nokia N8 a na Maemo založená Nokia N900) * Palm webOS, za použití Plug-in Development Kitu * Pandora console * Raspberry Pi * Různé Samsung mobilní telefony (jako například Wave) * Web prohlížeče (WebGL) * Ouya hrací konsole * GCW-Zero konsole.

OpenGL ES 3.0

Verze 3.0 OpenGL ES je podporována:

* Operačním systémem Android počínaje verzí 4. 3, na zařízeních s příslušným hardwarem a jeho ovladači hardwaru, zahrnující: ** Nexus 7 (2013) ** Nexus 4 ** Nexus 5 ** Nexus 10 ** HTC Butterfly S ** HTC One/One Max ** LG G2 ** +more3'>LG G Pad 8. 3 ** Samsung Galaxy S4 (Snapdragon verze) ** Samsung Galaxy Note 3 ** Samsung Galaxy Note 10. 1 (2014 Edition) ** Sony Xperia Z/Xperia Z Ultra ** Sony Xperia Z1 ** Sony Xperia Tablet Z.

* iOS počínaje verzí 7, na zařízeních: ** iPhone 5S ** iPad Air ** iPad mini with Retina display

* BlackBerry ** BlackBerry 10 OS verze 10.2 v BlackBerry Z30.

Podporováno některými posledními verzemi následujících GPU: [url=https://www. khronos. +moreorg/conformance/adopters/conformant-products#opengles]Khronos Products[/url] [http://www. brightsideofnews. com/news/2013/4/11/the-state-of-opengl-es-30-whos-got-what. aspx] * Mali T6xx série (Android, Linux, Windows 7) * Adreno 3xx a 4xx série (Android, Windows Phone 8, Windows RT) * PowerVR Series6 (iOS, Linux) * Vivante (Android, OS X 10. 8. 3, Windows 7) * NVIDIA (Android, Linux, Windows 7) * Intel (Linux).

OpenGL ES 3.1

Verze 3.1 OpenGL ES je podporována:

* Operačním systémem Linux, Windows, Android od verze 5.0 a vyšších, na zařízeních s příslušným hardwarem a jeho ovladači hardwaru, zahrnující: ** Samsung Galaxy S5 Broadband LTE-A

Verzi 3.1 OpenGL ES jsou připravena podporovat poslední verze některých grafických procesorů ARM Mali, konkrétně například Raspberry Pi - model 4 "B".

OpenGL ES 3.2

NVidia vydala ovladače k OpenGL ES 3.2.

Odkazy

Reference

Literatura

Související články

OpenGL - průmyslový standard specifikující multiplatformní rozhraní (API) pro tvorbu aplikací počítačové grafiky, * Vulkan - grafické multiplatformní rozhraní * WebGL - jako OpenGL, pro JavaScript, * OpenAL - je audio standard, * OpenCL - průmyslový standard specifikující multiplatformní rozhraní (API) pro tvorbu výpočetně náročných aplikací, * GLUT - OpenGL Utility Toolkit, * ALUT - OpenAL Utility Toolkit, * DirectX - grafické API pro Microsoft Windows, * Direct3D - součást DirectX.

Externí odkazy

[url=http://developer. android. +morecom/guide/topics/graphics/opengl. html]OpenGL ES (Google Android Developer Homepage)[/url] * [url=http://www. khronos. org/bugzilla/]Public bug tracking[/url] * [url=http://www. khronos. org/members/conformant#opengles]OpenGL ES Conformant companies[/url] * [url=https://web. archive. org/web/20080915121240/http://www. khronos. org/message_boards/viewforum. php. f=19]Public forums[/url] * [url=http://www. glbenchmark. com/result. jsp]List of OpenGL ES compatible devices[/url] * The Firefox effort to support 3D based on OpenGL ES with the <canvas> tag * [url=http://code. google. com/p/angleproject/]ANGLE: OpenGL ES 2. 0 implementation on top of Direct3D 9[/url] * [url=https://web. archive. org/web/20140214144547/http://malideveloper. arm. com/develop-for-mali/tools/opengl-es-2-0-emulator/]OpenGL ES 1. 1 & 2. 0 Emulator from ARM[/url] * [url=https://web. archive. org/web/20140128102919/http://malideveloper. arm. com/develop-for-mali/tools/opengl-es-3-0-emulator/]OpenGL ES 3. 0 Emulator from ARM[/url] * [url=https://web. archive. org/web/20140201192617/http://nopper. tv/opengles. html]OpenGL ES 3. 0 example programs[/url].

Kategorie:OpenGL Kategorie:Programové knihovny Kategorie:Počítačová grafika Kategorie:Počítačová 3D grafika Kategorie:Otevřené standardy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top