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ě.