DirectX
DirectX on Microsoftin Windows-käyttöjärjestelmälle ja Xbox-pelikonsoleille kehittämä, erityisesti peleihin tarkoitettu ohjelmointirajapinta[1] tietokoneohjelman ja laitteiston välille. DirectX tarjoaa yhtenäisen rajapinnan mm. 3D-grafiikkaa, ääntä ja ohjauslaitteita varten.
Ohjelmointirajapinnat ohjaavat matalan tason toimintoja, jotka ovat yhteydessä laitteistoon tai korvaavat puuttuvia toimintoja emuloimalla niitä.[1] Alun perin DirectX:n kehittivät kolme Microsoftilla työskennellyttä henkilöä: Craig Eisler, Alex St. John ja Eric Engstrom.[1]
Tarve rajapinnan kehittämiseen oli se, että Windows 95 -käyttöjärjestelmässä suora pääsy laitteistoresursseihin oli suojattua, toisin kuin sitä edeltäneessä DOS-käyttöjärjestelmässä.[1] Tarvittiin laitteistorajapinta (eng. hardware abstraction layer), jolla päästiin käyttämään laitteistoa matalammalla tasolla kuin mitä Windowsin perusfunktiot olisivat mahdollistaneet. Tämä oli tärkeää pelejä varten, jotta saatiin hyvä suorituskyky ja sulava pelikokemus.
Ennen DirectX:n kehitystä Microsoftilla oli WinG-rajapinta.[2]
Komponentit
[muokkaa | muokkaa wikitekstiä]DirectX koostuu useasta erillisestä komponentista:
- DirectX Graphics, joka koostuu kolmesta rajapinnasta:
- Direct2D – kaksiulotteisen grafiikan piirtäminen
- Direct3D (D3D) – kolmiulotteisen grafiikan piirtäminen
- DirectX Graphics Infrastructure – yksinkertainen kommunikointi Direct3D:n ja WDDM:n välillä
- DirectSetup – DirectX-komponenttien asentaminen
- DirectSound3D
- DirectX Media Objects – tuki mediavirtojen käsittelyyn (koodekit ja efektit)
- DirectShow
- DirectX plugins
- DirectX Video Acceleration
- DirectX Transform
- Direct3D Retained Mode
- DirectShow
- DirectWrite – fonttien piirtäminen
- DirectCompute – laskenta näytönohjaimella
Käytöstä poistuneita rajapintoja:
- DirectInput – näppäimistön, hiiren ja muiden peliohjainten käsittely
- DirectPlay – pelien kommunikointi keskenään verkon välityksellä
- DirectSound – äänen soittaminen ja nauhoittaminen
- DirectMusic – musiikin soittaminen
Direct3D
[muokkaa | muokkaa wikitekstiä]Merkittävä osa-alue kehityksestä suuntautuu 3D-grafiikkaan käytettävän Direct3D:n kehitykseen, etenkin tehokkuuden parantamiseen. Nykyään käytetään vain yleisempää termiä DirectX puhuttaessa Direct3D:stä.
Versio 11 Direct3D:stä paransi tehokkuutta lisäämällä tuen monisäikeistykselle ja lisäsi tuen nk. GPGPU-käytölle nimellä DirectCompute.[3]
Uusin versio 12 julkaistiin vain Windows 10:lle.[4]
DirectCompute
[muokkaa | muokkaa wikitekstiä]DirectCompute on DirectX:n tuki GPGPU-käytölle eli grafiikkasuorittimen hyödyntämistä matematiikkasuorittimen tavoin puhtaasti laskentatehtäviin, kuten fysiikkamallinnukseen. DirectCompute-ohjelma tehdään HLSL-kielellä.[5]
Katso myös
[muokkaa | muokkaa wikitekstiä]- Mantle
- Metal
- OpenAL
- OpenGL – laitteistoriippumaton grafiikkarajapinta
- Simple DirectMedia Layer
- Vulkan
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b c d Plaza – Katsaus DirectX 10 -rajapintaan (Arkistoitu – Internet Archive) 20.9.2007
- ↑ Chris Hecker: A Whirlwind Tour of WinG gamasutra.com. 1.6.1997. Viitattu 10.5.2022. (englanniksi)
- ↑ Direct3D 11 Features Microsoft. Viitattu 20.1.2017.
- ↑ OpenGL:n korvaajan ja DirectX 12:n haastajan ensimmäinen versio julkaistiin – Mikrobitti www.mikrobitti.fi. Viitattu 20.1.2017.
- ↑ Compute Shader Overview docs.microsoft.com. 31.5.2018. Viitattu 12.1.2021. (englanniksi)