Direct X

Napsal Mgr.Radovan Kaluža (») 10. 5. 2006 v kategorii IT, internet, přečteno: 1082×
DirectX je programové rozhraní určené speciálně na programování grafických a multimediálních aplikací pro Microsoft Windows. DirectX zajišťuje standardizovaný přístup k hardwarovému zařízení s podporou akcelerace pro 2d či 3d grafiku, zvuk a emulaci všech funkcí knihoven v případě absence hardwarové podpory. Z toho vyplývá, že aplikace vytvořená v DirectX, je volně přenositelná na jakýkoli počítač s nainstalovaným Windows a DirectX. Z toho je také patrné omezení které se týká aplikací pod DirectX naprogramovaných.

Pokud se pohybujete v prostředí Windows a chcete vytvořit jakoukoli grafickou aplikací, máte k dispozici dvě možnosti. Jednou z těchto možnosti je sáhnout po nativním nástroji operačního systému Windows, pro práci s grafickými objekty, který se označuje jako GDI, nebo MCI (Media Control Interface).

Druhou možností je sáhnout po programovém rozhraní, které se označuje jako DirectX. Na úvod je třeba předeslat, že DirectX je mnohem robustnější a rychlejší než práce s výše zmiňovanými nativními nástroji Windows.

Při práci s DirectX jste sice poněkud svázání, jako programátoři, ale toto svázání není na škodu, spíše naopak. DirectX je systém utilit, který umožňuje jednoduchou práci s videem, audiem se vstupy a výstupy a v neposlední řadě umožňuje práci se síťovými komponenty.

Jak vlastně DirectX pracují? Velmi dobře. Vedle absolutní kontroly nad všemi hardwarovými zařízeními, optimalizují průběh zobrazené akce podle možností zařízení, na kterém daná je daná aplikace spuštěna.

Toto je způsobeno technologií označovanou jako Component Object Model (COM), které se budeme věnovat později. Komplexnost DirectX je zajištěna zejména výrobci hardwaru, kteří v drtivé většině případů, dodávají ke svým výrobkům (grafické, zvukové aj. karty), ovladače stavěné přímo na míru topologii DirectX. Toto bylo umožněno především politikou firmy Microsoft, který definoval soubor konvencí(funkce, proměnné struktura dat aj.), kterými se výrobci hardwarových zařízení řídí. Tím je zajištěna kompatibilita, ale zejména optimalizace, běhu těchto zařízení pod operačním systémem Windows.

Díky tomu se programátoři jakékoli aplikace, tvořené pod Windows, nemusí ohlížet na detailní vlastnosti hardwarových komponent. Jednoduše volají funkce pro práci s jednotlivými zařízeními, a o zbytek se postarají funkce pod DirectX bez ohledu na to jaký hardware bude daný program zpracovávat.

Vlastnosti DirectX

Samotné DirectX jsou tvořeny skupinou knihoven, kde každá obsahuje funkce pro práci s určitým hardwarovým nebo softwarovým zařízením.

DirectDraw: Jedná se o ovladač hlavní zobrazovací jednotky. Základním stavebním prvkem se kterými DirectDraw pracují jsou plochy (surfaces). Tyto plochy slouží jako podklad pro umístění objektu, které se následně promítnou na obrazovku.

DirectSound: Jedná se o zvukovou komponentu DirectX, která podporuje digitální zvuk (ne midi). Tato knihovna umožňuje přehrání zvukového záznamu, nezávisle na druhu použité zvukové karty.

DirectSound3D: Jak už název napovídá, jedná se o 3D zvukovou součást DirectSound. Zodpovídá za ozvučující efekty, týkající se prostorového zvukového vjemu. Tato technologie je poměrně nová, ale velmi rychle se vyvíjí. V současné době kvalitnější zvukové karty, podporují 3D zvukové efekty včetně posunutí, pohlcení či odražení zvukové vlny apod.

DirectMusic: Jedná se o nejmladší komponentu v DirectX. Umožňuje technologii MIDI , kterou DirectSound nepodporoval. Podporuje DLS (Downloadable Sounds) systém, který umožňuje práci s digitálním zvukem, který má vlastnosti originálních instrumentálních nástrojů, jak ve formě MIDI, tak ve formě tzv. Wave Table syntetizéru. Zvukové vlastnosti takto zpracovaných tónů jsou k nerozeznání od tónů produkovaných skutečnými hudebními nástroji. Vedle toho DirectMusic obsahuje nový tzv. Performance engine, který je jistým typem umělé inteligence. Jedná se o systém, který umožňuje, v reálném čase, uskutečňovat změny ve vámi vytvořené hudbě, za současného běhu. To je síla viďte?

DirectInput: Tento systém zodpovídá za komunikaci se všemi vstupními zařízeními, jako je myš, klávesnice, joystick, space-balls a tak podobně. DirectInput v současné době podporuje i zpětnovazební aktivní zařízení, které jsou zodpovědná za převod elektrických měřicích zařízení do počítače, jako i za přenos fyzikálních vlastností do herního zařízení například takzvaný Force Feedback, zodpovědný za cukání joystiku a různé efekty při hraní her, je právě součásti DirectInput.

DirectPlay: Podporují síťové komponenty DirectX. Dovolují vytvořit abstraktní připojení užitím internetu, modemu, přímého připojení apod. Nejsilnější výhodou DirectPlay je možnost vytvoření síťového připojení, bez znalosti síťové architektury. Není třeba speciálních driverů nebo socketů. DirectPlay podporují možnosti propojení pomocí takzvaných sessions.

Direct3DRM: Jedná se o Direct3D Retained mód, který pracuje s trojrozměrnými objekty jako takovými. Využívá výhod 3D akcelerátorů. S výhodou se používá při tvorbě modelů, nebo různých prezentací.

Direct3DIM: Jedná se Direct3D Immediate móde, který pracuje na nejnižší vrstvě ovladačů. Práce na této vrstvě DirectX se blíží práci v OpenGL co se týče nepohodlnosti při vlastním programování. Jedná se o jednoduchý zobrazovací model, který pracuje pouze s primitivními objekty a jejich odvozeninami.

DirectSetup/Autoplay: Je dná se quasi (rádoby) DirectX komponentu, která dovoluje programům instalovat DirectX z vlastních aplikací na počítač uživatele a povolit spouštění určitých programů, pouze v případě, že se v CD mechanice nachází originální CD výrobce. DirectSetup je malá skupina funkcí, které jsou volány při běhu programu a které se zapisují do registru.

Facebook Twitter Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
--==[FReeZ]==-- z IP *** | 17.6.2006 21:05
Nerad to tu kritizuji, ale nemuzu si jinak pomoci.

DirectX nebyl vyvinut pro programovani, nybrz pro vytvoreni problemu kompatibility Windowsackych multimetidalnich nesmyslu.

Existuje totiz OpenGL, ktere je zdarma, celym nazvem Open Graphic Library, cili graficka knihovna s volne dostupnymi zdrojovymi kody, ktera je navic 100%ne platformne nezavisla a tudiz extremne vyhodna oproti DirectX, ktery je sice komplexnejsi, avsak znacne neprenositelny oproti OpenGL.

DirectX neni system utilit, nybrz sada knihoven a modulu.

Dale uz je to vesmes OK, doporucil bych predevsim lepe formulovat, verim ze vite o cem mluvim, hlavne mi ale vadi, ze zde neni ani zminka o OpenGL, ktere bylo nekolikanasobne lepsi, nez DirectX, proto Microsoft znekolikanasobil pocet pracovniku vyvijejich direkty a nakonec s jen tak tak OpenGL trumfl.

Dnes vsak uz Linux vyuziva cim dal vice lidi a ve Windows mi take bezi lepe a stabilneji vse, pres OpenGL, kazda moderni graficka karta je odladena jak pro DirectX, tak pro OpenGL, dale by mela splnovat i standard VESA, jenze tam je casto kamen urazu, resp. obrovske bugy, ...

z IP *** | 2.7.2006 13:04
smile
Swap z IP 213.192.3.*** | 29.3.2007 07:42
Ahoj, mi prijde clanek trochu out of time! To je pro verzi DX 6.0? Dnes jiz mame verzi 9.0c, ba dokonce 10. Tam je vsechno jinak!

Pokud jde o predchozi prispevek... tak OGL ma vyhodu opravdu jedinou, a to je ta prenositelnost. Jinak se s D3D srovnat nemuze co se tyce pouzitelnosti a rychlosti vyvoje. Nekdo na D3D nadava ze je prilis komplikovane proti OGL. Po hlubsim zkoumani vsak prijde na to ze je to presne naopak. OGL a jeho extenze, to je kapitola sama pro sebe, fuj a fuj.



Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
[*1*] [*2*] [*3*] [*4*] [*5*] [*6*] [*7*] [*8*] [*9*] [*10*] [*11*] [*12*] [*13*] [*14*] [*15*] [*16*] [*17*] [*18*] [*19*] [*20*] [*21*] [*22*] [*23*] [*24*] [*25*] [*26*] [*27*] [*28*] [*29*] [*30*] [*31*] [*32*] [*33*] [*34*] [*35*] [*36*] [*37*] [*38*] [*39*] [*40*] [*41*] [*42*] [*43*] [*44*] [*45*] [*46*] [*47*] [*48*] [*49*] [*50*]   [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedenáct a třináct