× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

Verze DirectX

[ http://programujte.com/profil/1483-lukas-chury/ ]Google [ https://plus.google.com/101446994797551111026?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       27. 5. 2006       14 734×

Pokud jste už hráli třeba Half-Life 2 a pomocí příkazu konzole „mat_dxlevel90“ zkoušeli třeba na GeForce FX vynutit vyšší verzi DirectX, tak víte, že pokrok mezi jednotlivými specifikacemi DirectX byl poměrně velký. Pojďme se blíže podívat na DirectX.

Zatímco pionýrskou specifikaci DirectX 1.0 (1995) si většina pamětníků spojuje se samotným pojetím vykreslování (polygony + textury), další a další verze posunovaly herní grafi ku stále blíže vysněné filmové kvalitě. První opravdu propracovanou specifikací byl až DirectX 5.0 (konec roku 1997), do té doby se mnohem více prosazovalo vlastní rozhraní společnosti 3Dfx zvané Glide. V páté verzi tohoto rozhraní však přibyla přímá podpora AGP, instrukcí MMX, anizotropního filtrování a anti-aliasingu.

DirectX 6.0 uvedl hned několik typů bump-mappingu a dodnes si někteří z vás určitě ještě vybaví, jak Matrox předváděl schopnosti čipu G400 na první „realistické“ vodě ve hře Expendable. DirectX 7.0 byl ve znamení T&L jednotky: první běžně dostupné GPU – GeForce 256 – přebralo práci procesoru a akcelerovalo zpracování geometrie (Transform, clipping and lighting – transformace, ořezání a osvětlení).

V DirectX 8.0 byla obsažena specifikace pro pixel a vertex shader verze 1.1. Fixně pracující T&L nahradily programovatelné geometrické jednotky a modifikátory hodnot pixelů bylo úplnou novinkou, která umožnila do té doby nevídané efekty. Opět přišla na řadu především vylepšení vody (test Nature v 3DMarku 2001), ale pozdější dema pixel shaderů 1.4 (DirectX 8.1) ukazovala využití v simulaci světelně zajímavých materiálů a poloprůsvitných objektů (třeba hologramy). DirectX 9.0 pak zahrnoval shadery verze 2.0 a aktuální verze 9.0c shader model 3.0, ale o tom už se dozvíte více v části přímo o shaderech. Další pokrok se očekává až současně s příchodem nových Windows, nejprve vyvíjených pod označením Longhorn, nyní už oficiálně jako Vista.

Ve Vista by mělo být poprvé uvedeno Windows Graphics Foundation (WGF), tedy rozhraní známé také pod názvem DirectX 10. Nejenže pokročilých funkcí programovatelných jednotek dnešních grafických čipů (vertex a pixel shader procesory) by mělo být využito i při akceleraci a efektech pracovní plochy (animace, průhlednost, …), ale mělo by rovněž přibýt několik funkcí do specifikace Direct3D. V této oblasti by však mělo být zlomovým až rozhraní WGF 2.0, ve kterém by mohl být představen i shader model 4.0.

Jak to funguje

K vykreslování grafiky nabízejí Windows rozhraní GDI (Graphics Device Interface). To sice zaručuje kompatibilitu, stabilitu a jednotnost, ale také je ukrutně pomalé. Proto se tato vrstva obchází pomocí rozhraní DirectX (má značit „přímý“ přístup k hardware). To má vlastní vrstvu, jež mu umožňuje pracovat nad různým hardware – tzv. HAL (Hardware Abstraction Layer). DirectX má několik menších částí: DirectDraw (2D grafi ka), DirectSound, DirectInput (myš, joystick, …), Direct3D (trojrozměrná grafika) sdružené v DirectX Foundation. Vedle ní existuje ještě DirectX Media pro animaci nebo interaktivní video.

Direct3D představuje klasickou grafickou pipeline – tedy řetězec operací začínajících pracovat nad daty tvořenými vrcholy trojúhelníků, s nimiž provede transformace, ořeže je, vyřeší viditelnost a spočítá jednoduché osvětlení. Další algoritmus vypočítá jednotlivé souřadnice pixelů mezi třemi vrcholy (uvnitř trojúhelníku) a s těmi dále pracuje (pixel shader, nanesení textury, …).


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006052605-verze-directx/ ].