Budući da su i nvidia i ati predstavili svoje nove modele koji podržavaju toliko spominjani DirectX 11, odlučio sam napraviti malenu temu o tome. U temi cemo pojasniti sve bitne novosti koje donosi DX11, a sve je "laički" pojašnjeno (koliko je to moguce).
DirectX je prije svega, API (Appliaction Programing Interface). Dakle, to je API s kojim ostvarujemo komunikaciju između windowsa i grafičke kartice. API omogućava da svaku stvar koju napravimo radi na svakom hardveru. Zamislite samo, da nema API-a svaku stvar bi morali prilagodavati različitom modelu kartice na tržištu.... Dakle, API je kao most izmedu igre i kartice.
Pokretanjem igre pokrećemo kod igre koji je developer napisao. Svaka igra je danas napisana u nekom od API-a (pored naravno još programskog koda u jednom od jezika, najčešće C/C++), i grafička kartica izvršava taj kod kada pokrenemo igru. Sve ide linearno i kartica izvršava stavke koje su preodređene.
API kao API pruža mogućnosti da programer u nekoj igri odradi neke stvari. DirectX nije stvar koja donosi recimo "teselaciju". On donosi samo podršku za to. Programer je programira. Dakle, ne postoji nešto "uključi teselaciju". Isto tako i svi drugi efekti.
DirectX 11 je posljedne izdanje ovog popularnog API-a. U svome novom izdanju donosi podršlu za par stvari, a to su:
-Teselacija
-Compute Shading
-Multi threading proširenja
-Shader Model 5.0
-Texture Compression
Dakle, da krenemo odmah od teselacije.
Teselacija omogućava kratko rečeno generiranje dodatnih poligona na određenom modelu. U Igri, je naravno što veći broj poligona objekti su automatski detaljnij, a što je veći broj poligona automatski je i veća glad za resursima. Naravno, tu na scenu stupa teselacija. Teselacija omogućava da se model u početku formiranja obrađuje sa standardnim brojem poligona, čime dobijamo bonus na brzini. No tek na kraju teselacija na hardverskom nivou povećava broj poligona. Teselaciju programeri dobivaju kroz DX Pipeline a za samu teselaciju bitni su Hull i Domain shader. Kroz to programer određuje koliko će taj objekat na kraju biti detaljnij i kako će to izgledati. Naravno teselacija je izuzetno zahtjevan proces (iako bi u teorij trebao ubrzati prikaz 3D Scene), jer sve te poligone trošimo i spremamo u VRAM (memoriju od grafičke kartice), te trošimo bandwidth. Tu dolazi do pada perfomansi kod najnovijih igara. ATi je prije par godina ubacio programbilni teselator u svoje grafičke (Radeon 2900XT), no ona nikada nije zaživjela. DX11 Teselator je u potpunosit nekompatibilan sa teselatiorima iz ATi-jevih kartica, pa i onog iz XBoxa 360.
Glavna stvar teselacije je upravo štednja na perfomansama, a vjerovatno zbog tih razloga je utrpana u XBOX GPU Xenos.
MultiThreading proširenja - Ovdje se može zaključiti iz teksta, a radi se o tome da DX11 donosi mogućnost da programer procese podjeli na threadove, u cilju bržeg izvođenja te iskorištavanja procesorskih jezgara. Zbog ovoga, pravilno iskorištena ova mogucnost omogucava da igra mnogo bolje iskoristi dostupne jezgre, koje su u danasnjim igrama zjapile sa 0% opterecenja. Multithreading optimizacije se ne odnose na samo CPU, vec i na GPU - DX11 ima mnogo bolju mogucnost da programer iskoristi Crossfire/SLI i da podjeli procese paralelno na broj kartica.
Shader Model 5.0 - Radi se o ničemu drugom nego o proširenju 4.0 verzije (DX10) koja dopušta veće funkcije, vece mogucnosti... Ukratko, pruža podršku da programer napravi što više stvari.
Texture Compression - Ovo je stara mogucnost, i svi je programeri masivno koriste jer omogucava ustedu GPU memorije prilikom rada sa teksturama. No, glavni problem te mogucnosti je gubitak kvalitete prilikom kompresije, a DX11 uvodi dva nova formata koja omogucuju daleko efikasniju obradu podataka.
Compute Shader - Radi se o Microsoftovoj tehnologij iskorištavanja GPU-a u druge svrhe koje je dosada obrađivao procesor. Compute Shader, je jezik kojim mozete isprogramirati neke efekte i koje ce raditi GPU umjesto dosada CPU. Naravno kako je tu GPU znatno brzi od CPU-a, tu je ogromno ubrzanje u odnosu kad bi istu stvar radio procesor. CS je isto što i CUDA, Open CL i sl. samo je microsoftova tehnologija i po prvi puta je implementirana u DirectX. Dakle, sa ovom mogucnosti mozemo isprogramirati recimo umjetnu inteligenciju koju bi racunao GPU umjesto CPU, i time ostvariri ubrzanje i rasteretiti procesor. Naravno, kako ovdje sve te stvari prebacujemo na GPU, onda i dodatno opterecujemo GPU, pa time automatski gubimo snagu koju bi koristili za rendeiranje. Ovome ce trebati dosta vremena da zazivi.
Dakle, DX11 je API koji pruza vece mogucnosti nego DX10. Koliko su te mogucnosti bitne, procjenite sami, jer praksa je cesto potpuno drugacija od teorije. Igara sa podrskom od DX11 vec ima (Metro 2033, Bad Company 2, Alien vs Predator, DiRT 2) pa procjenite sami. Broj DX11 igara ce se u buducnosti samo povecavati, stoga nije lose odabrati DX11 karticu nešto višeg segmenta koja ce imati snage da kolko tolko zavrti buduce DX11 igre.