Direct X vs. Open GL

Grafické karty s libovolným GPU ostatních firem (např. Xabre, Kyro, Parhelia).

Moderátoři: morke, Walker1134

Odpovědět
johnier
Začátečník
Začátečník
Uživatelský avatar
Registrován: 02. dub 2004
Bydliště: BRNO
Kontaktovat uživatele:

Direct X vs. Open GL

Příspěvek od johnier »

Pls potřebuji poradit, nevim do jae sekce toto zařadit ale byl by nekdo schopen me vysvetlit rozdil mezi Direct X a Open GL, jen stručně o co se jedná!

dík

/edit by no-X: přesunuto z VGA ATi.
swarm
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 31. kvě 2005
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od swarm »

D3D i OGL jsou API - tj. jsou to rozhranní pro obecný přístup k funkcím 3D karet. D3D je vytvořeno Microsoftem a kdysi v úplných začátcích (druhá polovina let 90.) bylo vytvořeno jako co nejjednodušší rozhranní. Tim nemyslim ani moc pro vývojáře (execute buffer atd :roll:), ale pro samotné 3D karty. Tak mohli vznikat mnohem levnější akcelerátory s univerzálním API (OpenGL kladlo nároky na 3D akcelerátor mnohem vyšší, ale zase některé úplně základní funkce, co byly v OGL od nepaměti, se u D3D objevili třeba až ve verzi 6-8 ).
Nevýhodou D3D je u vývojářů to, že jednou za pár verzí se kompletně přepracuje a je se tak nutné učit zase spoustu nových věcí (největší zlom byl u verze 8, verze 9 se naopak zase od osmičky moc neliší, ovšem teď bych čekal zase velkou změnu). OpenGL je pořád stejné a kód se vůbec u programů nemění s verzemi. Všechny pokročilejší funkce se OGL řeší pomocí extensions (rozšíření). To jsou jakési funkce navíc, které karta podporuje. Ty si můžeš zjistit, které to jsou, a k nim pak přistupovat.
Takže tady vydíš rozdíl z pohledu vývojáře - rozdíl je tedy akorát v přístupu k vývoji. Pokud jde o pohled uživatele, tak tam rozdíl není žádný. Obě API umí využít kartu nadoraz.

Jinak na všech platformách krom Windows je pouze OpenGL, takže je označováno za multiplatformní. Na Xboxu360 je D3D a na PSP a PS3 je zas OpenGL. Ale to jen tak naokraj....
Diagon Swarm -> Můj NB blog viz. [WWW]
Je těžké být debilem, konkurence je příliš velká.
johnier
Začátečník
Začátečník
Uživatelský avatar
Registrován: 02. dub 2004
Bydliště: BRNO
Kontaktovat uživatele:

Příspěvek od johnier »

super, dikec moc
radekhulan
Začátečník
Začátečník
Registrován: 08. čer 2005
Kontaktovat uživatele:

Příspěvek od radekhulan »

Z pohledu vývojáře je právě jednodušší dělat pro DirectX, protože OpenGL mi kromě základní sady funkcí nezaručuje nic. Když se rozhodnu, že budu dělat hru pro karty podporující DirectX 9.0c (SM3.0), napíšu jeden jedinej kód. Když člověk dělá hru pro OpenGL, musí napsat podstatně "flexibilnější" a tím i podstatně složitější engine. Proto je drtivá většina her (kromě Doom, Quake a několika málo dalších) psána v DirectX. Je to snazší, mnohem, a "více standardizované" pro pokročilé funkce.

Jedinou výhodou OpenGL je jeho otevřenost, pokud chci mít hry na Windows, Linuxu a Mac OS X, OpenGL je jediná možnost. DirectX je (bohužel) výsada jen Windows.

Navíc DirectX API neřeší jen grafiku, ale i zvuk (přímá konkurence pro nové OpenAL), síťové komponenty, vstupní zařízení, a další.
swarm
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 31. kvě 2005
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od swarm »

radekhulan píše:Z pohledu vývojáře je právě jednodušší dělat pro DirectX, protože OpenGL mi kromě základní sady funkcí nezaručuje nic. Když se rozhodnu, že budu dělat hru pro karty podporující DirectX 9.0c (SM3.0), napíšu jeden jedinej kód. Když člověk dělá hru pro OpenGL, musí napsat podstatně "flexibilnější" a tím i podstatně složitější engine. Proto je drtivá většina her (kromě Doom, Quake a několika málo dalších) psána v DirectX. Je to snazší, mnohem, a "více standardizované" pro pokročilé funkce.
Pokud jde o psaní shaderů, tak ty už jsou od verze 2.0 v OpenGL standartizované přes ARB extenze, a tak už to není takové, jako kdysi, kdy se pro nVidii a ATI dělalo úplně jinak. Krom toho si ale teda myslim, že dneska už to moc nikdo psát v těch assembly jazycích nebude a spíš se použijí nástroje od nVidie atd a nechá se kód překompilovat pro jednotlivé verze shaderů.
Ale z vlastní zkušenosti vim, že ani programovat to jednotlivě na ATI, NV a ARB neni až zas takový problém. Hlavní je akorát mít pro všechny verze stejná vstupní data a pak už je to práce na chvíli - v podstatě asi jako když chcete stejný jednoduchý prográmek přepsat na do jiného jazyka - akorát teda chce to přístup k těm kartám, ale dneska tohle neni problem, zvlášť když dneska všechny technologie pomalu najdete na kartě za 2tisíce (ale výkon na nic, ale to nikoho netrápí).
Jinak ale nesouhlasim s tim, že by DirectX bylo jednodušší. Já to vidím úplně naopak. Pro začínající programátory je OGL výrazně jednodušší, incializace atd jsou mnohem úspornější na kód a nezatěžuje hned ze začátku programátora spoustou věcí navíc. U nás na školách se převážně učí taky právě OpenGL.
To, že většína komerčních Windows her je Direct3D je problém trochu v jiných věcech. Krom Dooma a Quaka a her na jejich enginech se tu až zas moc OGL only her nevidí, ovšem hodně her (GTA, Warcraft,...) používá licencované enginy a nebo prostě mají svůj engine vytvořený pro obě rozhranní (důvody ponechme stranou). Možná že teď s Playstation3 se věc trochu změní, protože tam je jen OpenGL a hry, které tam budou vznikat primárně, pravděpodobně zůstanou u tohoto API. Krom toho spousta shareware her (což je taky zajímavý segment) běží na OpenGL.
radekhulan píše:Navíc DirectX API neřeší jen grafiku, ale i zvuk (přímá konkurence pro nové OpenAL), síťové komponenty, vstupní zařízení, a další.
Třeba v UT2003/4 se v linux verzi použilo SDL, což mně přijde jako velmi dobrá alternativa pro obsluhu všech I/O (samozřejmě na zvuk pokud chci víc jak stereo už je dobré sáhnout navíc k zmíněnému OpenAL, což je, když se přenesu přes nějakou tu nekompatibilitu v ranné fázi, docela pěkňoučká věcička). To má navíc výhodu, že přes něj jde dobře přistupovat k OpenGL a navíc lze dobře tvořit kód, který pak lze zkompilovat prakticky na čemkoli bez úprav.

No, trochu už jsem odběhl od tématu, tak jak bylo myšleno, tak snad moderátoři prominou, berte to spíše informačně.
Diagon Swarm -> Můj NB blog viz. [WWW]
Je těžké být debilem, konkurence je příliš velká.
Odpovědět

Zpět na „Ostatní grafické karty“