Ventilu: je OpenGL rychlejší než DirectX – dokonce i na Windows
V děsivý zvrat, který posiluje Ventil je nevhodný pro Windows 8, se ukázalo, že Source engine — 3D engine, který pohání Half Life 2, left 4 Dead, a Dota 2 — běží rychleji na Ubuntu 12.04 a OpenGL, než Windows 7 a DirectX/Direct3D.
Ventilu Linux Tým štěpí na jejich zbrusu nový blog: S Nvidia GTX 680, Intel i7-3930k, a 32 gb RAM, Windows 7 a DirectX, left 4 Dead 2 maxes na 270.6 fps. Se stejným hardwarem — ale jiným softwarem-Ubuntu 12.04 a OpenGL-L4D2 skóre 315 fps, téměř o 20% rychlejší než Windows.
Tato čísla jsou pozoruhodná, uvážíme-Ventil byl rafinace Source engine, výkon pod Windows pro téměř 10 let, zatímco Ventil Linux tým se teprve pracuje na Linux port Zdroj pro několik měsíců. Ventil připisuje rychlost-up na “ základní účinnost jádra a OpenGL.“
linuxový port L4D2 samozřejmě nezačal na 315 fps – původní verze se ve skutečnosti maximalizovala na pouhých 6 fps. Realizovat takový obrovský výkon zisk, tři-hroty přístup je převzat: hra je vylepšený hrát pěkně s linuxovým jádrem, hra je optimalizován pro práci s OpenGL (spíše než DirectX), a chyby v Linuxové grafické ovladače jsou určeny.
tento poslední bod je zajímavý: Valve má dlouhodobé vztahy s AMD, Nvidia a Intel, kde Valve hlásí chyby ovladačů a výrobce GPU je včas opraví. Valve přenáší tento vztah na Linux, což je velmi důležité pro pokračující růst Linuxu jako herní platformy. V tomto případě Valve říká, že ovladač Nvidia Linux postrádal podporu multithreadingu — a jakmile jej přidali do novější verze ovladače, výkon se zvýšil.
ale tady je nejlepší bit: pomocí těchto nových optimalizací OpenGL je verze OpenGL L4D2 ve Windows nyní rychlejší než verze DirectX. Se stejným hardwarem, Windows 7/OpenGL/L4D2 hodiny při 303.4 fps-ve srovnání s Windows 7 / DirectX / L4D2 při 270.6 fps. Stručně řečeno: OpenGL je rychlejší než DirectX.
Jako proč je OpenGL rychlejší než DirectX/Direct3D, jednoduchá odpověď je, že OpenGL se zdá plynulejší, efektivnější potrubí. Při 303.4 fps, OpenGL vykresluje snímek každých 3.29 milisekund; při 270.6 fps, DirectX vykresluje snímek za 3.69 milisekund. Tento rozdíl 0,4 milisekundy závisí na tom, jak rychle může potrubí DirectX zpracovat a čerpat 3D data.
proč stále používáme Direct3D?
Pokud je OpenGL rychlejší, proč je DirectX stále převládajícím API? Není to kvůli kvalitě obrazu nebo funkcím: OpenGL 4.0 má všechny shadery a tessellators a widgety, které má DX. Není to kvůli hardwarové podpoře: všechny grafické karty Nvidia a AMD podporují nejnovější verzi OpenGL spolu s DirectX.
opravdu, to všechno přijde na tu mizernou starou věc, kterou nazýváme síťový efekt — a samozřejmě monopolní heft a marketingové dolary. DirectX, protože má čistší API a lepší dokumentaci, se snadněji učí. Více vývojářů používajících DirectX = více her DirectX = lepší podpora ovladačů. Toto je začarovaná smyčka, která opět vede k více DX devs, více DX her a lepším ovladačům/nástrojům/dokumentaci DX. Microsoft neúnavně prodával DirectX, také – a kdo může zapomenout na vydání kampaně Windows Vista a Microsoft OpenGL? Vista je dodáván verze OpenGL byl zcela zmrzačený, nutit mnoho vývojářů přejít na DirectX.
Microsoft má samozřejmě dobrý důvod bránit pokroku OpenGL: Zatímco DirectX je proprietární a běží pouze na Windows, Xbox a Windows Phone, OpenGL je zcela multiplatformní. Existují solidní implementace OpenGL pro Mac, Linux, PlayStation 3, Nintendo Wii a téměř každý moderní smartphone (OpenGL ES). Je samozřejmě v nejlepším zájmu společnosti Microsoft zajistit, aby nejlepší herní zážitky byly exkluzivní pro její platformy.
S Gabe Newell je nechuť k Windows 8 (a Blizzard ozvěnou jeho pocity), bezprostřední vydání Steam na Linuxu, a pokračující růst smartphone hry, mohli jsme být na vrcholu OpenGL revoluce. Pokud bude herní koruna Windows nadále sklouzávat, OpenGL se může brzy stát výchozím API, spíše než dodatečným nápadem. Velmi brzy by mohlo být standardní vyvinout hru, která funguje dobře na každé platformě-spíše než se soustředit na Direct3D a nechat Linux a OS X v chladu.
Valve bude hovořit o svých pokrocích v Linuxu/OpenGL na SIGGRAPH 2012 příští týden. SIGGRAPH je místo, kde obvykle slyšíme o nejnovějších zprávách OpenGL a DirectX – takže zůstaňte naladěni!
aktualizováno @ 2 : 40: Příběh původně uváděl, že OpenGL spec je obvykle před DirectX — ale to už několik let neplatí.