DirectX
| Microsoft DirectX | |
|---|---|
| Tip | Sreda dlia prilozhenii |
| Razrabotchik | Microsoft |
| Napisana na | HLSL i C++ |
| Operatsionnaia sistema | Microsoft Windows |
| Data vypuska | 30 sentiabria 1995 |
| Posledniaia versiia | 12.2 (10 noiabria 2020) |
| Litsenziia | Microsoft EULA |
| Sait | microsoft.com/en-us/down... |
| Mediafaily na Vikisklade | |
DirectX (ot angl. direct -- priamoi, neposredstvennyi, proiznositsia kak <
Komponenty DirectX
[pravit' | pravit' kod]Prakticheski vse chasti DirectX API predstavliaiut soboi nabory COM-sovmestimykh ob'ektov.
V tselom, DirectX podrazdeliaetsia na:
- DirectX Graphics, nabor interfeisov, ranee (do versii 8.0) delivshikhsia na:
- DirectDraw: interfeis vyvoda rastrovoi grafiki (ego razrabotka davno prekrashchena);
- Direct3D (D3D): interfeis vyvoda triokhmernykh primitivov.
- DirectInput: interfeis, ispol'zuemyi dlia obrabotki dannykh, postupaiushchikh s klaviatury, myshi, dzhoistika i prochikh igrovykh kontrollerov.
- DirectPlay: interfeis setevoi kommunikatsii igr.
- DirectSound: interfeis nizkourovnevoi raboty so zvukom (formata Wave)
- DirectMusic: interfeis vosproizvedeniia muzyki v formatakh Microsoft.
- DirectShow: interfeis, ispol'zuemyi dlia vvoda/vyvoda audio- i/ili videodannykh.
- DirectX Instruments -- tekhnologiia, pozvoliaiushchaia na osnove mul'timediinogo API DirectX sozdavat' i ispol'zovat' programmnye sintezatory. V otlichie ot DX-plaginov, takie programmy mogut polnost'iu upravliat'sia po MIDI i sluzhat glavnym obrazom ne dlia obrabotki, a dlia sinteza zvuka. Tekhnologiia DXi byla populiarna v 2001--2004 gg., osobenno v programmnykh produktakh Cakewalk, no so vremenem proigrala <
> tekhnologii VST ot Steinberg.
- DirectX Instruments -- tekhnologiia, pozvoliaiushchaia na osnove mul'timediinogo API DirectX sozdavat' i ispol'zovat' programmnye sintezatory. V otlichie ot DX-plaginov, takie programmy mogut polnost'iu upravliat'sia po MIDI i sluzhat glavnym obrazom ne dlia obrabotki, a dlia sinteza zvuka. Tekhnologiia DXi byla populiarna v 2001--2004 gg., osobenno v programmnykh produktakh Cakewalk, no so vremenem proigrala <
- DirectSetup: chast', otvetstvennaia za ustanovku DirectX.
- DirectX Media Objects: realizuet funktsional'nuiu podderzhku potokovykh ob'ektov (naprimer, kodirovshchiki/dekodirovshchiki)
- Direct2D: interfeis vyvoda dvukhmernoi grafiki
Istoriia
[pravit' | pravit' kod]Iznachal'no natselennyi na razrabotku videoigr, DirectX stal populiaren i v drugikh oblastiakh razrabotki programmnogo obespecheniia. K primeru, DirectX, nariadu s OpenGL, poluchil ochen' shirokoe rasprostranenie v inzhenernom/matematicheskom PO.
V 1994 godu Microsoft byla prakticheski gotova vypustit' sleduiushchuiu versiiu Windows -- Windows 95. Glavnym faktorom, opredeliaiushchim, naskol'ko populiarna budet novaia OS, iavlialsia nabor programm, kotorye mozhno budet zapuskat' pod eio upravleniem. V Microsoft prishli k vyvodu, chto, poka razrabotchiki vidiat DOS bolee podkhodiashchei dlia napisaniia igrovykh prilozhenii, kommercheskii uspekh novoi OS ves'ma somnitelen.
DOS pozvoliala razrabotchiku poluchit' priamoi dostup k videokarte, klaviature/myshi/dzhoistiku i prochim chastiam sistemy, v to vremia kak Windows 95, s eio zashchishchionnoi model'iu pamiati, predostavliala bolee standartizovannyi, no v to zhe vremia ves'ma ogranichennyi i nakladnyi dostup k ustroistvam. Microsoft nuzhdalas' v novom sposobe dat' razrabotchiku vsio, chto emu neobkhodimo. Aisler (Eisler), Seint Dzhon (St. John) i Engstrom (Engstrom) reshili etu problemu, nazvav samo reshenie DirectX.
Pervyi reliz DirectX byl vypushchen v sentiabre 1995 goda pod nazvaniem <
Eshchio do poiavleniia DirectX Microsoft vkliuchila OpenGL v OS Windows NT. Direct3D pozitsionirovalsia kak zamena OpenGL v igrovoi sfere. Otsiuda beriot svoio nachalo <
DirectX iavliaetsia bazoi dlia Xbox API. Xbox API skhozh s DirectX 8.1, no obnovlenie versii, kak i na drugikh konsoliakh togo vremeni, nevozmozhno.
V 2002 godu Microsoft vypustila DirectX 9 s uluchshennoi i rasshirennoi podderzhkoi sheiderov. S 2002 goda DirectX neodnokratno obnovlialsia. V avguste 2004 goda v DirectX byla dobavlena podderzhka sheiderov versii 3.0 (DirectX 9.0c).
V aprele 2005 interfeis DirectShow byl peremeshchion v Microsoft Platform SDK.
Khronologiia versii DirectX
[pravit' | pravit' kod]| Versiia DirectX | Logotip | Nomer versii | Operatsionnaia sistema | Data reliza |
|---|---|---|---|---|
| DirectX 1.0 | 4.02.0095 | Windows 95a | 30 sentiabria 1995 | |
| DirectX 2.0 / 2.0a | 4.03.00.1096 | Windows 95 OSR 2 i Windows NT mladshe 4.0 | 5 iiunia 1996 | |
| DirectX 3.0 / 3.0a | 4.04.0068 / 69 | Windows 95 OSR 2.5 i Windows NT 4.0 SP3 posledniaia ofitsial'no podderzhivaemaia versiia DirectX dlia Windows NT 4.0 |
15 sentiabria 1996 | |
| DirectX 4.0 | 4.05.00.0155 (RC55) | Dostupen kak beta dlia Windows NT 4.0 | 16 iiulia 1997 | |
| DirectX 5.0 | 4.05.01.1721 / 1998 | Windows 98 | 5 maia 1998 | |
| DirectX 6.0 | 4.06.00.0318 (RC3) | Windows 98 SE posledniaia podderzhivaemaia versiia DirectX Media dlia Windows NT 4.0, a takzhe dannaia versiia DirectX byla v Dreamcast |
7 avgusta 1998 | |
| DirectX 6.1 | 4.06.02.0436 (RC0) | Windows 95/98/98SE | 3 fevralia 1999 | |
| DirectX 6.2 | 5.00.2516.1900 (unofficial patch) | Windows NT/98SE/98/2000/ME | 21 avgusta 1999 | |
| DirectX 7.0 | 4.07.00.0700 (RC1) | Windows 2000 i Windows ME | 22 sentiabria 1999 | |
| DirectX 7.0a | 4.07.00.0716 (RC1) | Windows 95/98/98SE/2000 | 17 dekabria 1999 | |
| DirectX 8.0 | 4.08.00.0400 (RC10) | Windows 95/98/98SE/2000/ME | 12 noiabria 2000 | |
| DirectX 8.0a | 4.08.00.0400 (RC14) | Posledniaia podderzhivaemaia versiia DirectX dlia Windows 95 | 5 fevralia 2001 | |
| DirectX 8.1 | 4.08.01.0810 | Windows XP/XP SP1 | 25 oktiabria 2001 | |
| 4.08.01.0881 (RC7) | Windows 98/98SE/2000/ME | 8 noiabria 2001 | ||
| DirectX 8.1b | 4.08.01.0901 | 25 iiunia 2002 | ||
| DirectX 8.2 | 4.08.02.0134 (4.09.00.0134) | 27 sentiabria 2002 | ||
| DirectX 9.0 | 4.09.0000.0900 | Windows Server 2003 | 24 dekabria 2002 | |
| DirectX 9.0a | 4.09.0000.0901 | 26 marta 2003 | ||
| DirectX 9.0b | 4.09.0000.0902 (RC2) | 13 avgusta 2003 | ||
| DirectX 9.0c | 4.09.0000.0904 (RC0) | Windows XP SP2 posledniaia podderzhivaemaia versiia DirectX dlia Windows 98SE i Windows Me |
9 avgusta 2004 | |
| DirectX 9.0L | 4.09.0000.0905 (?) | Predostavliaet dopolnitel'nye interfeisy IDirect3D9Ex i IDirect3DDevice9Ex s funktsional'nost'iu, dostupnoi lish' cherez LDDM-draivery OS Windows Vista. | ||
| DirectX 10 (vkliuchion v sostav Windows Vista) | 6.0.6000.16386 | Pervaia versiia dlia Windows Vista. Informatsiia po Direct3D10 |
10 noiabria 2006 | |
| DirectX 10.1 | 6.00.6001.18000 | Service Pack 1 dlia Windows Vista, Windows Server 2008 | 4 fevralia 2008 | |
| DirectX 11 (vkliuchion v sostav Windows 7) | 6.01.7600.16385 | Windows 7, Windows Server 2008 R2 | 22 oktiabria 2009 | |
| 6.00.6002.18107 | Windows Vista SP2 i Windows Server 2008 SP2 cherez Platform Update for Windows Vista and Windows Server 2008[1] | 27 oktiabria 2009 | ||
| 6.01.7601.17514 | Windows 7 SP1, Windows Server 2008 R2 SP1 | 16 fevralia 2011 | ||
| DirectX 11.1 (vkliuchion v sostav Windows 8) [2] | 6.02.9200.16384 | Windows 7 SP1, Windows 8, Windows RT, Windows Server 2012 | 1 avgusta 2012 | |
| DirectX 11.2 (vkliuchion v sostav Windows 8.1) | 6.03.9600.16384 | Windows 8.1, Windows RT, Windows Server 2012 R2 | 18 oktiabria 2013 | |
| DirectX 11.3 (vkliuchion v sostav Windows 10) | Windows 10 | 29 iiulia 2015 | ||
| DirectX 12 (vkliuchion v sostav Windows 10) | 10.00.10240.16384 | Windows 10, Xbox One, Xbox Series X | 29 iiulia 2015 | |
| DirectX 12.1 | 10.00.17763.0001 | Windows 10, dobavlena podderzhka DirectX Raytracing[3] | 2 oktiabria 2018 | |
| DirectX 12.2 | 10.00.19041.0928 | Windows 10, Ultimate | 10 noiabria 2020 |
Kliuchevye osobennosti
[pravit' | pravit' kod]- DirectX 6.0 -- mul'titeksturirovanie
- DirectX 7.0 -- apparatnaia podderzhka preobrazovanii, obrezaniia i osveshcheniia
- DirectX 8.0 -- sheidernaia model' 1.1
- DirectX 8.1 -- piksel'nye sheidery 1.4 i vershinnye sheidery 1.1
- DirectX 9.0 -- sheidernaia model' 2.0
- DirectX 9.0b -- piksel'nye sheidery 2.0b i vershinnye sheidery 2.0
- DirectX 9.0c -- sheidernaia model' 3.0
- DirectX 9.0L -- versiia DirectX 9.0 dlia Windows Vista i vyshe
- DirectX 10 -- sheidernaia model' 4.0 (tol'ko Windows Vista, Windows 7, Windows 8)
- DirectX 10.1 -- sheidernaia model' 4.1 (tol'ko Windows Vista, Windows 7, Windows 8)
- DirectX 11 -- sheidernaia model' 5.0 (tol'ko Windows Vista, Windows 7, Windows 8/8.1)
- DirectX 11.3 / DirectX 12 -- sheidernaia model' 5.1 (tol'ko Windows 10).
Sovmestimost'
[pravit' | pravit' kod]Mnogie sovremennye ustroistva imeiut DirectX-sovmestimye draivery, inymi slovami, pol'zovatel' dolzhen ustanovit' DirectX dlia ispol'zovaniia vsekh vozmozhnostei ustroistva. Na dannyi moment sistema obnovleniia draiverov Windows Update pozvoliaet zagruzhat' tol'ko neobkhodimye biblioteki, a ne ves' draiver tselikom.
Podderzhivaemye operatsionnye sistemy:
- Windows 95/98/98 SE/ME;
- Windows NT 4.0, Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition, Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4;
- Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003 Datacenter x64 Edition, Windows Server 2003 Enterprise x64 Edition, Windows Server 2003 Standard x64 Edition, Windows Small Business Server 2003;
- Windows XP, Windows XP 64-bit, Windows XP Home Edition, Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1, Windows XP Service Pack 2, Windows XP Service Pack 3, Windows XP Starter Edition, Windows XP Tablet PC Edition;
- Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11;
- Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2016.
Biblioteki-obiortki
[pravit' | pravit' kod]V sluchae vozniknoveniia razlichnykh problem pri ispol'zovanii ustarevshikh prilozhenii i igr mozhno vospol'zovat'sia spetsial'noi bibliotekoi-obiortkoi (wrapper).
Na tekushchii moment sushchestvuet para takikh variantov, v tom chisle transliatsiia vyzovov v drugie API, no vysokaia skorost' raboty vozmozhna tol'ko iz <
- dgVoodoo2 -- vrapper dlia zapuska ustarevshikh igr na osnove DirectX 1-7 i tak zhe 8-9 v DirectX 11 s urovnem funktsii 10/10.1 ili cherez WARP. V pervuiu ochered' ispol'zovalsia dlia zapuska Glide-igr, no pozzhe byla dobavlena podderzhka DirectX.[4]
- dxwrapper -- obertka dlia zapuska DirectX 1-8 v DirectX 9.[5]
- D9VK -- obertka dlia ispol'zovaniia DirectX 9 igr i prilozhenii pod Vulkan bez neobkhodimosti ikh perepisyvat'.[6]
- DXVK -- obertka dlia ispol'zovaniia DirectX 8/9/10/11 igr i prilozhenii cherez Vulkan.
- VKD3D -- obertka dlia zapuska DirectX 12 igr i prilozhenii cherez Vulkan.
- WineD3D -- obertka dlia zapuska prilozhenii i igr DirectX 1-11 cherez OpenGL.
Sm. takzhe
[pravit' | pravit' kod]- GDI
- OpenGL
- Vulkan (API)
- Mantle (API) (ot AMD)
- Simple DirectMedia Layer
- X (DirectX) -- format faila dlia khraneniia 3D-ob'ektov, razrabotannyi Microsoft dlia DirectX
- Direct3D 10
- Direct3D 11
- Direct3D 12
Primechaniia
[pravit' | pravit' kod]- | Microsoft upgrades Windows Vista with DirectX 11 . pcgameshardware.com. Data obrashcheniia: 3 maia 2016. Arkhivirovano iz originala 31 marta 2016 goda.
- | Novye vozmozhnosti Direct3D 11.1 / Khabrakhabr Arkhivirovano 17 sentiabria 2011 goda.
- | DirectX Raytracing and the Windows 10 October 2018 Update (angl.) (2 oktiabria 2018).
- | dgVoodoo2 . dege.freeweb.hu. Data obrashcheniia: 5 avgusta 2019. Arkhivirovano iz originala 5 avgusta 2019 goda.
- | Elisha Riedlinger. Fixes compatibility issues with older games running on Windows 10 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.: elishacloud/dxw... -- 2019-08-04. Arkhivirovano 7 noiabria 2019 goda.
- | Joshua-Ashton. A Direct3D9 to Vulkan layer using the DXVK backend. Github. Data obrashcheniia: 5 avgusta 2019. Arkhivirovano 2 marta 2019 goda.
Literatura
[pravit' | pravit' kod]- Adams D. DirectX: prodvinutaia animatsiia. Komplekt. -- <
> , 2004. -- S. 480. -- ISBN 5-9579-0025-7.