OpenGL vedle DirectX stále žije - vychází openGL 3 Tisk E-mail
Napsal ElCondor   
Středa, 14 listopad 2007
Přejít na obsah
OpenGL vedle DirectX stále žije - vychází openGL 3
OpenGL a Direct3D (DirectX) - srovnání výkonu

 

  • OpenGL a Direct3D (DirectX) - srovnání výkonu

  Poté, co se obě API (Direct3D a openGL) etablovaly na trhu, bylo možno sledovat něco, čemu se dá říkat "API Wars". Nejvíce argumentů se točilo okolo otázky, které API podává vyšší výkon. Tato otázka nabývala na důležitosti i vzhledem k vysokým cenám grafických akcelerátorů a vzhledem k tomu, že Microsoft v té době implementoval obě API. Microsoft pochopitelně vydával své Direct3D API za výkonnější a dokládal to řadou svých vnitropodnikových testů. Velkou ztrátu výkonu openGL zdůvodňoval přesnou specifikací opekl apod...

Tento všeobecně šířený FUD vzal za své v roce 1996 na SIGGRAPH (Special Interest Group on Computer Graphics) conference. Tehdy SGI vyzvala Microsoft na souboj s jejich vlastní implementací optimalizovanou pro Windows zvanou CosmoGL. Následné demonstrace prokázaly, že openGL se Direct3D minimálně vyrovná, v mnoha případech jej však výkonnostně překonává. Tento "souboj" prokázal, žeproklamovaný "špatný" výkon openGL ve windows byl způsoben (?záměrnou?) špatnou implementací opekl Microsoftem, nikoli špatným návrhem openGL. (neopakuje se situace ve Vistě?)

dx9

Podstatnější rozdíly ve výkonu obou API se odvíjejí od struktury ovladačů dodávaných výrobci HW. Pod DirectX, ovladače výrobců HW jsou kernel-mode ovladače instalované do operačního systému. User-mode část je pak zajišťována pomocí DirectX runtime poskytovaného společností Microsoft. Naproti tomu pod openGL je ovladač HW dodaný výrobcem rozdělen na user-mode část implementující openGL API a kernel-mode ovladač, kterého volá user-mode část. (Česky řečeno, pod DirectX tvoří celek ovladače 2 společnosti - dodavatel HW + Microsoft, pod openGL je to pouze dodavatel HW).

Problémem je, že volání kernel-mode operací z user-mode vyžaduje přepnutí CPU do kernel-mode. Tato procedura vyžaduje velmi dlouhou dobu (několik mikrosekund) a v této době není CPU schopno provádět žádnou operaci. Proto je třeba maximální optimalizace, aby se počet těchto procedur s CPU snížil na minimum. Například: Pokud je command-buffer grafického jádra plný renderovaných dat, API může jednoduše další volně ukládat do dočasného bufferu, a až je command-buffer Grafického jádra téměř prázdný, může provést změnu kernel-mode a "nasypat" tam nahromaděná volání najednou. Tato optimalizace bývá nazývána jako Marshaling.

dx10

Protože ovladače dodávané výrobcem jsou kernel-mode a user-mode je mimo vliv výrobce (Microsoft DX-runtime) nemá výrobce žádnou možnost provedení takovýchto optimalizací. Protože direct3D - user-mode část implementující API, nemůže mít žádné informace o tom, jak funguje "cizí" ovladač, nemůže také efektivně Marshalling podporovat. Z toho vyplývá, že každé Direct3D volání musí provést časově náročný kernel-mode switch. Protože OpenGL HW ovladač výrobce má svoji user-mode část, výrobce má možnost implementovat Marshalling a zvyšovat tak výkon. Pod openGL jsou samozřejmě také prováděny operace přepnutí do kernel-mode, ale teoretické maximum počtu těchto operací pod openGL je rovno standardnímu počtu prováděnému pod Direct3D. Až Direct3D 10 (DirectX10), vývojový "hit" posledních dní, implementuje vlastnosti, které má openGL už léta a umožňuje provozovat části ovladačů v user-mode a umožnit tak Marshalling, čímž se výkon obou API víceméně srovnává.

  • OpenGL a Direct3D (DirectX) -

                          porovnání vlastností a použití

OpenGL vždy nacházelo více využití v profesionální sféře, zatímco Direct3D se zaměřilo pouze na hry. V minulosti většina profesionálních karet podporovala pouze openGL a až v poslední době jsou profesionální karty od ATI, nVidie a Matroxu dodávány s podporou obou API. Důvod pro převahu openGL v profesionálním segmentu je částečně historický. Spousta profesionálních aplikací byla napsána pro IrixGL a provozována na pracovních stanicích SGI a následně portována na openGL. Navíc, jak jsem již zmínil, velká část profesionálních karet podporovala pouze openGL. OpenGL také disponuje velkou škálou vlastností, které i když jsou bezvýznamné pro herní trh, jsou hojně využívány v profesionálních aplikacích.

Direct X naproti tomu nebyl vytvořen se záměrem práce v profesionální grafice a zaměřil se jen na herní segment a vývoj her. Je tedy úzce specializovaným API, zatímco openGL je rozsáhlé API poskytující funkcionalitu pro všechny typy aplikací, nikoli pouze jedné oblasti. Převaha Direct3D v herním segmentu má silné historické kořeny. V dávných dobách 3D hraní byla dominantní silou 3dfx se svým vlastním API Glide. Glide bylo mnohem více nízkoúrovňové než Direct3D a openGL a poskytovalo mnohem vyšší výkon. Vysoký výkon ve hrách byl nejdůležitější vlastností a tak bylo Glide tvůrci her významně preferováno před openGL a Direct3D. S tím jak se HW zrychloval, hrubý výkon API přestával být tak důležitý jako snadnost používání při tvorbě her. Navíc Glide bylo omezeno pouze na HW od 3dfx, a tak se vzrůstající potřebou univerzálního API ztratilo 3dfx své pozice, zejména ve prospěch svého hlavního rivala - nVidii. Za této situace vývojář volil jednu ze dvou HW nezávislých API - Direct3D a openGL.

openGL-nvidia

Velký nárůst popularity Direct3 způsobilo hlavně fakt, že tehdejší implementace openGL bylo mnohem náročnější používat. Použití implementace openGL vyžadovalo zahrnutí úplně celé openGL, tedy i těch částí, které nebyly využívány, protože je HW nepodporoval. Direct3D oproti tomu poskytoval přímý přístup k HW s velmi jednoduchými ovladači, které jednoduše řekly aplikaci, zda daný HW určitou vlastnost podporuje či nikoliv. To mu zaručovalo velmi vysoký výkon, tolik požadovaný herním segmentem. S postupnou implementací funkcionality openGL přímo do HW, přestala být tato nevýhoda aktuální. Dnešní verze openGL zřídkakdy implementují vlastnosti, které by nějaký běžný HW nepodporoval.

  • Výhledy do budoucna

  Direct3D API je dnes, jako většina produktů Microsoftu, pevně svázána s Windows. Vzhledem k rozšíření Windows a záměrné ne zcela dokonalé implementaci openGL ve Windows Vista má svou budoucnost zatím jistou. "99%" her pro windows platformu jistě použije DX10 a vyšší. Klíč k naprosté herní dominanci se ale může stát pro Direct3D i branou do propadliště dějin. Protože Microsoft svázal tento produkt s Windows, bude budoucnost Direct3D stejná jako je budoucnost Windows, ať už bude jakákoli ...

oepnGL

openGL dnes dospívá do verze 3.0, která bude vydána v dohledné době. Na rozdíl od Direct3D je otevřeným standardem používaných na všech HW i SW platformách a umožňuje tvorbu jak profesionálních aplikací, tak her. Pokud se nestane něco převratného, na platformě Windows již openGL hry neuvidíme a toto API se zůstane doménou pro hry na SonyPlaystation, v Linuxu, či na počítačích Apple. Profesionální segment si jistě podrží, neboť v něm žádného velkého konkurenta vlastně ani nemá. Jelikož openGL stojí na mnoha "nohách", můžeme říct, že její budoucnost je 100% SVĚTLÁ (a nikoli černá, jak čtu v každé druhé diskuzi o grafické kartě). Ať už se ve světě IT sesype jakákoli firma či platforma, vždy tu bude jiná, která OpenGL využívá. Můžete ovšem tohle říct o DirectX, pokud mu podtrhneme jedinou "nohu" na které stojí?

Zdroje:

  • OpenGL.org
  • khronos.org
  • phoronix.com
  • wikipedia.org

Některé části článku vznikly jako volný překlad veřejně dostupných informací z uvedených zdrojů

 

Starší články


Komentáře
Přidat Nový
pfhawk [Zobrazit profil] [Poslat zprávu] 2007-11-14 21:33:16

velice zajimavej clanek, jen tak dal...
Squad_leader [Zobrazit profil] [Poslat zprávu] 2007-11-14 21:46:16
avatar
Citace:
Můžete ovšem tohle říct o DirectX, pokud mu podtrhneme jedinou "nohu" na které stojí?


Ona "jediná noha" DirectX je nesrovnatelně silná v porovnání s libovolnou z noh OpenGl.
certmir [Zobrazit profil] [Poslat zprávu] - re: 2007-11-14 21:56:28
avatar
To bych nerekl, profi aplikace jsou stejne perspektivni jako hry. Spis to, ze OpenGL muze s pomoci spravneho OS nahradit DirectX, ale naopak zatim urcite ne. Spis bych rekl, ze je to presne naopak, Direct X je zranitelnejsi. I na Microsoft obcas dopadne nejaka ta facka za poruseni hospodarske souteze (viz nedavno u nas v Evrope) a za par let uz Windows X nemusi byt temer synonymem pro OS (s nadsazkou).
Bobris [Zobrazit profil] [Poslat zprávu] 2007-11-14 23:40:50

Navic ta noha neni jen jedna. Xbox je taky velka noha a tam noha OpenGL neni vubec (nebo jen softwarova, ale to se nepocita).

Mimochodem: Visty maji moznost implementovat kompletni OpenGL (2.0), stejne tak jak meli XP. Ano byla doba kdy MS rikal, ze to nepujde, ale zmenili nazor (viz Wikipedia :-)
DirectX taky neni jen o Direct3D, ale treba i o DirectInputu, DirectShow. Obzvlast DirectInput je zatim nenahraditelny.

Rozhodne pekny clanek, ale je potreba jeste o neco vetsi objektivity a kdyz uz prekladas Wikipedii, tak neprekladat jen co se ti hodi :-)
Nadruhou stranu diky tomu, ze DX10 je jen pro Visty, tak tim MS mozna DX3D sam pohrbil, alespon prozatim. Brutalni zlevnovani pameti ovsem zase preje Vistam (64bit Visty jsou povazovany jako lepsi volba nez 64bit XP).
Anonymní  2007-11-15 09:16:26

zdánliva neobjektivita není záměrná. Tento článek mi zatím dal nejvíce práce. I proto, že nemám patřičné vzdělání. (jako asi nikdo z nás) a musel jsem hodně věcí nastudovat, než jsem ho napsal.
certmir [Zobrazit profil] [Poslat zprávu] - Super 2007-11-14 21:49:24
avatar
Presne, vyborne, strucne a zajimave podane info. ElCondor nezklamal. Postupne a prehledne podane informace i treba pro toho, kdo nemel o existenci API potuchy. Jasne, jen tak dal...
Solitary [Zobrazit profil] [Poslat zprávu] 2007-11-14 23:04:30
avatar
3dfx glide... tenhle termin sem neslysel uz skoro 10let jinak moc peknej clanek
MIZ [Zobrazit profil] [Poslat zprávu] - zajímavé 2007-11-15 13:02:04
avatar
OpenGL se nějak vytratilo, to jediné jsem o něm věděl. Až nebude o čem psát, může být zajímavé něco o jeho praktickém využití pod Linuxem. O tom nevím totiž vůbec nic. Zatím.
2vkjmch [Zobrazit profil] [Poslat zprávu] - Proč 2007-11-15 13:12:54

Tak už mi konečně ElCondor "donutil" svými zajímavými články abych se tu taky zaregistroval. Díky

.

Citace:
Až Direct3D 10 (DirectX10), vývojový "hit" posledních dní, implementuje vlastnosti, které má OpenGL už léta ...


Tohle mi už začíná pěkně štvát. Klasický model: Někdo něco vymyslí a Misro$oft si po letech udělá vlastní implementaci dané věci a předkládá ji za svou super převratnou novinku na kterou většina běžných uživatelů skočí a rychle za ní utratí ať už přímo nebo nepřímo (využíváním jiného produktu) peníze.

Malej příklad z mnoha: Když se začalo prosazovat MP3, tak vyšli s WMA a snažili se je prosadit za všech sil a sil to oni mají dost a dost a nebojí (a dost často ani nestydí) se je použít. AAC který už v té době byli v beta verzi na světě už se pořádně neprosadili ikdyž byli mnohem lepší než WMA (a asi pořád sou). Každej přehrávač začal podporovat WMA a skoro bych řekl, že kdyby v té době už MP3 neměli tak silnou pozici, tak kdo ví jak by to skončilo. Tyhle věci fungují jak směhová koule a jen někdo s ohromnou silou má rozumnou šanci kouli zastavit, předělat a poslat svoji verzi zase dál. Prostě ke každýmu software kterej za něco stojí najdete po čase alternativu od MS, která se tváří být lepší (což vždy není) a je líp propojená s vašema Woknama (to většinou někdy až k nelibosti člověka je).

Je to pořád dokola a pořád ta samá lež, která má za cíl, aby jsme si neměli z čeho vybírat. Jak dva ploty o odou stranách cesty, který se k sobě stále přibližujou a přes který se Microsoft snaží, aby jsme neviděli. Na konci cesty je absolutní závislost na produktech jedné firmy. Chodím například připojovat lidi k naší síti a vidím, že jejich jediným průvodcem ve světě počítaču jsou Wokna - asi tak jako jedinou výchozí stránkou může být Seznam a že ikona "to modre E tak to je ten Internet". Nezlobím se na ně. Tak se věci dneska mají a oni jsou jen normální uživatelé, teří nemají v podstatě na výběr a kterým někdo svazuje ruce aniž to vědí. - Když si půjdete koupit třeba Pizzu, tak si můžete vybírat spoustu výrobců, ale co by jste doporučili člověku co začíná používat počítač a chce si sem tam zahrát nějakou hru. hmm ...?

Taky mě trochu štvou i někteří (většinou) mladší autoři článků na internetu nebo v časopisech ... tuhle jsem četl něco jako: "IE7 má nově možnost prohlížet různé stránky na více listech v jednom okně což už má Firefox dávno". Sakra a kde byl Firefox, když tohle už uměla Opera několik let - a z té vyšlo vůbec spousta inovací o kterých si spousta lidí myslí, že jsou z Firefoxu. Sláva Opeře. Ale až Firefox měl tu sílu (jak se stával konkurencí) donutit MS trochu s tím přiblblým IE něco udělat. Firefox vsadil na jednoduchost v základu a pozdější rozšiřitelnost a byla to moc dobrá volba. Sláva mu.

Prostě k tomuhle článku: Čest tomu kdo věci vymýšlí a snaží se výrobcům HW a programátorům ulehčit práci tím, že vymyslel a rozvíjí standard pro všechny. A handa tomu kdo přičichnul na pár let k věci, pak si vymyslel něco svého a svým způsobem (špatnou podporou otevřených standartů) nutí výrobce a pak i lidi k používání jen svých produktů.
HANBA
Pouze registrovaní uživatelé mohou přidat komentář!


 

Najdete nás na Facebooku

.... a také na Twitteru

RSS

DDWorld.cz

DDWorld - Blogy a videa

DDWorld - Magazín

Poslední příspěvky v diskuzích


Videa
Prusa Core One – nová uzavřená 3D tiskárna
Prusa Core One – nová uzavřená 3D tiskárnaWednesday, 20 November 2024
Vložil: aDDmin
Kategorie: PC a IT
Spuštěno: 418x
Komentářů: 1
Star Wars Outlaws dostává Update 1.4 – zásadní herní změny!
Star Wars Outlaws dostává Update 1.4 – zásadní herní změny!Wednesday, 20 November 2024
Vložil: aDDmin
Kategorie: Počítačové hry
Spuštěno: 269x
Komentářů: 0
Jak to vypadá v uvnitř DATACENTRA?
Jak to vypadá v uvnitř DATACENTRA?Monday, 18 November 2024
Vložil: aDDmin
Kategorie: PC a IT
Spuštěno: 848x
Komentářů: 0
Vychází LEGO Horizon Adventures – další zábavná LEGO hra?
Vychází LEGO Horizon Adventures – další zábavná LEGO hra?Tuesday, 12 November 2024
Vložil: aDDmin
Kategorie: Počítačové hry
Spuštěno: 1157x
Komentářů: 0
Indiana Jones and the Great Circle hra ala film?
Indiana Jones and the Great Circle hra ala film?Monday, 11 November 2024
Vložil: aDDmin
Kategorie: Počítačové hry
Spuštěno: 1472x
Komentářů: 0
Nový Captain America nevypadá dobře. Thunderbolts* jsou na tom lépe.
Nový Captain America nevypadá dobře. Thunderbolts* jsou na tom lépe.Friday, 08 November 2024
Vložil: aDDmin
Kategorie: Film
Spuštěno: 1318x
Komentářů: 6