nechci se poustet do zadnych flamewar, ale trochu mi tu chybi imho docela podstatny argument pro d3d - shadery - hlavne ty fragmentove/pixeloev. V OpenGL jsou sice uz standardizovane ARB shadery (ARB_fragment_shader), ale ty jsou k dispozici jen na novejsich kartach, existuje i starsi ARB exterze (ARB_fragment_program), ale ta je opet dostupna jen na novejsich kartach...
Naproti tomu v D3D jsou dispozici jednoduche Pixel Shadery 1.x, ktere jsou k dispozici i na starsich kartach... Kdezto v OpenGL, pokud chcete psat takoveto shadery pro tyto starsi karty, musite je psat zvlast pro ATI a NVIDIa karty...
Co jsou to novejsi a stasi karty ? Pixel shadery treba i v1.0 jsou jen na novejsich kartach. To ze by pixel shadery byly podporovany HW a pritom nebyla dana prislusna extenze v OpenGL se tyka snad jen dvou karet (GF4Ti ?). I v DX musite psat shadery specificky pro ATI a NVIDIA protoze (jak ukazuje treba Far Cry) kompatibilita mezi ATI a NV je dost mizerna. NVIDIA se to snazili vyresit Cg jazykem ale porad je to bes a des.
V OGL je univerzalni pristup k Vertex Shaderu pres GL_ARB_vertex_program (dostupne na vsech kartach s VS).
U Pixel Shaderu je to slozitejsi: na novejsich kartach s PS 2.0 je prace s nim opet univerzalni pres GL_ARB_fragment_program. U starych karet s PS 1.x je to jen pres specificke extenze vyrobcu (ATI, NV, Matrox), tam ma D3D jasne navrch a osobne myslim, ze to byl prave duvod, proc se naprosta vetsina Windows her zacala delat v D3D.
Do budoucna me to ale netrapi, protoze ted delam hru bez pouziti shaderu (je urcena pro GF 4 MX/2 Ultra/Radeon 7500) a pristi bude asi rovnou s PS 2.0 (nez dodelam tuhle a pak tu druhou, tak uz vsichni budou mit 3D karty s PS 2.0).