Shader modellek evolúciója
A hardverek mellett szoftveres képességeik fejlődésére is ki kell térni. Ahol bekapcsolódtunk a hardveres történetbe, ott éppen a DirectX 9-es SM2.0 indult be, vagyis a Vertex shaderek (VS) és a Pixel shaderek (PS) kódjai is a 2.0-s verzióba léptek. Ez annyit jelent, hogy az előbbiek legfeljebb 256 utasítás hosszúak lehettek, az utóbbiak pedig 96 parancsot tartalmazhattak. A tényleges kód sokkal hosszabb is lehetett, mert már ciklusokat is használhattak a programozók. A korábbi DirectX 8-as modelleknél a VS kódok 128 utasítás hosszúak lehettek, a PS programok pedig csak 28 sorosak, ráadásul ciklusokra és elágazásokra sem volt lehetőség. Sejthető, hogy az újabb modellel sokkal összetettebb, és így teljesítményigényesebb programokat lehet kreálni, ez meg is mutatkozott a GeForce FX sorozat gyengeségében.
Hirdetés
A programok összetettsége mellett a felhasznált adatok pontossága is meghatározó. Egy 16 bites műveletet sokkal gyorsabban és kevesebb memória/regiszter felhasználásával le lehet végezni, mint egy 32 biteset. Az ATI R3xx és R4xx chipjei – vagyis a Radeon 9700 és X850 XT PE közötti videokártyái – abból profitáltak, hogy pixelfeldolgozóik csupán 24 bites pontossággal dolgoztak a konkurens NVIDIA GPU-k 32 bitjével szemben.
A Shader Model 3.0 még tágabb mozgásteret biztosít a programozóknak, a VS és PS kódban is eltűntek a korlátozások. Ezzel már szinte a végtelenségig bonyolíthatóak a rutinok, a valóságot nagyon megközelítő látvány érhető el, de a GPU-k a grafikánál általánosabb célokra is felhasználhatóvá válnak. Segíthetik a processzort videotömörítésben, de akár fizikát és sok egyebet is számolhatnak. Nemrég bevezettünk pár SM3.0 tesztrutint , melyek rámutattak, hogy egy rövidebb kódocska is rettenetesen lelassíthatja akár a leggyorsabb videokártyákat is.
Tomb Raider SM2.0-val...
...és SM3.0-val
Fantasztikus a Shader Model 3.0 adta, szinte korlátlan kódolói szabadság, de érdemes minden fűszál finom árnyékolásával bíbelődni, ha az olyan megterhelő, hogy a felhasználók túlnyomó többsége kikapcsolja? A közelmúltba visszapillantva sok játékot fel lehet sorolni, melyekről a közvélemény kikiáltotta, hogy rosszul vannak megírva, egyik-másik hatást elhibázták a kódolók. Ilyen a F.E.A.R. soft shadow-ja, a Chornicles of Riddick vagy az Age of Empires 3 eszméletlenül lassú Shader Model 3.0 része vagy például a közkedvelt Need for Speed: Most Wanted, melyben az árnyékok minimálisra állításával alig romlik a látvány, de szinte megduplázódik a sebesség. Az egyik legfrissebb eset éppen a beharangozó képeken meseszép Elder Scroll IV: Oblivion volt, melyet meglehetősen vissza kell butítani, hogy elfogadható sebességgel menjen, és egyelőre nem sikerül kiderítenünk, melyik hatásokat „szúrták el” a kódolók.
Valójában nem feltétlenül programozó hibákról van szó, csupán arról, hogy a lehetőségek – komplex shaderkódok –, illetve a képességek – a mai grafikus hardver számolási kapacitása – nincsenek összhangban. A programozóknak kell egy kis idő, hogy ráérezzenek, mi az, amire képes a vas, és mi az, amire nem. Sajnos ebbe a folyamatba beleszól majd a marketing is, ami arra sarkalja a fejlesztőket, hogy a legszebbet alkossák meg, legfeljebb majd a csúcskártyákon is diavetítés lesz a vége. Azzal védekezhetnek, hogy ki lehet kapcsolni a hatásokat, lejjebb lehet venni a részletességet, lehet venni még egy kártyát, sőt jönnek még gyorsabbak is.
A cikk még nem ért véget, kérlek, lapozz!