Objavljeno: 29.10.2009.

Megatest grafičkih kartica

Polako se bliži kraj godine, blagdani i mjeseci darivanja. Neki će tada počastiti sebe ili pak svoje bližnje nekakvim komadom hardvera, a ako se odluče za kupnju grafičke kartice, naš usporedni test mogao bi im biti od pomoći prilikom odabira. Prošla je godina dana od posljednjeg velikog druženja sa svijetom grafičkih kartica, a ključna novost svakako je pojavljivanje DirectX-a 11 kao sastavnog dijela Windowsa 7. Iako na prvi pogled najnovija verzija Microsoftova API-ja ne donosi ništa revolucionarno, obećava određenja poboljšanja i nove mogućnosti vrijedne spomena. ATI je nedavno na tržište izbacio svoju seriju HD5000 koja smjenjuje dosadašnju seriju HD4000 i donosi mnoštvo noviteta, no ključna stvar svakako je puna podrška za DirectX 11. U Nvidijinu taboru dočekuju nas pak gotovo iste grafičke kartice kao i prošle godine. Istina, ima pokoja promjena. Već vremešni čip G92 doživio je već tko zna koju inkarnaciju preimenovanjem serije 9800GTX+ u GTS250, pojavile su se dvoglave kartice GTX295 u verziji s dva grafička procesora na jednom PCB-u i u principu to bi bilo to. Iščekuje se GT300 kodnog imena Fermi kojeg još nema na vidiku. No idemo sada pobliže pogledati koje to ključne novosti kada su u pitanju grafičke kartice i grafički procesori donosi DirectX 11.

Jedanaestica

Posljednja, jedanaesta inačica predstavlja logičan nastavak svega započetog s verzijom deset, no također donosi neke novosti koje možda i nismo očekivali i kojima Microsoft na svojevrstan način priznaje da se s nekim prošlim promjenama možda malo i "zaletio". Kako god bilo, drago nam je što se u sklop DirectX funkcija vratio nekadašnji DirectDraw, koji nalazimo u sklopu itekako poboljšanog sustava Direct2D s kojim ćemo opet moći kreirati brojne 2D igre, odnosno sve popularnije 2D-in-3D igre, gdje je igra (ili multimedijski prikaz) dvodimenzionalna, no sve se lijepo i kvalitetno ubrzava pomoću hardvera grafičke kartice. Osnovna ideja DirectX-a 11 nije isključivo u ubrzavanju broja sličica u sekundi, nego prije svega u davanju mogućnosti programeru da obavi što je moguće više operacija na više niti (threads) njegove aplikacije, ali da i driver, pa i dijelovi API-ja, funkcioniraju kao zasebni threadovi.. Ta želja nije novost i već je viđena u prijašnjim verzijama DirectX-a, no sposobnost da se više operacija obavlja na značajnije većem broju threadova jest nova, a jedini problem koji trenutno vidimo je onaj uobičajeni. Dok se na tržištu ne pojave posve optimizirane aplikacije koje na pravi način znaju iskoristiti nove mogućnosti, proteći će prilična količina vremena. Iz te osnovne ideje proizlazi i nova ideja da se više slijepo ne ide u povećanje broja poligona koji se mogu obraditi, nego da se prije svega pazi na kreiranje 3D objekata kako bi se čak i izbjeglo kreiranje objekata s naprosto prevelikim brojem poligona, koji se tijekom igranja smanjuju u ovisnosti o snazi računala, odnosno grafičkog hardvera koji je korisniku na raspolaganju. Zbog tog se u čitavu priču uvode tri nova elementa. To su hull shader, tesselator i domain shader. Uklonimo li ih iz grafičkog cjevovoda (pipeline), lako ćemo vidjeti kako se DirectX 11 uglavnom sveo na funkcionalnost DirectX-a 10.

Compute shader

Naglašavamo riječ "uglavnom" jer osim tri spomenuta nova stupnja izmjene postoje i na nekim drugim stupnjevima, a naročito na piksel shaderu koji je sad dodatno prilagođen zajedničkom radu s compute shaderom, čime se omogućuje da compute shader obavlja još univerzalnije poslove nego što je dosad bilo moguće. Kako biste bolje shvatili o čemu je riječ, zamislite compute shader kao nešto poput OpenCL-a, pa smjesta postaje jasnije kako će s njim DirectX 11 (i kasnije verzije) postati univerzalni alat za sve poslove gdje se traži i gdje je moguć masivni paralelizam obrade podataka. Pritom se ne misli samo na grafičke nego i na sve ostale poslove, čime se univerzalnost grafičkog hardvera, te samim tim i računala, uvelike povećava a da pritom niste potrošili dodatni novac. Prilično značajno za velik broj korisnika, naročito kad govorimo o privatnoj domeni korištenja računala. Značajno je i iz još jednog razloga, a taj je kompatibilnost s različitim proizvođačima hardvera. Trenutno i Nvidia i AMD (ATI) imaju rješenja za masivni paralelizam, no njihov je pristup dovoljno različit da ne bude međusobno kompatibilan, a tu je i Intel sa svojim projektom Larrabee koji će uvesti i treću, također međusobno nekompatibilnu hardversku varijablu. Prepustimo li svakom proizvođaču da se pozabavi odgovarajućim low-level driverima i iskoristimo li high-level compute shader stupanj koji nam nudi DirectX 11, jasno je kako se aplikacijski programer uopće ne mora baviti manjim ili većim problemima pojedinog hardverskog rješenja. Njega će zanimati samo jedan, jedinstven i relativno lako iskoristiv sustav ugrađen u DirectX. U svakom slučaju praktičnije i u 99 posto slučajeva bolje rješenje od iskorištavanja mogućnosti svakog hardverskog sustava posebno.

Teselacija

Hardverska teselacija nije nova i ne javlja se tek sad sa sustavom DirectX 11. Za nju znamo još od trenutka uvođenja konzole Xbox 360, gdje je ATI u grafički dio sustava ugradio teselacijsku jedinicu, a ideja je bila jednaka onoj koju sad napokon nalazimo i u sustavu DirectX – olakšati izradu objekata i kreatorima multimedijskih aplikacija i igara dati mogućnost da rade jednostavnije i brže te pritom postižu kvalitativno barem jednake ili bolje rezultate. Malo ljudi zna da se hardverska teselacija mogla obavljati već s ATI-jevom serijom HD 2000, no kako nije bilo jednostavnog načina da se taj teselator efikasno iskoristi, nije ni čudno što na tržištu ne vidimo igre koje bi ga iskorištavale. Sad kad se sve rješava preko jednog API-ja situacija se u potpunosti mijenja i nadajmo se kako će u relativno bliskoj budućnosti dobiti na kvaliteti i brzini rada. Treba ipak imati na umu da je teselator u sustavu DirectX 11 posve kompatibilan samo s novim DX11 hardverom te da će trebati malo pričekati na trenutak pojave nove funkcionalnosti i u stvarnim aplikacijama. Glavni i odgovorni "urednik" teselacije je hull shader koji uzima kontrolne točke na osnovi kojih računa potrebnu teselaciju. Nakon osnovne konverzije kontrolne točke šalju se domain shaderu. Sam teselator za njih ni ne zna jer se njemu šalju TessFactor podaci koji mu kazuju koji je nivo teselacije potreban. Također se šalje i način (mode) na koji treba obaviti teselaciju, a upravo tu leži dio utjecaja programera koji može odrediti što će i kako će teselator napraviti, odnosno kako će završiti teselaciju. Proces se završava tako da teselator šalje podatke domain shaderu, a riječ je o točkama i topologiji objekta.

Ostatak teksta pročitajte u tiskanom izdanju

Prosječna ocjena
Loading ... Loading ...
Broj ocjena: 0
0
Komentari

Tech