Vissza a főoldalra!

Grafikus fogalomtár

Írta: Papdi Attila

Aliassing: Az Aliassing jelenség tulajdonképpen egy mintavételezési hiba. A monitoron előállított kép legkisebb egysége a pixel, de a 3D-s világban létezhet a pixelnél is kisebb elem. A monitor ezt nem tudja kirajzolni (mivel a pixelnél kisebb egység nem jeleníthető meg), így létrejön az Aliassing nevű probléma.


Alpha blending: Egy képpont színét három adat határozza meg, a piros, zöld és kék színösszetevők értéke. Mindhárom színösszetevő - 32 bites részletességet feltételezve - 8 biten van ábrázolva, azaz 256 db különböző színárnyalatot tartalmaz. A fennmaradó 8 bit az alfa csatorna, amely a képpont megjelenésével kapcsolatos további információkat hordozza az átlátszóságára vonatkozóan.


AMD-ATi Crossfire: Az ATi által kifejlesztett Multi-GPU technológia. Háromféle módot támogatott a leképzéshez: Scissor, Supertilling és AFR (Alternate Frame Rendering). Az Scissor működése szempontjából megpróbálja kiegyenlítetten szétosztani a képkocka leképzésének terhelését a két GPU között. A kép felső és alsó részét külön GPU számolja. A technika hátránya, hogy mindkét GPU-nak le kell számolni a képkocka geometriáját, illetve a terhelés elosztása nem mindig volt megfelelő. A Supertilling mód sakktábla szerűen osztja fel a kép számítását és az egyes szomszédos kockákat, felváltva számoltatja a két GPU-val. A Scissor-hoz képpest annyi előnye van, hogy kvázi maximális hatékonysággal lesz elosztva a kép kalkulálásának terhelése, de képkocka geometriája még mindig terheli mindkét GPU-t. Az AFR külön számoltatja a teljes képkockát az egyes GPU-kon, majd ezeket a sorrendnek megfelelően kiküldi a monitorra. Hátránya, hogy esetenként speciális optimalizálást igényel.


Anti-Aliassing: Az Aliassing jelenséget próbálja minimálisan láthatóvá tenni. Többféle Anti-Aliassing megoldás létezik:

- Supersampling: Az Anti-aliassing legrégebbi, legegyszerűbb és legjobb képminőséget nyújtó megoldása. Minden egyes pixelt többször számol ki a videókártya, de az eredeti pixel pozícióhoz képpest mindig egy kicsit eltolva, majd összemossa a képet. Ezzel a módszerrel a legnagyobb a teljesítmény veszteség, nagymértékben fogyasztja a Fill Rate-et és a memória sávszélességet.

- Multisampling: Ez az eljárás azt vizsgálja, hogy a renderelt poligon mennyire fedi le az adott pixelt. Ehhez a pixelen belül mintavételezési pontokat helyez el, majd Z-tesztet hajt többször végre. Ez eljárás előnye, hogy nem fogyasztja a Fill-Rate-et mivel nem számítunk ki több pixelt csak amennyit az alkalmazott felbontás megkövetel, viszont az extra adatok a memória-sávszélességet továbbra is terhelik.

- Fragment: Csak a poligonok mentén lévő pixelességre fókuszál. Megvizsgálja, hogy a poligonok által a pixel fedve van-e, nincs fedve, vagy csak részben van fedve. Az első két esetben nincs semmi teendő, annál izgalmasabb viszont a harmadik, ahol a fedettség függvényében a pixeleket alpixelre (fragment-ekre) osztja fel, majd az alpixelek színeinek az átlagolásával határozza meg a végső pixelek színét. Sem a Fill-Rate-et, sem a memória sávszélességet nem terheli le, nagy hátránya, hogy csak a poligonok szelénél dolgozik (ez azért baj, mert a textúrákban lévő csíkokat nem veszi számításba), és Stencil buffer használta esetén nem alkalmazható.

- Edge Detect (képminőség javító eljárás): A poligonok mentén elhelyezkedő pixeleken történő szűrés esetén, a rendszer több mintát használ fel a számoláshoz.

- Temporal (képminőség javító eljárás): Ez egy régóta ismert élsimítási eljárás. A számítás az egymást követő pixeleken mindig más, véletlenszerű mintával történik. Kihasználja, hogy az emberi szem és az agy képes kiszűrni a véletlen zajt a képek értelmezésénél, így a monitoron leképzett képet szebbnek látjuk, mint amilyen valójában. A hátránya, hogy egy bizonyos képfrissítési érték alatt ronthat is a képminőségen.

- Gammakorrekció (képminőség javító eljárás): Szemünk érzékenysége és pontossága nagyban függ a fény erősségétől. A videokártyák az élek simításához lineáris színátmenetet használnak, ezt exponenciálisra alakítják és több értéket csoportosítanak abba a tartományba amelyre szemünk érzékeny. A képpont kiszámítás utolsó fázisában alkalmazható.

- Transparency/Adaptive (képminőség javító eljárás): Megvizsgálja a textúrát és annak alpha csatornáját, és a nem átlátszó területeken is élsímítást végez.


(húzza a kurzort a képre)


(húzza a kurzort a képre)


Anizotróp Filter: Ez a szűrési eljárás a legmodernebb. A pixel színének meghatározásához az összes pixelen belüli texel színeit átlagolja, illetve még figyelembe veszi a poligonok elhelyezkedését is. A memória sávszélesség igénye viszont nagyon nagy, hiszen nem ritka, hogy egy pixelen belül akár 32, vagy több texel is található.


(húzza a kurzort a képre)


API (Application Program Interface): Az alkalmazásprogramozási felület a szabványos függvények és eljárások segítségével lehetőséget add egy rendszer programozására anélkül, hogy a felépítését komolyabban ismerni kellene.
Jelenleg elterjedt API-k:
- DirectX/WGF (Direct3D): A Microsoft által készített, legelterjedtebb API.
- OpenGL: Nyílt forráskódú API.


Bilinear Filter: Egy kör alakú ábrával elemzi a texeleket. A középső 4 texel színeinek az átlaga lesz a pixel színe. Hátránya, hogy csak akkor végez tökéletes munkát, ha a kamera merőleges a poligonkora, mivel kör alakzattal dolgozik. A Point Samplinghoz képpest négyszeres a memória sávszélesség igénye.


Bump Mapping: Amikor a 3D-s környezetben ezt az eljárást használjuk egy sima felületre, az domborúnak és egyenetlennek fog látszani. Megvalósításához szükséges az alaptextúra, amelyhez egy egyenetlenségi térképet (bump map) adunk hozzá. Ez a térkép megváltoztatja a felület normálvektorát, így érdes hatást fog kölcsönözni neki. Nagyon fontos, hogy az effektel csak a felület egyenetlenségének a látszatát valósítjuk meg.


Cube Map: Ahogy a neve is mutatja ez egy kocka textúra. Több mindenre lehet használni. Főleg a 3D-s világ végtelen messze elhelyezkedő, tájegységeit szokás így leképezni.


Double Buffering: A látható mozgás folyamatosságát biztosítja. A megjelenített képet reprezentáló Frame Buffer a renderelés alatt nem változik, a következő képkocka a Back Buffer-ben jön létre. A renderelés végeztével a videokártya egyszerűen átváltja a megjelenítésért felelős DAC-ot a Back Buffer területére, és az eddigi Frame Buffer lesz a Back Buffer.


Fill Rate:
- Pixel Fill Rate:
Egy másodperc alatt kiszámolt pixelek száma.
- Z Fill Rate: Egy másodperc alatt kiszámolt Zixelek száma.
- Texel Fill Rate:
Egy másodperc alatt kiszámolt texelek száma.
A maximális fill rate-et egy kártya csak nagyon optimális esetben képes elérni.


Filterezés: A 3D-s világ poligonokból épül fel. Ezekre textúrák feszülnek, amik texelekből állnak. A monitoron látható kép, viszont pixelekből tevődik össze. Mivel egy pixel több texelt is magába foglalhat, videokártyának el kell dönteni a pixel színét.


Frame Buffer: Képek tárolására használt memóriaterület. Nagyságát a kép felbontása és színmélysége határozza meg.


HDR (HPDR): High Dynamic Range (High-Precision Dynamic Range). A képpontok megjelenítéshez használt színeket három alapszín, a vörös, a zöld és a kék árnyalataiból keverik össze. 32 bites színábrázolás esetében, színenként 256 különböző árnyalat áll rendelkezésre, ami elegendőnek tekinthető az élethű ábrázoláshoz. Viszont a teljesen sötét és a vakítóan világos között csak 254 különféle átmenet lehetséges, holott az emberi szem ennél sokkal többet képes megkülönböztetni. A magas dinamikatartomány lehetővé teszi egy olyan nagy pontosságú Frame puffer mód használatát, amelynek segítségével több fényértéket lehet ábrázolni. Többféle HDR szabvány létezik, a legelterjedtebbek az FP16, az FP32, az int10b és az RGBE. A legjobb képminőséget az FP32 tudja előállítani, ennek megfelelően ezen eljárásnak van a legnagyobb erőforrás igénye.


(húzza a kurzort a képre)


LOD: Level Of Detail. Részletességi szint. Átmenet a mipmap szintek között.


Mip-Mapping: Amennyiben a textúra egy bizonyos távolságra van a kamerától a mipmap eljárás lecsökkenti a textúra méretét. A mipmap szintek közti átmeneteket a LOD határozza meg.


Multi-GPU: Ezen technológiák lehetőséget teremtenek arra, hogy a képkockák számolásában több grafikus processzor is dolgozhasson. (Windows Vista, vagy modernebb rendszer esetén már kettőnél több GPU is képes résztvenni a feladatban.)


Normal mapping: A bump mapping-hoz hasonlóan a sima felület egyenetlenné való varázslásához használják, de valamivel jobb eredmény hozható létre ezzel az eljárással.


Nvidia SLI: Scalable Link Interface. A 3dfx által kifejlesztett Multi-GPU technológia. Kétféle módot támogatott a leképzéshez: SFR (Split Frame Rendering) és AFR (Alternate Frame Rendering). Az SFR működése szempontjából megpróbálja kiegyenlítetten szétosztani a képkocka leképzésének terhelését a két GPU között. A kép felső és alsó részét külön GPU számolta. A technika hátránya, hogy mindkét GPU-nak le kell számolni a képkocka geometriáját, illetve a terhelés elosztása nem mindig volt megfelelő. Az AFR külön számoltatja a teljes képkockát az egyes GPU-kon, majd ezeket a sorrendnek megfelelően kiküldi a monitorra. Hátránya, hogy esetenként speciális optimalizálást igényel.


Pixel: A monitoron látható kép legkisebb alkotóeleme.


Point Sampling: A pixelen belül elhelyezkedő, középső texel színe lesz a pixel végső színe. Ez a megoldás a legegyszerűbb, és a legkisebb memóriasávszélesség igényű. Viszont nem valami szép a képe.


Poligon: Egymáshoz kapcsolódó szakaszokkal behatárolt egyszerű síkbeli alakzat.


Shader Modell: A Shader Modell verzióinak tulajdonságait az aktuális Direct3D API-ban definiálják. Mielőtt belekezdenék tisztázzuk, hogy a 3D-s program renderelése folyamán a grafikus processzor milyen is munkát végez:
- transzformáció
- megvilágítás
- triangle setup
- raszterizáció
A Shaderek köszönhetően saját magunk leprogramozhatjuk mi történjen az általunk kreált világban. Mindezt többnyire a magas szintű árnyaló nyelvek segítségével valósítjuk meg. Ilyen nyelv például az AMD (ATi) ASHLI, és az nVidia cg. Azonban elterjedtebbek az API-k saját megvalósításaik, mint a Direct3D HLSL, vagy OpenGL GLSL. A magas szintű nyelvben leírt kódott, egy complier segítségével lefordítjuk a grafikus processzorok assembly típusú nyelvi szintjére.
Vertex Shader:
A transzformációhoz és a megvilágításhoz van köze. Lényegében a T&L továbbfejlesztésének tekinthető. Használatával elfelejthetjük az előre "beégetett", fix funkciós eljárásokat. Ez a technológia lehetővé teszi, hogy mi írjunk olyan eljárást amiben meghatározzuk a létrehozott világ vertextranszformációit és megvilágítási modelljét.
Pixel Shader:
A raszterizációhoz van köze. Az általunk leprogramozott eljárások segítségével számolják illetve változtatják a Pixel szinét. Segítségükkel komplex effektek valósíthatók meg.
Geometry Shader:
Geometriai alakzatokkal, azaz több vertexszel képes egyszerre dolgozni. Az alkalmazott kódtól függően másolni, nagyítani, kicsinyíteni tudja őket. Ezen kívül további primitíveket hozhat létre, illetve törölhet vertexeket.


Stencil Buffer: 1999 óta szinte mindegyik videokártya képes pixelenként 24 bites Z-bufferelésre, a fennmaradó 8 bitet a programozó bármire felhasználhatja.


Texel: A textúra legkisebb alkotóeleme.


Textúra: A poligonokra feszülő texelekből felépülő bitkép.


Textúra tömörítés: A textúrának felhasználható bitkép, kiváló minőségű, viszont felbontástól függően igen nagy helyigénnyel rendelkező fájl. Mivel a videokártya memóriája és annak sávszélessége korlátozott, beépített textúra tömörítést használ, amennyiben az adott alkalmazás támogatja és engedélyezi azt. Többféle textúra tömörítés létezik:
- S3TC:
Az S3 Graphics által kifejlesztett eljárás. 4:1 arányban tömörít kb. 15-25% minőségveszteség mellet.
- DXTC:
A Directx API saját tömörítési eljárása. 4:1 arányban tömörít kb. 20-25% minőségveszteség mellet.
- FXTC:
A 3dfx által kifejlesztet eljárás. 4:1 arányban tömörít kb. 10-15% minőségveszteség mellet.
- 3Dc:
Az ATi Tech. által kifejlesztet kiváló hatásfokú eljárás. 4:1 arányban tömörít kb. 1-3% minőségveszteség mellet.
- V8U8:
Az nVidia által kifejlesztet nagyon jó hatásfokú eljárás. 4:1 arányban tömörít kb. 5-8% minőségveszteség mellet.


T&L: Transform & Lightning. A 3D-s program renderelése folyamán a grafikus processzor a következőket végzi:
- transzformáció
- megvilágítás
- triangle setup
- raszterizáció
A transzformációhoz és a megvilágításhoz van köze. A Direct3D 7.0 megjelenése előtt mindkét leképzést a processzor számította. A fent említett API-t támogató videokártyáknál elérhetővé vált a transzformáció és megvilágítás (T&L) hardveres úton való leképzése. A T&L a maga idejében úttörőnek számított. Komoly problémája azonban, hogy egy előre beépített modellt tartalmaz, ezzel gátat szabva az alkotói kreativításnak.


Trilinear Filter: A MIP-Mapping eljárást adja hozzá a bilinear-hoz, de még mindig kör alakzattal dolgozik. A memória sávszélesség igény duplája a bilinear szűréshez képpest.


Truform: A TruForm nem tesz egyebet, minthogy menet közben veszi a feldolgozás előtt álló poligonok adatait, azokból görbe felületet hoz létre, majd a kapott eredményt visszaalakítja több, kisebb poligonná, a grafikus processzor már ezeken végzi el a további műveleteket. Ezért úgy kaphatunk nagyobb poligonszámú, szebb és élethűbb modelleket, hogy nem kell terhelni a teljes rendszert. Ez így mind szép és jó, viszont a probléma ott kezdődik, hogy a Truformot támogatni kell. A szép eredmény érdekében a modelleket előre fel kell készíteni a technológiára. Mivel az nvidia nem támogatja a technológiát, nagyon nehéz elterjednie. Továbbá a legtöbb fejlesztőknek nincs elég ideje addig készíteni egy modelt, hogy az truform-mal és anélkül is jól mutasson.


(húzza a kurzort a képre)


UltraShadow: Az nVidia által kifejlesztet stencil árnyék optimalizációs technika. Ezzel az eljárással a programozók pontosan meg tudják határozni, hol látszódjon az adott árnyék és hol ne. Többnyire azokban a 3D-s programokban használható, amelyek Stencil Shadow Volume használatával képzik az árnyékokat.


Vertex: A 3D-s térben elhelyezkedő poligonok csúcsait jelölő pontok.


Z-Buffer: A képernyőn egy adott pixel több poligont is lefedhet, ezek közül el kell dönteni melyik poligon látható. A Z-buffer eljárás a pixel által lefedet összes poligonnak meghatároz egy Z értéket. Eme értékek közül a legkisebbet kiválasztja és az ehhez tartozó poligon lesz látható.