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.
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, …).