Plaza

Dome

Alustat:
PC
GameCube
PlayStation 2
PlayStation 3
Xbox
Xbox 360
DS
Game Boy Advance
N-Gage
PSP
Wii
Mobiili
Linux
Mac
Kolikkopelit
Konsolit
Laitteet
Retro
Vekottimet
Viihdelaitteet

Katsaus DirectX 10 -rajapintaan

21.9.2007
Ville

Aihealueet: PC

DirectX 10:n avulla on myyty paljon tuotteita sen jälkeen, kun NVIDIA julkaisi ensimmäiset kyseistä rajapintaa tukevat näytönohjaimet viime vuoden marraskuussa. Ensimmäisenä markkinoille tulleet GeForce 8800 -tuoteperheen GTX- ja GTS-mallit sijoittuivat kuitenkin hinnan puolesta valikoiman kärkipäähän, ja kuluttaja- ja budjettiluokan näytönohjaimet antoivat odottaa itseään sekä AMD:n että NVIDIAn osalta tämän vuoden puolelle.

Nyt markkinoilla on malleja joka hintaluokkaan, mutta toinen asia on, mitä DirectX 10 -rajapintaa tukevasta näytönohjaimesta nykypäivänä hyötyy? Muropaketin artikkeli paneutuu juuri tähän kysymykseen ja tutkii DirectX-rajapinnan historiaa sekä sen toistaiseksi uusinta 10-versiota. Mukana on rajapintaa tukevia uutuuspelejä, joiden suorituskykyä testataan eri näytönohjaimilla ja verrataan kuvanlaatua DirectX 9:n ja DirectX 10:n välillä.

Muropaketti, Katsaus DirectX 10 -rajapintaan

DirectX 10 & seuraava tulokas - DirectX 10.1

DirectX 10:n merkittävimmät uudistukset voidaan kiteyttää viideksi kohteeksi, joista osaan perehdytään pintaraapaisua syvemmältä:

  • Monipuolisemmat mahdollisuudet ohjelmoijalle (Geometry Shaderit ja SM 4.0)
  • Tiukat määrittelyt raudan suhteen
  • Parannettu suorituskyky
  • Yhteiset käskyjoukot (HLSL 10, High-Level Shader Language)
  • Stream I/O (Geometry Shader voi kirjoittaa muistiin)

Aiempiin DirectX-versioihin nähden DirectX 10:ssä ei ole tukea rautapohjaisesti kiihdytetylle äänelle, vaan äänen renderöimiseen käytetään prosessoria. DirectInput päivitetään samalla jo aiemmin Xbox 360:ssa käytössä olleeseen XInputtiin ja DirectMusic on paketin ainoa komponentti, joka ei koe muutoksia DirectX 9.0c:hen verrattuna.

Direct3D 10:n liukuhihnassa on seitsemän vaihetta, joista vasemmanpuoleisimpana oleva Input Assembler toimittaa prosessoitavan datan liukuhihnalle. Liukuhihnakäsitteen mukaisesti data siirtyy seuraavaan ”palikkaan”, joka on Vertex Shader. Vertex Shader käsittelee yhden vertex-operaation, joka voi olla esimerkiksi valaistukseen tai muunnokseen liittyvä operaatio. Seuraavana on DirectX 10:n myötä uusi tulokas Geometry Shader, johon perehdytään tarkemmin seuraavassa kappaleessa. Stream Output tallentaa muistiin edellisen työvaiheen tulokset ja sitä käytetään, kun dataa kierrätetään uuteen kiertoon liukuhihnalle. Rasterizer rasteroi primitiivisen datan pikseleiksi ja leikkaa pois peittoon jäävät alueet. Pixel Shader hoitaa pikselioperaatiot, kuten värikäsittelyn, ja Output Manager kasaa usean eri tyypin datan yhteen ja luo niistä lopputuloksen.

Geometry Shaderit mahdollistavat geometrisen datan luonnin ja tuhoamisen grafiikkapiirissä, kun aiemmin grafiikkapiiri kykeni manipuloimaan ainoastaan olemassa olevaa geometrista dataa. Yhdessä Stream-ulostulolla, algoritmit, joita ei voitu edes prosessoida tai jouduttiin toteuttamaan prosessorilla, voidaan nyt suorittaa suoraan grafiikkapiirissä. Stream-ulostulo on DirectX 10:n uusi ominaisuus, joka mahdollistaa datan luomisen Geometry Shadereista, lähettämisen muistipuskuriin ja jälkeenpäin takaisin grafiikkapiirin liukuhihnaan prosessoitavaksi uudestaan. Tämä mahdollistaa aiempaa monimutkaisempaa geometrista prosessointia, kehittyneempää valaistusta ja grafiikkapiiripohjaista fysiikkalaskentaa ilman rankkaa prosessorin rasitusta.

DirectX 10:n yksi merkittävä suorituskykyparannus on prosessorikuorman laskeminen ja ongelmien ratkominen useilla erilaisilla tavoilla DirectX 9:ään verrattuna. Suorituskykyyn kriittisesti vaikuttavia osia on suunniteltu täysin uudestaan, ja tästä esimerkkinä ovat mm. piirtokyselyt ja tilan muutokset.

DirectX 10 tarjoaa huomattavan parannuksen rekisteriresursseihin, sillä esimerkiksi väliaikaisten rekistereiden määrä on noussut 32:sta 4096:ään ja pysyvien rekistereiden 256:stä 65536:een, joka koostuu 16 vakiosta puskurista 4096 rekisterissä. DirectX 10 tuo myös uuden Unified Shader -arkkitehtuurin yhdessä Unified Instruction -joukolla, ja aiemmasta poiketen spesifikaatiot ovat tarkemmin määritelty, joten DirectX 10 -nimellä myytävissä näytönohjaimissa on kaikissa samat ominaisuudet.

HDR eli High Dynamic Range -renderöinti on tuttu tekniikka DirectX 9 -ajoilta, mutta DirectX 10 tuo tekniikkaan kaksi uutta formaattia, jotka tarjoavat saman lopputuloksen kuin HDR FP16:lla, mutta puolella tallennustilalla. R11G11B10 on ensimmäinen näistä formaateista ja on optimoitu varastoimaan tekstuurit liukulukuformaatissa. Se käyttää 11 bittiä vihreälle ja punaiselle ja 10 bittiä siniselle. Toinen liukulukuformaatti on suunniteltu käytettäväksi renderöintikohteena, mutta se käyttää viittä bittiä jaettua eksponenttia kaikkiin väreihin yhdessä yhdeksää bittiä logaritmin mantissaa jokaiselle komponentille.

Varsinkin DirectX 9 -standardissa spesifikaatit ovat löyhät ja eri valmistajien, käytännössä tarkoittaen NVIDIAa ja AMD/ATIa, näytönohjaimet tukevat hieman eri ominaisuuksia riippuen valmistajan näkemyksestä. DirectX 10:n myötä spesifikaatit ovat tiukentuneet ja tämä helpottaa varsinkin ohjelmistokehittäjien työtaakkaa. Aiemmin oli huomioitava usean eri raudan resurssit ja mihin ne kykenivät. Tämä johti siihen, että ohjelmoijat joutuivat ohjelmoimaan useita erilaisia koodipolkuja, mikä näkyi myös kuluttajalla, kun peli eri näytönohjaimella saattoi tuottaa samassa kohtaa erilaisen lopputuloksen. Laitteistovariaatiot ovat PC-puolen ongelma ja konsoleille tarkoitettuja pelejä ohjelmoivilla on tiedossa hyvin tarkkaan, millaisessa kokoonpanossa peliä tullaan pyörittämään.

Lue koko artikkeli

Koko kuusisivuisen DirectX 10 –artikkelin voit lukea tästä:

Muropaketti, Katsaus DirectX 10 -rajapintaan

Ville Suvanto

Kirjaudu sisään

Kommentointi tässä osiossa on sallittu vain rekisteröityneille käyttäjille. Jos sinulla ei vielä ole tunnusta, rekisteröidy käyttäjäksi.

Takaisin ylös