PC Press: DirectX 11 novosti

Bez obzira na to da li ste strastveni ljubitelj igara ili svoj računar koristite za ozbiljan posao, sigurno ste bar nekada čuli za DirectX i u određenoj situaciji bili prinuđeni da instalirate neku novu verziju. Pred nama je jedanaesto izdanje — Miloš Stamenković

silhouette Tokom perioda od celih 15 godina, DirectX je postao jedan od vitalnih delova svih Windows operativnih sistema i bez njega se danas jednostavno ne može. DirectX je API (Application Programming Interface) koji omogućava programerima da direktno pristupaju hardverskim resursima sa minimalnim uplitanjem operativnog sistema u takve akcije.

Sam DirectX je nastao u vreme Windows-a 95 kada je Microsoft-u postalo neophodno da pronađe i implementira API za direktnu komunikaciju sa hardverom. U to vreme, svi game developer-i su i dalje preferirali DOS, prosto zato što se hardveru moglo direktno pristupati uz maksimalnu brzinu izvršavanja koda. Windows, zbog svog memory management-a, nije omogućavao taj direktan pristup, što je komplikovalo stvari programerima i znatno usporavalo izvršavanje aplikacija.

Kao i uvek, neko drugi je započeo razvoj ovog API-ja, normalno, pod drugim imenom, ali je Microsoft kupio RenderMorphics, kompaniju koja je to radila, a bivšeg vlasnika firme uključio u razvoj DirectX-a, te su kasnije nastale verzije 2.0 i 3.0. Upravo se verzija 3.0 pokazala dovoljno dobrom da bi se pojavilo nešto više igara koje koriste novi API, da bi sa kasnijim verzijama DirectX sticao sve veću popularnost.

Verzija 5.0 je bila sledeća značajna (verzija 4 je preskočena iz nepoznatih razloga), pa posle 7.0 i na kraju 9.0, koja je bila najduže aktuelna. Verzije DirectX 9 su bile „a“, pa „b“ i na kraju „c“, s vremenom su dobijale nove funkcije, ali se u osnovi nije ništa posebno menjalo. S pojavom Windows Vista operativnog sistema paralelno se pojavio i DirectX 10, ali zbog striktne vezanosti za Vistu, ovoj verziji je trebalo nešto više vremena da bude maksimalno iskorišćena. Čak se može reći da kroz igre sve napredne funkcije DirectX-a 10 i nisu bile baš iskorišćene na pravi način, jer su programeri i dalje koristili DirectX 9.0c.

Sledeći korak za DirectX je došao sa Windows 7 operativnim sistemom, a zahvaljujući dobrim prvim reakcijama svetske IT javnosti na novi Microsoft-ov proizvod, sam DirectX 11 je znatno dobio na popularnosti. Iako još u prodaji nije bilo grafičkih kartica koje ga podržavaju, game developer-i su već počeli da implementiraju novi DirectX u svoje buduće igre.

Kada je AMD izbacio na tržište prvu generaciju DirectX 11 grafičkih karti, pojavio se i solidan broj igara koje koriste novi API. Pošto je cela akcija podigla dosta prašine, i nas je zainteresovalo da vidimo šta to sve novo nudi DirectX 11, i koje su prednosti u odnosu na prethodnu verziju.

Šta je novo?

Osnovne funkcije koje karakterišu DirectX 11 su: Shader Model 5.0, Tessellation, DirectCompute11, MultiThreading, Texture Compression i Render Post Processing. Prva stvar koja privlači pažnju je MultiThreading, koji tek sa ovom verzijom DirectX-a može više da doprinese poboljšanju performansi. Tako DirectX 11 ima znatno poboljšanu multithreading podršku koja omogućava deljenje thread-ova na mnogo nižem nivou. Novi API sada može i proces kreiranja nekog objekta da podeli na više paralelnih thread-ova, čime se veći broj jezgara multicore procesora mnogo bolje iskorišćava. Upravo zbog multithreading poboljšanja, tek DirectX 11 igre mogu na pravi način da upotrebe sva raspoloživa jezgra procesora, koja su doskoro, bar u igrama, uglavnom ostajala besposlena. Sama multithreading poboljšanja nisu vezana samo za CPU, već i za GPU, što znači da DirectX 11 ima i mnogo bolju optimizaciju kada se koriste dve ili više grafičkih karti u nekom od SLI ili Crossfire režima. Sve ovo treba odvojiti od renderinga, on je i ranije bio podržan, jer su ova multithreading unapređenja vezana za manipulaciju objektima u sceni i pre rendering faze.

tessellation Proces nazvan Tessellation je odavno poznat, ali je u DirectX verziji 11 prvi put podržan na hardverskom nivou, što znači da svi DX11 kompatibilni GPU-ovi imaju mogućnost hardverske teselacije. Ovaj proces predstavlja tehniku automatskog povećanja broja poligona na određenim mestima kako bi se dobila glatkost i lepši prikaz zakrivljenja na objektima. S većim brojem poligona dobija se bolji prikaz, ali se, s druge strane, produžava vreme koje je potrebno za razne manipulacije sa objektom.

Hardverska teselacija omogućava da se objekat u početku formiranja scene obrađuje u svom standardom broju poligona, čime se dobija na brzini, da bi tek na kraju, u procesu finalnog rendera, sam GPU na hardverskom nivou povećao broj poligona od kojih je načinjen objekat radi boljeg kvaliteta prikaza. Čim je ova funkcija „spuštena“ na hardverski nivo, omogućene su i upotrebljive performanse, jer je teselacija veoma zahtevan i komplikovan proces. Još jedna dobra stvar kod hardverske teselacije jeste skalabilnost, što znači da sporije DX11 grafičke karte mogu koristiti ovu funkciju na nižem nivou kompleksnosti, dok brže mogu ići sa većom i preciznijom teselacijom, koju dozvoljavaju brži GPU procesori ili čak kombinacije procesora.

Pored ovog noviteta, DirectX 11 uvodi i Shader Model 5.0 koji takođe povećava nivo „paralelizma“ prilikom renderinga. Uvedena je i tehnologija ComputeShader koja omogućava dodatno ubrzavanje postprocessing efekata, kao što su motion blur i slično, a to je postignuto time što je ova mogućnost direktno podržana kroz hardver DX11 kompatibilnih GPU-ova. Ceo ComputeShader je, u stvari, tehnologija koja je veoma slična nVidia CUDA, ATI Stream-u i OpenCL-u, pa se tako može reći da Microsoft kroz DirectX 11 ima želju da sve ovo standardizuje kroz jedan API. ShaderModel 5.0 takođe uvodi i olakšan rad sa svim vrstama shader-a, čime se programerima omogućava da na mnogo lakši način implementiraju kompleksnije shader procedure, što uz dodatak GeometryShader funkcije daje mnogo veći nivo kvaliteta 3D prikaza.

kompresija2 Sledeći novitet je Texture Compression, iako je ova funkcija uvrštena u DirectX još od verzije 6. DXTC postoji već 10 godina i od tada ga masovno koriste svi game developer-i, jer omogućava znatnu uštedu prostora u grafičkoj memoriji i bolje performanse pri obradi tekstura. Ipak, glavni problem starog DXTC-a je gubitak kvaliteta pri kompresiji, što za današnje HD pojmove nije prihvatljivo. DirectX 11 uvodi mogućnost veoma efikasne kompresije HDR tekstura, uz skoro neprimetan gubitak na kvalitetu. Kroz novi API podržana su dva moda kompresije: BC6H i BC7, gde BC6H podržava kvalitet HDR kompresije u odnosu 6:1, što je veoma dobar nivo kompresije, uz apsolutno minimalan gubitak na kvalitetu. BC7 predstavlja još viši nivo – omogućava i upotrebu alpha kanala, i to sa odnosom kompresije 3:1, čime se dobija maksimalan kvalitet prikaza pri korišćenju kompresije tekstura.

Da li kupiti?

Sem ovih noviteta koje donosi DirectX 11, napravljeno je i mnogo manjih unapređenja u odnosu na DirectX 10, naročito kada je u pitanju uvođenje ShaderModel 5.0. Logično, sve ovo zahteva DirectX 11 kompatibilnu grafičku kartu, koju u ovom momentu pravi jedino AMD, dakle, Radeon 5XXX serija modela. Iako Microsoft pokušava da veže DirectX 11 isključivo za Windows 7, novi DirectX može biti instaliran i na Vista verzije operativnog sistema, tako da za uživanje u DirectX 11 igrama nije neophodno preći na novi operativni sistem.

Konstantno se priča da je za pravi Windows 7 „doživljaj“ neophodna DirectX 11 grafička karta, a to se može proveriti kupovinom nekog od Radeon 5XXX modela. U ponudi je dosta modela koji se razlikuju po ceni, pa lako možete odabrati neki koji će odgovarati vašem budžetu. Pošto se DirectX 11 najbolje može videti samo u najnovijim igrama koje, po definiciji, zahtevaju što moćniju grafičku kartu, ipak preporučujemo da investirate u što jači model, naravno, ukoliko imate želju da se igrate. Ako vam igre nisu bitne, za sada DirectX 11 za vas i nije toliko bitna stavka, pa je bar za neko vreme možete ignorisati – bar dok ne počnu da je upotrebljavaju nova izdanja medija plejera ili nekog softvera koji često koristite.

PC Press


DevOps Testing
Bizit

Twitter