Hlavní navigace

OpenGL a Direct3D

Michal Turek

Nedávno vyšel na ROOTu článek Linuxové hry (47): Unreal Tournament 2004. Jeho autor při popisu "Technické stránky věci" uvedl ne zcela šťastnou větu: "Bohužel je vidět, že v oblasti 3D grafiky se OpenGL nemůže DirectX v kvalitě obrazu rovnat." a doplnil ji několika podrobnostmi. Pojďme se spolu podívat, jestli je to pravda, nebo ten největší nesmysl, jaký svět kdy slyšel.

Úvod

V reakci na výše uvedený článek se vytvořila klasická„náboženská válka“ typu MS Windows proti Linuxu. Strany se rozdělily na OpenGL programátory a na osoby v každém druhém příspěvku prohlašující (ne všichni!): Slyšel jsem…, Moc tomu nerozumím…, Nejsem expert… a podobně. Ti druzí jmenovaní nějakým způsobem mimo jiné vygenerovali, že OpenGL, na rozdíl od DirectX, vytváří jeden člověk – s prominutím NEJVĚTŠÍ BLBOST, JAKOU JSEM KDY SLYŠEL. V průběhu článku vysvětlím proč, zatím jen tolik, že o tom, co se skrývá pod pojmem DirectX, rozhoduje výhradně jediná firma (Microsoft) a autorem OpenGL může být kdokoli, jehož implementace splňuje OpenGL standard a projde sérií testů. Dohled nad vývojem tohoto standardu má konsorcium ARB, do kterého patří firmy jako SGI, DEC, HP, IBM, Intel, Microsoft, Sun Microsystems a další.

Moje zkušenosti s 3D grafikou

Já také nejsem expert :-], i když mi někdy připadá, že mě za něj někteří lidé považují. S OpenGL jsem se poprvé (jako programátor) setkal léta páně 2002. Po půl roce jsem jako „Vánoční dárek“ (to by bylo na dlouho) dostal doménu http://nehe.o­pengl.cz/ a byl mezi prvními, kteří o OpenGL začali psát v češtině (v současnosti vychází kvalitní seriály i na rootu). Tento web aktuálně obsahuje přes sto stránek o celkové velikosti cca. 2,8 MB (texty a skripty – ne FrontPage slátaniny). Témata jdou od absolutních základů po velmi pokročilé techniky. Jelikož jsem autorem/překla­datelem cca. 70 %, dá se říci, že OpenGL tak trochu rozumím… (Skrytou reklamu máme zdárně za sebou :-)

Logo OpenGL
Logo OpenGL

Nicméně, horší to bude s DirectX částí, protože jsem o něm četl pouze jednu knihu [1], která ale není zrovna kvalitní. Tímto nechci nikoho poškodit, radím pouze jako čtenář čtenáři. Úvod končí čtvrtou kapitolou na straně 115 a na zbylých 230 stranách se hojně využívá technika CTRL+C, CTRL+V. Výklad končí přibližně na úrovni desátého NeHe Tutoriálu, takže nikde daleko. Celkově nezáživný manuálově/doku­mentační styl psaní.

Je mi jasné, že u DirectX části budu povětšinou, jak se říká, vařit z vody. S největší pravděpodobností neuvedu všechny jeho (ne:-)výhody, za což se předem omlouvám. Navrhoval bych proto, aby mě nějaký Direct-positive čtenář kontaktoval a předal mi nějaké praktické informace o DirectX, ty nemám žádné. Základní teorie mám dost z literatury. Potom bych mohl (případně bychom mohli společně) napsat další díl článku.

Logo DirectX
Logo DirectX

Z historie

Na počátku osmdesátých let minulého století, v době, kdy výpočetní technice kraloval textový režim, se u společnosti Silicon Graphics Inc. (SGI) začaly vyvíjet grafické stanice a knihovna IRIS GL, kterou lze považovat za přímého předka OpenGL. Jak šel vývoj dopředu, zbavovala se některých problematických rysů a dá se říct, že její poslední verze je s OpenGL téměř kompatibilní. Standard OpenGL vznikl na začátku devadesátých let (v [3] se uvádí rok 1992) a narozdíl od IRIS GL byl od počátku koncipován jako nezávislý na hardwaru, operačním systému a programovacím jazyce. Od té doby se změnil pouze minimálně, nejnovější verze je 1.5 a každý, kdo dělá s OpenGL, určitě ví, že se připravuje verze 2.0.

V raných dobách OS Windows se hry vytvářely spíše pro MS-DOS (hledal jsem domovský web, ale nezabral ani Google…). Důvodem byla několikavrstvá struktura Win API a hlavně celková extrémní pomalost GDI, které se pro větší projekty (rozuměj jakékoli projekty) naprosto nehodilo. Kdysi jsem v něm udělal několik 2D her, tím mé pokusy skončily – díky, ale už ne.

Microsoft si byl problémů s GDI vědom, první pokus o jejich napravení se jmenoval WinG. Jednalo se o množinu funkcí, které umožňovaly přímý přístup do grafické paměti (do té doby to nešlo). Postupným vývojem vzniklo Game SDK, které se za nějakou dobu přejmenovalo na DirectX.

Jeho prvních několik verzí bylo prakticky téměř nepoužitelných (jako u mnoha dalších MS technologií), v současnosti jich existuje devět a jsou mezi sebou většinou nekompatibilní. To znamená, že pokud používáte DX5 a chcete přejít na DX6, musíte se vše začít učit znovu od začátku a všechen dosavadní kód musíte upravit nebo dokonce kompletně přepsat (což často bývá rychlejší). V současné době je DirectX ve verzi 9.0.

Uvedením DirectX vyvolal Microsoft na jednu stranu pozitivní, na druhou stranu negativní rozruch. (Windows) vývojáři her konečně dostali ucelený balík komponent – DirectDraw pro 2D grafiku, Direct3D pro 3D grafiku, DirectSound pro zvuky, DirectNet pro síťování atd. Nejdiskutovanější bylo právě Direct3D. Většina specialistů z oboru se shodovala na tom, že nevznikl žádný důvod k zavedení nového standardu. OpenGL plně postačovalo všem aplikacím a bylo prověřené časem. I když Direct3D disponuje prakticky stejnými funkcemi jako OpenGL, styl programování se naprosto liší.

Dále už budeme porovnávat pouze OpenGL a Direct3D, protože určitě chápete, že srovnávat 3D grafiku např. se zvuky nebo síťováním dost dobře nejde :-)

Literatura

Našli jste v článku chybu?

3. 12. 2006 11:52

RedLeader (neregistrovaný)
Ty máš tak prostinké uvažování, že se ti musím smát. Víš, kolik titulů vzniklo pod OpenGL? Asi nemáš naprosto žádnej přehled.

21. 9. 2006 18:52

.::]|DEAD|[::.Screamer (neregistrovaný)
chces sa bit?!
Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

DigiZone.cz: TV Philips a Android verze 6.0

TV Philips a Android verze 6.0

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy