Fejlesztette | Microsoft |
---|---|
Utolsó verzió | 12 (2019. május 19) |
Operációs rendszer | Microsoft Windows |
típus | Programozási felület |
Engedély | EULA |
Dokumentáció | docs.microsoft.com/windows/win32/directx |
A Microsoft DirectX olyan könyvtárak gyűjteménye, amelyek multimédiás alkalmazások , különösen játékok vagy videot tartalmazó programok programozására szolgálnak a Microsoft platformjain ( Xbox , Windows operációs rendszerek ).
Eredetileg ezeknek a könyvtáraknak a neve Direct-del kezdődött, például: Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound és így tovább. A DirectX az összes ilyen technológiára utaló általános név. Idővel ez a névadási szokás használaton kívül esett, az X átvette az Xact, Xinput nevű technológiákat, és amelyek csatlakoztak a DirectX technológiák nagy családjához. Tehát, amikor a Microsoft elkezdte egy konzol kifejlesztését, amely intenzíven használja ezeket a technológiákat, az X volt az uralkodó, ami az Xbox (majd Xbox 360 , Xbox One , majd Xbox Series X és S ) nevet eredményezhette .
A Direct3D-t (a valós idejű 3D-s könyvtárat) széles körben használják a játékok fejlesztésében a Microsoft Windows platform , az Xbox és az Xbox 360 számára . A Direct3D-t más típusú alkalmazásokhoz is használják, amelyek magas színvonalú 3D-s grafikára támaszkodnak az összetett adatok vizualizálására, például a CAD / CAM szektorban, bár versenytársa, az OpenGL jobban megalapozott ezen a területen. Mert sokkal több platformon létezik. Mivel a Direct3D az egyik legelismertebb DirectX technológia, nem ritka, hogy a DirectX nevet a Direct3D helyett használják.
A DirectX-összetevők sokasága kétféle formában jelenik meg. Az egyik csak e technológiák ( futásidejű komponensek ) segítségével kifejlesztett alkalmazások futtatását szánta , a másik fejlesztőknek szánt fejlesztőkészlet. Kezdetben az alkalmazások futtatására szánt komponenseket újra elosztották az azokat használó játékokkal, a legújabb verziókban a Windows rendszerrel előre telepítve is megtalálhatók. Az SDK ingyenesen letölthető a Microsoft fejlesztői webhelyéről (MSDN) . A futási rész saját tulajdonú, és a források nem érhetők el. Az SDK példák forrásai ezzel a példával állnak rendelkezésre.
A Direct3D 9Ex és 10 verzióit a Windows Vista használta . Ez a két verzió az új Windows Display Driver Model sajátos szolgáltatásait használta fel, amelyek a Windows Vistával jelentek meg. Az új Windows grafikus infrastruktúra támogatja a grafikus hardver virtualizálását több alkalmazással és szolgáltatással, például az Asztal ablakkezelővel (a Vista asztali kezelővel, amikor az Aero aktiválva van). Korábban Windows XP -vel az alkalmazások kizárólagos hozzáféréssel rendelkeztek a grafikus kártyához, és fel tudták használni az erőforrásait.
Számítógépen a DirectX jelenleg a Windows 10 12 -es , a Windows 7-hez 11-es , a Windows Vista és a Windows Server 2008-as verziója, a Windows összes korábbi verziójához pedig a 9.0c .
A DirectX alkotóelemei a következők:
A 1994 , a Microsoft volt, hogy indítson az operációs rendszer, a Windows 95 . Bármely operációs rendszer (OS) sikerének egyik meghatározó tényezője továbbra is a szoftverek futtatása. Három Microsoft-alkalmazott - Craig Eisler, Alex St. John és Eric Engstrom - valójában nagyon aggódott amiatt, hogy számos fejlesztő úgy gondolta, hogy a Microsoft korábbi operációs rendszere, az MS-DOS jobb platform a játékok számára, ami azt jelentheti, hogy kevesebb játék lesz fejleszteni kell a Windows 95 számára , negatív hatást gyakorolva az operációs rendszer sikerére.
Az MS-DOS lehetővé tette a videokártyához, billentyűzethez, egérhez, hangkártyákhoz és a rendszer egyéb részeihez való közvetlen hozzáférést, ellentétben a Windows 95- tel, amely bevezette az egyes folyamatokra jellemző címterület-fogalmakat. A Microsoftnak ezért biztosítania kellett a fejlesztőknek, amit akartak; ráadásul gyorsan meg kellett adni, mivel az új operációs rendszer megjelenési dátuma csak néhány hónap volt hátra. Eisler, St. John és Engstrom ezután a probléma megoldására vállalkoztak, amelyet DirectX-nek hívtak.
A DirectX első verziója 2007 - ben jelent meg a nyilvánosság előtt 1995. szeptemberWindows Games SDK néven. Ez a DCI helyébe lépett a Win32 és a Windows 3.1 számára elérhető WinG API . Az ATI Technologies fejlesztőcsapata számos, a játékvilágra jellemző grafikai technológiára hívta fel a figyelmet.A DirectX fejlesztését az Eisler (fő fejlesztő), a St. John és az Engstrom (projektmenedzsment) csapata vezette. Röviden, lehetővé tette, hogy a Windows 95 óta a Windows minden verziója kihasználhassa az erőteljes multimédiás képességeket. Eisler a blogján írt arról az őrületről, amellyel a DirectX 1–5 verziói készültek.
Mielőtt DirectX létezett, a Microsoft már tartalmazta támogatás OpenGL a Windows NT . Abban az időben az OpenGL-hez olyan csúcskategóriás hardverekre volt szükség, amelyek továbbra is a jelentős pénzügyi eszközökkel rendelkező felhasználók számára voltak fenntartva, mint az ipar világában, és általában a CAD rendszerek felhasználói számára . A Direct3D-t (amelyet Eisler, Engstrom és St. John mutatta be az SGI OpenGL alternatívájaként ) egy könnyebb és speciálisabb játéktechnikának szánták. A grafikus kártyák és a számítógépek gyors fejlődésével az OpenGL de facto szabványsá és mindenki számára elérhető technológiává vált. Ekkor az összecsapás mindkét API támogatója között dúlhatott, a Microsoft kezdeményezését az OpenGL használatának marginalizálására irányuló vágynak tekintették (lásd: Fahrenheit vagy Direct3D vs. OpenGL). Mindenesetre az OpenGL-t néha bizonyos DirectX API-kkal együtt használják: az OpenGL valóban a Direct3D megfelelője, és nem feltétlenül tartalmaz olyan funkciókat, amelyek lehetővé teszik a billentyűzet vagy egér bemeneteinek vagy hangjának kezelését. Ez akkor is, ha manapság az SDL-hez hasonló könyvtárak is megfelelnek ezeknek az igényeknek, és széles körben használják őket.
Konzolos verziójában a DirectX-et használták az Xbox és Xbox 360 fejlesztésére kínált API-k gerinceként . Az API-t a Microsoft és az Nvidia közösen fejlesztette ki , amely az eredeti Xbox-on lévő grafikus hardvert biztosította. Az Xbox ezen verziójához elérhető API nagyjából megfelelt a DirectX 8.1-nek , DirectXbox-nak hívták, amelyet Xbox-ra rövidítettek, hogy megszerezzék a kereskedelmi nevet.
A 2002 , a Microsoft kiadta a DirectX 9 , amely már támogatja a hosszabb shader és 2.0-s verziója a vertex shaderek. Azóta a Microsoft tovább fejlesztette a DirectX 9-et, például hozzáadva a 3.0- s shader modell támogatását a DirectX 9.0c verzióhoz , 2004. augusztus.
Ban ben 2005. április, A DirectShow átkerült a DirectX SDK-ból a Microsoft Platform SDK-ba. A DirectShow minták összeállításához azonban továbbra is a DirectX szükséges.
A DirectX 10 a DirectX API jelentős frissítése. Csak a Windows Vista rendszerről érhető el, a Windows korábbi verziói nem futtathatnak olyan alkalmazásokat, amelyek kizárólag az API ezen verziójára támaszkodnak. A DirectX 10 által bevezetett változások mélyrehatóak, de csak a Direct3D részt érintik igazán. A DirectX API számos részét elavultnak tekintik az SDK legújabb verziójában, és kompatibilitási okokból már nincsenek jelen: a DirectInput helyébe az XInput, a DirectSound az XACT és a Xaudio2 javára kerül, és elveszíti a hardverhez való közvetlen hozzáférését a Windows rendszeren Távlat. Valójában a Vista új audio verme egy új, WASAPI nevű API-t vezet be, amelyre átirányították a DirectSound funkcióit. A DirectPlay DPLAY.dll könyvtár is eltűnt, és helyébe egy dplayx.dll nevű könyvtár lépett.
Kompatibilitási okokból a Direct3D több verziója van telepítve a Windows Vista rendszerre: A
Direct3D 9 ugyanazokat a funkciókat kínálja, mint a Direct3D 9 Windows XP rendszerhez elérhető verziója . Ez lesz az egyetlen elérhető verzió mindaddig, amíg a Windows Display Driver Model illesztőprogramot nem telepítették a Vistával, például egy frissítés után, amikor csak egy XP grafikus illesztőprogram (XPDM) volt jelen.
Direct3D 9Ex (más néven 9.0L vagy 9.L, a Longhornra utaló L, a megjelenés előtt használt Windows Vista kódnévre utal): Ez a verzió lehetővé teszi, hogy kihasználhassa a WDDM illesztőprogramok használatával bevezetett bizonyos funkciókat, miközben most kompatibilis a a Direct3D 9-hez írt alkalmazások . A Windows Aero interfész a D3D 9Ex-en alapul, és a Direct3D 9-ben nem található néhány funkciót használja , például a DirectX-felületek megosztását több folyamat között.
Direct3D 10 : A legközvetlenebb és legteljesebb hozzáférést kívánja biztosítani a modern grafikus kártyákhoz az új WDDM illesztőprogram-modellen keresztül. Ez a verzió számos új funkciót tartalmaz, például a HLSL nyelv használatát a Shader Model 4 verzióban .
A Direct3D 10.1 a Direct3D 10 apróbb frissítése, amelyet terjesztenek, és amelyhez Windows Vista Service Pack 1 szükséges . Ez a verzió néhány további funkcióval bővíti a fejlesztőket, hogy jobban ellenőrizhessék a kapott kép minőségét. Ez a kiadás saját követelményekkel rendelkezik, és a 32 bites lebegőpontos műveletekhez Shader Model 4.1 támogatást igényel .
A DirectX 10.1 továbbra is teljes mértékben kihasználja a DirectX 10 kompatibilis kártyákat , de az összes új funkció előnyeinek kihasználásához megfelelő kártyára van szükség.
A Microsoft bemutatta a DirectX 11-et Seattle-ben, a „Gamefest 08” rendezvényen, a tervezett funkciókkal, beleértve a GPGPU (DirectCompute) támogatást, a Direct3D11 tessellációval, valamint a továbbfejlesztett többszálas menettel, hogy segítsen a videojáték-fejlesztőknek a többmagos szoftverek elérésében. A Direct3D 11 Windows Vista és Windows 7 rendszereken fut. A következő verziókon is működik. Az új API-k elemeit, például a „többszálas erőforrás-kezelést” a Direct3D 9/10 / 10.1 hardver támogatja. A hardveres tessellációhoz, valamint a „Shader Model 5.0” -hoz Direct3D 11 szükséges. A Microsoft azóta frissítette a Direct3D 11-et. A Direct3D 11 a Direct3D 10.1 szuperhalmaza - a 10.1 verzió összes szolgáltatása jelen van, az új funkciók csak akkor érhetők el szükséges. Ez a jobb kompatibilitás érdekében.
A DirectX 11.1 a Windows 8 rendszerben van . Támogatja a WDDM 1.2-t a jobb teljesítmény érdekében, a Direct2D, Direct3D, DirectCompute jobb integrációját kínálja, és magában foglalja a DirectXMath, XAudio2, valamint az XInput keretrendszer XNA könyvtárakat. Sztereoszkópikus 3D támogatást is tartalmaz.
A DirectX 11.2 egy exkluzív Windows 8.1 . Az API ezen fejlődése támogatja a WDDM 1.3- at , az erőforrások dinamikus megosztását a számítógép különböző memóriái (ún. Csempézett erőforrások ) között, valamint más kisebb fejleményeket.
A DirectX 11.3 az API új fejleménye, amely a DirectX 12 bizonyos funkcióival fog rendelkezni, különösen a Direct3D szintjén.
az 2014. március 6, A Microsoft hivatalosan is hivatalosan bejelentette a DirectX 12 bejelentését a Játékfejlesztők Konferencián 17 és 20 közöttMárcius 21-énA San Francisco . A DirectX ezen verziója Windows 10 , Xbox One és Windows Phone rendszereken érhető el , és alacsonyabb szintű hozzáférést kínál a grafikus áramkör erőforrásaihoz a jobb teljesítmény és az alacsonyabb energiafogyasztás érdekében. A felhasznált erőforrások elosztásának megkönnyítésére, a több folyamat és a több grafikus kártya jobb kihasználására szolgáló eszközök.
2020. május 20-án, szerdán a Microsoft bejelentette a DirectX 12 portját a Linux operációs rendszer alatt, annak részeként, hogy közelebb hozza a Windows 10-et a Linuxhoz. Kinek a forráskódja nyílt forráskódú és ingyenesen konzultálhat.
Bár a DirectX egy API, amelyet a Windows operációs rendszerhez terveztek , vannak olyan illesztőprogramok és szoftverkönyvtárak, amelyek API-jának részét biztosítják más operációs rendszereken, például:
Változat | Kiadási dátum | ||
---|---|---|---|
Jelentősebb | Kiskorú | Verzió kód | |
1 | 1.0 | 4.02.0095 | 1995. szeptember 30 |
2 | 2.0 | 4.03.00.1096 | 1996 |
2.0a | 1996. június 5 | ||
3 | 3.0 | 4.04.00.0068 | 1996. szeptember 15 |
4.04.00.0069 | 1996 | ||
3.0a | 4.04.00.0070 | 1996 december | |
3.0b | |||
4 | 4.0 | Soha ne | |
5. | 5.0 | 4.05.00.0155 (RC55) | 1997. július 16 |
5.2 | 4.05.01.1600 (RC00) | 1998. május 5 | |
1998.01.4. (RC0) | 1998. június 25 | ||
6. | 6.0 | 4.06.00.0318 (RC3) | 1998. augusztus 7 |
6.1 | 4.06.02.0436 (RC0) | 1999. február 3 | |
6.1a | 4.06.03.0518 (RC0) | 1999. május 5 | |
7 | 7.0 | 4.07.00.0700 | 1999. szeptember 22 |
2000. február 17 | |||
7.0a | 4.07.00.0716 | 2000. március 8 | |
2000 | |||
7.1 | 40007.01.3000 (RC1) | 2000. szeptember 14 | |
8. | 8.0 | 4.08.00.0400 (RC10) | 2000. november 12 |
8.0a | 4.08.00.0400 (RC14) | 2001. február 5 | |
8.1 | 4.08.01.0810 | 2001. október 25 | |
4.08.01.0881 (RC7) | 2001. november 8 | ||
8.1a | 4.08.01.0901 (RC?) | 2002 | |
8.1b | 4.08.01.0901 (RC7) | 2002. június 25 | |
8.2 | 4.08.02.0134 (RC0) | 2002 | |
9. | 9.0 | 4.09.00.0900 (RC4) | 2002. december 19 |
9.0a | 4.09.00.0901 (RC6) | 2003. március 26 | |
9.0b | 4.09.00.0902 (RC2) | 2003. augusztus 13 | |
9.0c | 4.09.00.0903 | ||
4.09.00.0904 | 2004. augusztus 4 | ||
2004. augusztus 6 | |||
4.09.00.0904 (RC0) | 2005. augusztus | ||
4.09.00.0905 (RC0) | 2008. november | ||
4.09.00.0906 (RC0) | 2009. március | ||
4.09.00.090? (RC0) | 2010. június | ||
10. | 10.0 | 6.00.6000.16386 | 2006. november 30 |
10.1 | 6.00.6001.18000 | 2008. március 18 | |
11. | 11. | 6.01.7600.16385 | 2009. július 22 |
11. | 6.01.7601.17514 | 2011. február 6 | |
11.1 | 6.02.9200.16384 | 1 st August 2012-es | |
11.2 | 6.03.9600.16384 | 2013. október 17 | |
12. | 12. | 10.00.10586.0000 | 2015. július 29 |
10.00.14393.0000 | 2016. augusztus 24 | ||
10.00.15063.0000 | 2017. április 5 | ||
10.00.17134.0001 | 2018. április 10 | ||
10.00.17763.0001 | 2018. október 2 | ||
10.00.18362.0387 | 2019 november |
Az olyan API-k, mint a Direct3D és a DirectSound, közvetlenül illesztőprogramokon keresztül kommunikálnak a hardverrel. A hardvergyártóknak ezeket az illesztőprogramokat a DirectX „Device Driver Interface” (vagy DDI) meghatározott verziójához kell írni. A DirectX régebbi verziói számos DirectX illesztőprogram-frissítést tartalmaztak, de ezt a gyakorlatot felhagyták a Windows Update javával, amely lehetővé teheti a felhasználók számára, hogy csak a hardverükre jellemző illesztőprogramokat töltsenek le. A DirectX 10 előtti verziók visszafelé kompatibilisnek tűntek a régebbi illesztőprogramokkal, lehetőség volt a DirectX újabb verzióinak használatára a DDI régebbi verzióinak támogatására írt illesztőprogramokkal. Például egy Direct3D 9 alapú játék egy olyan gépen futtatható, amelyen a DirectX 6 idején csak egy meghajtó volt kifejlesztve . Másrészt a DirectX 10-en a Vistán, figyelembe véve a változások mértékét és azt a tényt, hogy az API által kitett bizonyos funkciók csak az új illesztőprogram-modellnek köszönhetően érhetők el, lehetetlen használni az illesztőprogram nélküli verzióhoz kifejlesztett alkalmazást Az új WDDM illesztőprogram-modellnek megfelelő DirectX. A DirectX több verziója előre telepítve van a Windows számos verziójával annak érdekében, hogy támogassa az API régebbi verzióival írt alkalmazásokat, amennyiben azokat nem írták át a legújabb verzióhoz, és továbbra is használják őket.
2002-ben a Microsoft elérhetővé tette a fejlesztők számára a DirectX SDK olyan verzióját, amely .Net-összeállításokat hozott létre, lehetővé téve a kezelt kódból származó DirectX használatát, akár kezelt C ++, C # vagy bármely más, a .Net Framework által támogatott nyelven. Ezeket az összeállításokat "Managed DirectX" (vagy MDX) néven csoportosították, és lehetővé tették számukra a teljesítmény elérését, amelyet nem feltétlenül kellett szégyenkeznünk a natív C ++ nyelven elérhető összehasonlítás miatt. Ban ben2005. december, 2006. február, 2006. április és 2006. augusztus, A Microsoft ennek a technológiának az egymást követő frissítéseit tette elérhetővé a fejlesztők számára, hogy elérjék a 2.0 verziót, amely soha nem létezett, kivéve egy2006. október 5.
A 2006-os GDC során a Microsoft bevezette az új könyvtárnak szánt XNA GSE keretrendszert, amely lehetővé teszi a fejlesztők számára, hogy a .Net nyelv használatával játsszanak játékokat a DirectX funkciók eléréséhez. Ez a keretrendszer szintén megkönnyíti munkájukat azáltal, hogy csoportosítja azokat a funkciókat, amelyek korábban különböző szerelvényekben szétszórtan voltak megtalálhatók . Ez a keretrendszer támogatja az Xbox 360- on készített alkalmazások futtatását is . Az RTM verziót leszállították2006. december 11, ingyenesen letölthető csomagként. A DirectX-től vagy a Managed DirectX-től eltérően az XNA GSE Framework összetevőit vagy az Xbox 360- ból származó API-kat (XInput, XACT stb. ) Nem telepítik előre a Windows egyik verziójával sem, ezért ajánlott őket egyidejűleg telepíteni, mint bármelyik játék felhasználásával.
2013 elején a Microsoft bejelentette az XNA fejlesztés befejezését és a legértékesebb szakemberek (MVP) tanúsító programból való kilépést 1 st április 2014. Ezután a nyílt forráskódú közösség olyan keretrendszerekkel veszi át a helyét, mint a MonoGame (az XNA nyílt forráskódú megvalósítása) és az olyan API-k, mint a SharpDX, amelyek natív DirectX kódra hívnak (amint az MDX tette).
A DirectX rendszer kompatibilis az összes Microsoft operációs rendszerrel, 32 bit (x86) és 64 bit (x64).
Számos könyvtár létezik, amelyek gyakran lefedik a DirectX bizonyos funkcióit. Segítségével ezek kombinációjával lehet elérni ugyanazokat a funkciókat, mint a DirectX említhetjük SDL , Allegro , OpenMAX , OpenML , OpenGL , OpenAL , Vulkán , FMOD , stb Ezeknek a könyvtáraknak előnye lehet, hogy lehetővé teszik hordozható alkalmazások fejlesztését a Windows operációs rendszereken kívül. Ezek a könyvtárak többnyire nyílt forráskódú projektekből származnak .
Más projektek, mint például a Wine része, ugyanazon funkciókészlet alternatív megvalósításának célja.