Sziasztok.
Megpróbálkozom egy átfogó VGA beszámolóval, hogy minden alapvető kérdéssel mindenki tisztába legyen. A VGA fejlődése során azt alábbi foglalatokat használták a VGA-k: ISA/PCI/AGP/PCI-Express.
Ez utóbbi jelenleg a mérföldkő, melynek 2.0-as változatánál tartunk (Az AGP a 3.0-s változat volt a plafon). A verziószám mindig azt jelenti, hogy valamilyen sávszélesség nővelést érnek el a foglalattal. Ezen felül a PCI-express foglalatoknál megkülönböztetünk 16x, 8x, 4x, 2x és 1x-es foglalatokat, melyek a sorba kapcsolt VGA-k jelentőségénél lesz majd jelentősége, de erről, majd később.
Van néhány alapfogalom egy videókártyánál, melyet a következőkben ismertetem:
GPU: Graphics Processing Unit (GPU) - Grafikus Feldolgozó Egység
A grafikus vezérlő központi egysége, amely az összetett grafikus műveletek elvégzéséért felelős. A GPU feladata a grafikák létrehozásával és megjelenítésével közvetlenül kapcsolatban hozható magasszintű feladatok átvétele a CPU-tól, hogy annak számítási kapacitása más műveletek végzésére legyen felhasználható.
A modern GPU-k 2D és 3D műveletek elvégzésére egyaránt alkalmasak. (Gépigénytől szabadon)
RAMDAC: Random-Access Memory Digital to Analog Converter - Véletlen hozzáférésű memória, digitális-analóg átalakító
Directx: A Microsoft DirectX Application Programming Interface (Alkalmazás Programozó Felület - API) első kiadása 1995ben jelent meg. A DirectX a programozók munkájának megkönnyítésére készült, oly módon, hogy egy szabványos fejlesztői környezetet szolgáltatott a multimédiás szoftverek és játékszoftverek fejlesztőinek Windows platform alá. A DirectX megjelenése előtt a fejlesztőknek komoly nehézségeket okozott az, hogy a szöftvereik minden egyes hardveren tökéletesen működjenek (és ez akkoriban nem is mindig jött össze). Ahhoz, hogy az elkészített program használható legyen minden a piacon jelen lévő bemeneti eszközzel, videó és hangkártyával, hatalmas erőfeszítéseket kellett tenniük, és idejük nagy részét ez kötötte le.
Frissítési ráta: A Tv-hez hasonlóan a számítógép is mozgást szimulál a monitoron úgy, hogy képek sorozatát jeleníti meg. A monitor frissítési rátája azt jelenti, hogy hány alkalommal frissíti a grafikus kártya a képet másodpercenként. A 75 Hz-es frissítési ráta (képfrissítési frekvencia) azt jelenti, hogy a monitor tartalma 75-ször frissül másodpercenként.
V-sync: Vertical Synchronization, függőleges szinkronizáció. Ez korlátozza a számítógép sebességét, így az pontosan megegyezhet a monitor képfrissítési ütemével. (Pl: Ha a gép 100 képkockát képes frissíteni, de a monitor csak 75-öt)
Pixel: A pixel a "picture element" (a kép egy eleme) kifejezést jelenti. Egy egyszerű pont, ami a kijelzőn grafikai információt hordoz, tehát egy szín reprezentációja (a legtöbb célra ez lehet piros, zöld vagy kék). Ha képernyőnk felbontása 1024x768, akkor egy 1024 pixel széles és 768 pixel magas hálót látunk valójában. Akkor alakul ki kép a monitoron, ha az összes pixel megjelenik.
Vertex: Egy 3D-színhely minden eleme pontokból, csúcsokból áll. A vertex egy pont a 3D térben, amit az X, Y, Z koordináták azonosítanak. Ha több vertexet összeillesztünk (legalább négyet), egy sokszög (poligon) jön létre, ami olyan egyszerű alakzat lehet, mint a háromszög vagy a kocka. Ezután textúra kerül rá, hogy elemei valóságosnak tűnjenek.
Textúra: A textúra egy egyszerű 2D kép, aminek a mérete változó, így egy 3D objektum felületének szimulálására használható. A példánkban szereplő kocka egyszerű doboznak látszik, amíg rá nem helyezünk valamilyen textúrát. Ha ez megvan, úgy néz ki, mintha ráfestettek volna valamit. Ezeket a texturákat(képeket) a VGA memóriája tárolja.
Shader: Jelenleg kétféle shader használatos: a vertex shader és a pixel shader. A vertex shaderek a 3D elemeket transzformálják, míg a pixel shaderek komplex bemenet alapján képesek megváltoztatni a pixelek színét; képzeljünk el egy fényforrást: a színek megvilágítás esetén fényesebbek, míg mások árnyékosabbak lehetnek, a szín erősségének csökkentésével.
Fill Rate: Az egyik reklámozott elem a grafikus kártyák dobozán a fill rate. A fill rate (kitöltési ráta) a grafikus kártya pixelek kirajzolására vonatkozó sebességbeli értéke. A régebbi kártyák rendelkeztek triangle (háromszög) fill rate-tel is, a maiak azonban két másik formáját alkalmazzák a fill rate-nek: a pixel fill rate-et és a texture fill rate-et. Mint fentebb említettük, a pixel fill rate azt mutatja meg, hogy hány pixelt képes a kártya megjeleníteni. A számítás módja a raszterműveletek (Raster Operation, ROP) megszorzása az órafrekvenciával.
A texture fill rate az ATI és az Nvidia esetében különbözően számoltatik. Az Nvidia ez alatt a pixel futószalagok száma, szorozva az órajellel, míg az ATI a textúraegységek száma szorozva az órajellel értéket érti. Mindkét megoldás korrekt, hiszen az Nvidia egy textúraegységgel rendelkezik pixel shaderenként.
Vertex Processorok: (Vertex Shader Egységek) A pixel shader egységekhez hasonlóan a vertex processzorok a vertexekkel kapcsolatos műveleteket végzik el. Minél több vertex van a 3D objektumokban, annál fontosabb a vertex shaderek jelenléte, bár korántsem olyan lényeges elem, mint a pixel shadereké.
Pixel Processzorok: (Pixel Shader Egységek) A pixel processzor szép grafikai elemek megjelenítésére alkalmas, hiszen a pixelek színét képes változtatni. A játékokban látható csillogó víz effektek is a pixel shadereknek köszönhetők. A pixel shaderek száma szolgál arra, hogy a grafikus kártyákat a pixelfeldolgozási képesség tekintetében összehasonlítsuk. Ha egy nyolc pixel shader egységgel rendelkező kártyánk, illetve egy 16 pixel shaderrel felvértezett kártyánk van, jogosan gondoljuk, hogy az az utóbbi erősebb e tekintetben. Az órajelek is hasonlóan fontosak, de a shaderek számának megduplázása sokkal energiahatékonyabb, mint a mag órajelét duplájára növelni.
Vizualitás
A nyers hardveres specifikációk mellett különböző képességeket is figyelembe kell vennünk.
Microsoft DirectX és Shader Model Verziók: Ezek talán a leginkább hangoztatott, de a legkevésbé megértett kifejezések. A megértés érdekében a grafikus API-k rövid történetét tekintjük át. A DirectX és az OpenGL grafikus API-k. Az API jelentése Application Programming Interface, tehát egy programozói felület, ami mindenki számára elérhető.
A 3D API-k előtt minden gyártó saját megoldást alkalmazott arra, hogy játékokban működésre bírja termékét. A fejlesztők rá voltak kényszerítve, hogy az egyes gyártók termékeit külön támogassák, így ez a megközelítés drágának és nem túl hatékonynak bizonyult. A probléma megoldására jöttek létre az API-k, így a fejlesztők kompatibilissé tették alkalmazásaikat az API-val, nem pedig a konkrét hardverrel. A felelősség áthárult tehát a grafikus kártyák gyártóira, hiszen biztosnak kellett lenniük abban, hogy drivereik kompatibilisek az API-val.
Az egyetlen komplikáció, hogy két különböző API jött létre, s mindkettőt használják is. Ez a kettő a Microsoft DirectX és az OpenGL szabványok, ahol a GL a Graphics Library (grafikus könyvtár) rövidítése. A DirectX API sokkal erősebb hatással volt a hardverre a játékok tekintetében, így mi a DirectX-re koncentrálunk.
A DirectX valójában egy API-gyűjtemény, s csak az egyik szolgál a 3D grafikára. Emellett tartalmaz a hang, zene, bemeneti eszközök támogatására szolgáló API-kat is, hogy csak párat említsünk. A konkrét DirectX API, ami a 3D grafikára vonatkozik, az a Direct3D, de a grafikus kártyák vonatkozásában a DirectX és a Direct3D fogalmak szinonimaként használatosak.
Tovább komplikálva a dolgot, a Direct3D API részei is kicserélhetők. Például a DirectX 9.0 a Pixel Shader 2.0-t támogatja, a DirectX 9.0c a Pixel Shader 3.0-t, míg a DitectX 10 a Pixel Shader 4.0-t.
HDR Lighting & OpenEXR HDR: A HDR feloldása: "High Dynamic Range" (kb. nagy dinamikus tartomány). A HDR lighting (megvilágítás) támogatásával bíró játékok sokkal realisztikusabb képet nyújtanak.
A DirectX 9 előtt a grafikus kártyák megvilágítási pontossága nagyon korlátozott volt, hiszen a számítások csak 8 bites (vagy 256) integer szintűek lehettek.
Amint az első valódi DirectX 9-es kártya megérkezett, teljes 24 bites pontosságra is lehetőség volt, vagyis 16.7 millió szintre.
A fényerő 16.7 millió szintjével, illetve a megnövekedett számítás teljesítménnyel (DirectX 9 / Shader Model 2.0) a HDR lighting is lehetővé vált. Maga a koncepció bonyolult, s látni kell élőben, hogy valaki értékelje is. Egyszerű magyarázatként annyit, hogy a HDR lighting megnövelt kontrasztot tesz lehetővé (sötétebb sötétek és világosabb világosak), míg a megvilágítás részletessége is nő a sötét és a világos területeken egyaránt. Az ezt támogató játék sokkal valósághűbb fényekkel rendelkezik, mint egy HDR-nélküli.
A legújabb Pixel Shader 3.0-t támogató GPU-k még magasabb, 32 bites pontosságra is képesek, s a lebegőpontos blending sem ismeretlen számukra. Ez azt jelenti, hogy az összes SM 3.0 kártya támogatja a HDR egy konkrét típusát, az "OpenEXR"-t, amit a filmes iparág számára fejlesztettek ki.
Néhány játék, ami csak az OpenEXR-t támogatja, nem működik Shader Model 2.0 kártyákkal. Bár a nem-OpenEXR megoldások bármely DirectX 9 GPU-val működnek. Például az Oblivion támogatja az OpenEXR HDR-t, így csak Shader model 3.0-s kártyákkal mutat meg mindent - például az Nvidia GeForce 6800 és ATI Radeon X1800 modellekkel. A Half-Life 2 motorján alapuló játékok, mint a Counter-Strike: Source és az eljövendő Half-Life 2: Aftermath is támogatják a HDR-t régebbi DirectX 9 kártyákkal, amelyek csak Pixel Shader 2.0 támogatással rendelkeznek. A GeForce 5 sorozat, vagy az ATI Radeon 9500 lehetnek a példák.
Végül megjegyzendő, hogy a HDR nagyon erőforrás-igényes, így csak a legerősebb kártyákkal működik zökkenőmentesen.
Anti-Aliasing: Az aliasing (rövidítve 'AA' egy kifejezés, ami az egyenetlen, cakkos szélű képekre utal. Az anti-aliasing hivatott ennek kisimítására, ami szintén erőforrásigényes, így az fps lényegesen lecsökken.
Sok múlik a grafikus memórián, így az olcsóbb kártyákkal nem a legjobb a hatás. Az anti-aliasing több szinten engedélyezhető. Például a 4x anti-aliasing jobb minőségű képeket produkál, mint a 2x-es, de erőforrásigénye is nagyobb.
Texture Filtering: Az összes objektum textúrázva van, így a betekintési szög növelésével egy elmosódottabbá válik a kép. Ez ellen veszi fel a harcot a texture filtering.
A korai megoldásokat bilinear-nak nevezték, ami nem szolgált túl szép eredménnyel, hiszen látszottak a filtering sávok. Ezen javított a trilinear texture filtering. A mai kártyák szemszögéből nincs miért aggódni, a teljesítményt nem befolyásolják jelentősen.
A legjobb az anisotropic filtering (AF), aminek az anti-aliasing-hoz hasonlóan több szintje van. A 8x AF például nagyszerű minőséget jelent a 4x AF-hez képest. Nem hiába követel ez is sebességet, az AF növelésével arányosan.
High Definition Textúrakészletek: Az összes 3D játék célértékek figyelembe vételével készül. Az egyik ilyen a szükséges textúra-memória, ami elég kell legyen a játék során, különben az extra textúrák a lassú rendszermemóriába kerülnek, vagy akár a merevlemezre. Ha tehát a fejlesztők 128 MB-ot irányoznak elő, a 'texture set' nem terjeszkedhet tovább adott idő alatt.
Az újabb játékok gyakran támogatnak többféle textúrakészletet, így kisebb memóriájú kártyával is képesek működni. Például egy játék három textúrakészletet is tartalmazhat 128 MB, 256 MB és 512 MB memóriával rendelkező kártyákhoz.
Na hát ennyi lenne amit úgy általában tudni kellene az embernek.Lehet hogy egy kicsit soknak tűnik de azért vannak be kis okosságok :D