Pošto nam nova verzija API-a dolazi za koji mjesec-dva, vidim da nije nitko na forumu nije detaljnije opisivao novu verziju API-a DirectX11.
Evo, ja sam se prihvatio posla, uz pomoć malo neta i znanja napisat ću par rječi o novom API-u.
DirectX 11 se ne razlikue mnogo od DX10/10.1. To je jednostavna nadogradnja/update za DX10. I dok je DX10 bio ogromna promjena i promjenio neke stvari koje su jako vezane uz "srž" grafike, DX11 samo nadodaje par mogućnosti koje bi trebale povećati mogućnosti/perfomanse programerima.
Nove mogućnosti Direct3D:
Compute Shader -Direct3D11 donosi nove shadere po imenu Compute Shaders. Radi se o unifikacij GPGPU uz neke modifikacije koje bi trebale povećati perfomanse.Compute shaderi se "odvijaju" po broju threadova. "Threadovi" (tesko za prevesti na hrv. jezik laički rečeno "nit"). Svaka grupa ima po 32KB djeljene memorije po broju threadova u grupi. Tako threadovi mogu koristiti središnji rezultat koji je izračunat prema ostalim threadovima u drugoj grupi poboljšavajući na taj način perfomanse. Threadovi također mogu obavljati random-acces čitanja i pisanja u resurse grafike kao što su teksture, vertex nizovi, ili cilj render-a. Ovi pristupi memorij su neodređeni, iako razne sinkornizacije instrukcija postoje kako bi se "nametnulo" naručivanje kada je to potrebno.
Pixel Shaderi također mogu raditi random-acces pisanja. Ovo dovodi do mogućnosti pisanja podataka strukture kao što su povezani popisi, te onda oni mogu biti "obrađivani" pomoću compute shader-a.
Teselacija (Tesselation) - Direct3D11 dodaje tri nove faze cjevovoda (pipeline-a), sa ciljem omogućivanja efikasne teselacije od višeg reda površine. Ovo je Direct3D10 Pipeline, prikazan kao Real Time rendering third edition (prva slika). Boja svake faze polazuje kada je u potpunosti programbilan (zeleno), konfigurabilan (žuta) ili fixed-function (plavo). Primjetite kako je "Compute Shader" faza nova u D3D10, ali druge staze su u pipelinu poprilično vrijeme (slika 1).
Kao što sam gore rekao, D3D11 dodaje 3 nove faze cjevovoda između vertexa i geometry shader-a. Dvoje novih faza su programbilne (hull i domain shaders) i jedan je konfigurabilan (tesselator).
Ovaj cjevovod djeluje na mreže predstavljene kao niz zakrpa na površini. Trokut i quad površine su primitivne u D3D11 (kao i kockaste linije). Oblik svake nadogradnje je definiran po broju kontrolnih točaka. Ove kontrolne točke su transformirane, presvučene, ili poredane jedan po jedan u vertex shaderu.
Tesselator je fiksna funkcija (ali vrlo konfigurabilna) faza koja koristi tesselation pojedinosti kako bi dalje podjelila zakrpu u n-kut ili primitivni četverokut. Tesselator nema pristupa kontrolnim točkama - sve odluke teselacije su bazirane na konfiguracij teselacijskim pojedinstima koje su uzete iz hull shadera. Svaki vertex koji proizlazi iz teselacije je izlaz na domeni shader-a.
Eto to bih bio pregled novih (većih) mogućnosti Direct3D11... Kao što vidite promjene su prilično male, ima tu još manjih promjena ali one nisu pretjerano bitne tako da sam ih preskočio.