Digital 91: DirectX 10 vs 11

Štampa PDF

Dostojni naslednik

Pre petnaest godina, Microsoft je razvio DirectX kao programerski interfejs koji je trebalo da omogući razvoj igara i multimedijalnog softvera pod Windowsom 95. Cilj je bio da se programeri podstaknu na odustajanje od DOS-a i prelazak na novi operativni sistem. Od tada, ovaj softver je doživeo ogromne izmene – nakon brojnih dečjih bolesti, dobio je podršku za 3D akceleratorske kartice, surround zvuk i EAX efekte, onlajn igranje i slično, a jedna od njegovih komponenti koja je igračima najinteresantnija je Direct3D, koji je postao maltene standard za programiranje grafike u video-igrama na PC-ju i prema kome su "krojene" brojne generacije grafičkih kartica. Iako DirectX nije samo Direct3D, njegova komponenta koja programu omogućava direktnu komunikaciju sa 3D funkcijama grafičkog hardvera, ovde ćemo se osvrnuti na novitete upravo ove komponente.

DirectX 8 doneo je podršku za programabilne grafičke procesore i minijaturne programske rutine zvane šejderi, koje su omogućavale do tada neviđeno postprocesiranje 3D scena u realnom vremenu. Nakon nekoliko verzija, DirectX 10 je stigao sa podrškom za Shader Model 4, a istovremeno su dve najveće kompanije koje se bave projektovanjem grafičkih čipova prešle na unificiranu šejdersku arhitekturu, gde su jedinice grafičkog procesora mogle da izvršavaju različite tipove šejdera, umesto do tada striktne hardverske podele na pixel i vertex šejdere.

dx11_clown_t.jpgDirectX 10 je bio tesno vezan za Vistu, koja je po mnogima izašla prerano. Pre tri godine većina korisnika nije imala toliko snažan hardver, niti dovoljno RAM memorije da isprati tehnologije implementirane u Vistu, što je u pratnji inicijalnih problema u samom sistemu izazvalo veliku odbojnost kod publike. DirectX 10 je izgrađen oko nove arhitekture zvane Windows Display Driver Model, osnove za novi grafički menadžer poznat kao Desktop Window Manager, koji je doneo desktop efekte odavno poznate korisnicima drugih operativnih sistema. Ovo je razlog zbog kojeg bi implementacija DirectX-a 10 u prethodne verzije Windowsa zahtevala značajne izmene ispod haube, a nezvanični pokušaji portovanja DX10 na Windows XP završavali su se neslavno. Naravno, da bi hardver funkcionisao pod novim WDDM modelom, nije morao biti saglasan sa DirectX-om 10 (minimum je Shader Model 2.0, odnosno DirectX 9), ali je DX10 kartica morala imati drajver saglasan sa WDDM modelom da bi mogla koristiti sve beneficije novog API-ja. Jedna od značajnih razlika novog drajver modela bila je i u implementaciji grafičkog podsistema. Na Windows XP i starijim sistemima, grafički podsistem izveden je na nivou kernela, dok je ovde delimično razdvojen na kernel i korisnički nivo. Ovo u teoriji obara performanse zbog dodatnog softverskog sloja između hardvera i programa, ali u praksi smanjuje ranjivost sistema zbog loše napisanih drajvera, kao i količinu "plavih ekrana".

Zbog ovih krupnih izmena, u Visti je zadržan i kompletan DirectX 9. Dotadašnje igre koristile su DX9, ne konstatujući novu verziju i funkcionišući na isti način kao na XP-u (makar što se tiče grafike), a DirectX 9 biblioteke su se osvežavale na isti način kao na prethodnom Windowsu, ne dirajući DirectX 10.

Pored pixel i vertex šejdera, Direct3D 10 doneo je i novi tip: geometry šejdere. Ove jedinice se procesiraju u toku obrade grafike u GPU-u u etapi između pixel i vertex šejdera, i omogućuju kreiranje novih primitiva (tačaka, linija i trouglova) na osnovu primitiva koje je program poslao na crtanje, što dodatno olakšava posao programerima tokom manipulacije objektima i olakšava dobijanje složene geometrije.

Iako je DirectX 10 doneo striktnija pravila hardverske podrške, u šejderske rutine su, pored brojčanih vrednosti sa pokretnom tačkom, zarad veće fleksibilnosti uključene celobrojne operacije, kao i operacije nad pojedinačnim bitovima numeričkih vrednosti, zavisno od posla kojim se konkretan šejder bavi. Ukinut je pajplajn sa fiksnim funkcijama koje vuku korene još od prvog GeForcea, veličina tekstura je učetvorostručena, ubačena su dva nova floating-point formata za lakšu implementaciju HDR renderinga, a tehnika za geometrijsko instanciranje donela je efikasnije renderovanje sličnih objekata. Po rečima Microsofta, sve ovo je trebalo da donese znatno bolje iskorišćenje hardvera i veći frejm-rejt u igrama, uz kvalitetnije renderovanje slike.

Problem je bio upravo u programiranju. Da li su programeri bili nepripremljeni na novi API ili nisu bili dovoljno motivisani zbog ograničenja istog na nepopularan operativni sistem, tek – tokom prve dve godine, DirectX 10 igre su se mogle prebrojati na prste jedne ruke. Prvi DX10-kompatibilni naslovi (između ostalih, Call of Juarez i Company of Heroes) bili su DirectX 9 igre za koje je podrška za DX10 ubačena putem naknadnih zakrpa, u koje su implementirani pojedini efekti na inferiorniji način nego da su endžini pisani "od nule" u novom API-ju. Penali su bili ogromni, a DirectX 10 je izašao na loš glas.

Microsoft je potom radio na DirectX-u 10.1 u koji je ubačeno sve što je zbog tadašnjih hardverskih ograničenja moralo biti izostavljeno iz verzije 10. AMD je to ispratio karticama serije HD 3000, koja je donela i njegovu kompletnu hardversku implementaciju. Izmene nisu bile toliko kritične: DX 10.1 doneo je obaveznu podršku za četvorostruki antialiasing, filtriranje slike u 32-bitnoj floating-point preciznosti i kvalitetniji antialiasing. DirectX 10.1 bio je kompatibilan unazad, pa su ovakvi programi mogli da se izvršavaju i na DirectX 10 hardveru, ali samo ako nisu koristili mogućnosti koje DX 10.1 donosi. Ovo je bilo značajno zbog narasle baze kako korisnika Viste, koji su je mahom dobijali uz nove računare, tako i zbog ogromnog broja vlasnika DirectX 10 kartica, pošto su se starije generacije već sve teže nalazile na tržištu. DirectX 10.1 je stigao sa prvim servisnim paketom za Vistu, a iste godine izašla je i prva igra u kojoj se osetilo ubrzanje zbog DirectX-a 10.1 na odgovarajućem hardveru – Assassin's Creed. Ipak, čelnicima kompanije NVIDIA se nije dopalo što su vlasnici konkurentskih kartica u prednosti, pa je izdejstvovala da se u prvoj zakrpi za ovu igru DirectX 10.1 funkcije uklone, nakon čega je radila isto kao i na DX 10 karticama.

dx11_stairs_t.jpgDirectX 11, koji stiže kao sastavni deo Windowsa 7, suštinski predstavlja nadogradnju desetke, umesto drastične promene koja je DirectX 10 bio u odnosu na 9, ali je veoma značajan jer donosi mogućnosti da se isprati moderan hardver, prvenstveno višejezgarni procesori čija jezgra u dosadašnjim igrama nisu dovoljno korišćena. Veoma bitna novina je multithreadovano renderovanje Direct3D objekata, čime se obezbeđuje ravnomernije iskorišćenje višejezgarnih procesora koji se nalaze u svakom iole novijem računaru. Druga ključna karakterstika je nova komponenta nazvana DirectCompute, koja putem novog tipa šejdera (compute šejder) obezbeđuje standardizaciju veoma vruće teme današnjice – general purpose GPU računarstva. Otkad je pre nekoliko godina utvrđeno da su grafički procesori po snazi premašili klasične, javila se ideja da se oni mogu iskoristiti i za nešto drugo osim obrade grafike. NVIDIA je izašla sa CUDA tehnologijom za svoje kartice, AMD ima ATI Stream, a DirectCompute će sada omogućiti programiranje grafičkih procesora nezavisno od konkretnog hardvera i pratećih razvojnih biblioteka koje isporučuje proizvođač. Od ovoga će direktne koristi imati i igre, jer će programeri moći da naprave realističnu fiziku bez konkretnog vezivanja za NVIDIA PhysX ili neku drugu implementaciju. Sjajna stvar je što obe ove tehnologije funkcionišu i na DirectX 10 hardveru.

Još jedna novina je i standardizovanje teselacije, koja se već pojavljivala na pojedinim generacijama grafičkih kartica. Reč je o tehnici koja omogućava da se grafičkom procesoru prosledi objekat sa manjim brojem poligona, koji će ih potom učiniti detaljnijim, čime se štedi na protoku preko PCI Express magistrale kao i na opterećenju sistemskog procesora. Ipak, teselacija mora biti implementirana u hardveru na način koji propisuje DirectX 11, jer tehnike kod starijih generacija kartica (recimo, Radeon HD 2000 i 3000) ovde ne funkcionišu. Iako naizgled ne toliko značajna, ova tehnologija je najodgovornija za dobitak na realizmu renderovanja koji DX 11 donosi.

DirectX-u 11 se smeši svetla budućnost. Operativni sistem Windows 7 odlično je prihvaćen među računarskom publikom, a Microsoft se putem novog Platform Updatea pobrinuo da i narasla baza korisnika Viste dobije istu podršku. Kada se uzme u obzir da se poslednje dve godine na tržištu mogu naći gotovo isključivo DirectX 10 grafičke kartice, a dva veoma važna noviteta novog DirectX-a funkcionišu i na njima, jasno je da jedanaestica neće biti još jedan izgovor za uzimanje novca od igrača, kako je svojevremeno DirectX 10 bio primljen kod publike. Igrači na raspolaganju već imaju jednu DX11 igru (Battleforge), dok će do kraja godine izaći još dva vrlo reprezentativna naslova (DiRT 2 i S.T.A.L.K.E.R.: Call of Pripyat), koja će svakako umeti da iskoriste sve novitete. Programeri su imali dovoljno vremena da prouče novi pristup obradi grafike, pa je DirectX 11 značajan korak unapred ka fotorealizmu u video-igrama, barem dok hardver ne postane dovoljno snažan za raytracing u realnom vremenu.

dx11_tes_off_1_t dx11_tes_on_1_t
dx11_tes_off_2_t dx11_tes_on_2_t

Ivan Todorović

 

Samo registrovani korisnici imaju mogućnost da dodaju komentare!