DirectX
DirectX je skupina više programskih okruženja (API) za jednostavnije izvršavanje zadataka kod programiranja igara na Microsoft Windows. Najviše se koristi za razvoj računalnih igara za Windows. DirectX unaprijed dolazi instaliran na novije verzije Windowsa, iako se uz računarsku igru po pravilu isporučuje posljednja verzija DirectXa.
DirectX | |
---|---|
Izdavač | Microsoft |
Žanr | Aplikacijski framework |
Internetska stranica | DirectX web stranica |
Dijelovi DirectX-a
urediDijelovi od kojih se DirectX sastoji:
- DirectX Graphics, Sastoji se iz dva API-a (DirectX 8.0 i noviji):
- DirectDraw: za prikazivanje rasterske grafike.
- Direct3D (D3D): za prikazivanje 3D računarske grafike
- DirectInput: obrađuje podatke s tipkovnice, miša, džojstika i ostalih upravljačkih uređaja
- DirectPlay: za mrežnu komunikaciju u računarskim igrama
- DirectSound: za sviranje i snimanje zvuka
- DirectMusic: za sviranje zvuka napisanog u DirectMusic Produceru
- DirectSetup: za instalaciju DirectX dijelova
- DirectX Media Objects: podrška za enkodere, dekodere i efekte
Verzije DirectX-a
urediDirectX verzija | Logotip | Broj verzije | Operativni sistem | Datum izlaska |
---|---|---|---|---|
DirectX 1.0 | 4.02.0095 | 30. rujna 1995. | ||
DirectX 2.0 / 2.0a | 4.03.00.1096 | Windows 95 OSR2 i NT 4.0 | 5. lipnja 1996. | |
DirectX 3.0 / 3.0a | 4.04.0068 / 70 | Windows NT 4.0 SP3 | 15. rujna 1996. | |
DirectX 4.0 | Nikada objavljen | |||
DirectX 5.0 | 4.05.00.0155 | Dostupan kao beta verzija za Windows NT 5.0 koja se može instalirati na Windowsu NT 4.0 | 16. srpnja 1997. | |
DirectX 5.1 | 1. prosinca 1997. | |||
DirectX 5.2 | 4.05.01.1600 | DirectX 5.2 izdanje za Windows 95 | 5. svibnja 1998. | |
DirectX 5.2 | 4.05.01.1998 | Windows 98 | 5. svibnja 1998. | |
DirectX 6.0 | 4.06.00.0318 | Dreamcast | 7. kolovoza 1998. | |
DirectX 6.1 | 4.06.02.0436 | Windows 98 SE | 3. veljače 1999. | |
DirectX 7.0 | 4.07.00.0700 | Windows 2000 | 22. rujna 1999. | |
DirectX 7.0a | 4.07.00.0716 | 1999. | ||
DirectX 7.1 | 4.07.01.3000 | Windows ME | 16. rujna 1999. | |
DirectX 8.0 | 4.08.00.???? (RC0) | 30. rujna 2000. | ||
DirectX 8.0 | 4.08.00.0400 (RC14) | Xbox |
3. studenog 2000. | |
DirectX 8.0a | 4.08.00.0400 (RC14) + ispravke instalera | 7. studenog 2000. | ||
DirectX 8.1 | 4.08.01.0810 4.08.01.0881 (RC7) |
Windows XP | 12. studenog 2001. | |
DirectX 9.0 | 4.09.0000.0900 | Windows Server 2003 | 19. prosinca 2002. | |
DirectX 9.0a | 4.09.0000.0901 | 26. ožujka 2003. | ||
DirectX 9.0b | 4.09.0000.0902 (RC2) | 13. kolovoza 2003. | ||
DirectX 9.0c | 4.09.0000.0904 (RC0) | Windows XP SP2, Windows Server 2003 SP1, i Xbox 360. Zadnje pravo 32-bitno izdanje. | 13. prosinca 2004. | |
DirectX 9.0c | 4.09.0000.0904 | Kompatibilan sa svim Windows OS verzijama s kojima je 9.0c (RC0) bio kompatibilan | 9. prosinca 2005. | |
DirectX 10.0 | Nova verzija DirectX-a samo dostupna za Windows Vistu. | 30. studenog 2006. |
DirectX 11
uredi- šta donosi: veće performanse i neke nove efekte.
- tko ga može: nove Radeon i Geforce generacije s Windows 7 i Vista.
DirectX 11 je znatno brži od DirectX 10 i pruža uz to još neke nove mogućnosti za grafik i fizik efekte.
U jesen 2009. izašao je DirectX 11 kao trenutna inačica microsoftovih programskih skupina za igre, grafiku i multimediju. Preduvjeti za to su Windows Vista ili Windows 7 i grafičke kartice iz kuće Ati ili Nvidia s podrškom DirectX 11 sučelja.
Multi-Threading
urediZa PC igrače interesantne novosti dolaze velikim dijelom i bez ovisnosti od DirectX 11 hardvera. Tako je Microsoft znatno izgradio Multithreading podršku u DirectX 11. To znači, Engine-i iz igara mogu sada prenijeti predstojeće zadatke kao prerađivanje jedne određene teksture na više procesorskih jezgri ili programskih thread-ova. Prije toga je mogao samo jedan Thread i s time isto samo jedna CPU jezgra takve zadatke odraditi. U igrama često premalo opterećene procesorske jezgre modernih višejezgrenih procesora bit će s time osjetljivo bolje opterećene. Prošle DirectX inačice nisu to dozvoljavale iz straha od rušenja aplikacija. Prema tvrdnjama iz AMD-a, samo Multithreading osobina bi trebala u prosjeku dati 20 posto više slika u sekundi (eng. FPS-a).
Compute Shader
urediJedna druga osobina DirectX 11 je takozvani "Compute Shader". S time Microsoft ujedinjuje programsku sabirnicu za računavanje pored tradicionalnih 3D zadataka jednog grafičkog čipa. Tehnika odgovara onim što je Nvidia već s CUDA za Geforce kartice ili AMD za ATI Stream ponudio. Do sada su izdavači koristili ove mogućnosti jako štedljivo, jer tehnika ili samo funkcionira na Geforce ili samo na Radeon-u. Zbog ujedinjenja DirectX-a s tim standardima, znatno stvarniji fizički efekti ili napokon pametnija umjetna inteligencija (eng.AI) na grafičkom čipu postali su osvarljiviji. Inače Microsoft nezaboravlja vlasnike DirectX 10 ili 10.1 grafičkih kartica - za obadvije skupine postoje određeno priviknute Compute Shader funkcije. One nisu pak toliko opsežne kao DirectX 11 varijante, pridonose ali bržem preuzimanju od strane programera igara.
Tesselation
urediNajvidljivija osobina DirectX 11 će biti "Tesselation". Taj naziv objašnjava mogućnost grafičke kartice relativno jednostavne objekte po potrebi razdijeliti u znatno kompliciranije strukture. Tako izgleda na primjer jedno brdo iz daleke udaljenosti koje je grubo proračunato i pri tome uštedivši performanse, izbliza detaljnije i više plastično. Zbog toga što wireframe model brda mora biti pohranjen u relativno jednostavnom izdanju na tvrdom disku, znatno se smanjuje preko PCI-Express-Bus-a tekuća mjera informacija i performanse za druge zadatke postaju slobodne. Obrnuto komplicirani modeli, npr. figura igrača iz igre, s većom udaljenosti mogu jednostavnije biti prikazani. Jednostavne strukture nisu primjetljive pri velikoj udaljenosti, ali zbog toga im treba znatno manje performanse. Optička kvaliteta neopada pri tome, jer kad se objekte ili likove promatra opet izbliza, stupanj detaljnosti se pomoću Tesselation metode povećava. Unatoć što je ATI već kod Radeon 8500 uvijek ispočetka ugrađivao razne Tesselation metode u svoje grafičke čipove, korisniku je zbog ovih navedenih prednosti potrebna DirectX 11 kartica, zato što je Microsoft u DirectX 11 ovu funkciju znatno proširio.
Također pogledajte
urediVanjske poveznice
uredi- Microsoftova DirectX web stranica (engl.)
- Microsoftova MSDN dokumentacija i izvorni centar za DirecX (za programere) (engl.)
- GameDev FAQ za DirectX (engl.)
- FAQ za XNA (engl.)
Izvori za programere
uredi- DirectX World - DirectX lessons. Learn how to build a graphic engine.
- Gamedev.net DirectX odjel članaka (engl.)
- Direct3D.net - Wolfgang Engel Direct3D web stranica (engl.)
- Drunken Hyena Arhivirana inačica izvorne stranice od 3. lipnja 2013. (Wayback Machine) - poduke, kodiranje, alati i igre (engl.)
- Andy Pike, DirectX8 Poduke - pokriva 2D, 3D, zvuk, muziku itd. (engl.)
- CodeSampler.com - Primjeri kodiranja i podučavanja za Direct3D programiranje računarske igre koristeći se s C++ i C# (engl.)
- [1] - Craig Andera, C# Direct3D Poduke (engl.)
- NeXe - Arhiva NeXe podučavanja (Direct3D 8), na archive.org (engl.)
- Managed Direct3D - Pieter Germishuys, C# Direct3D Podučavanje (engl.)