Rasterization — mi ez, szakaszai és működési elve

Szerző: IT Sectr Megjelenés: 2026-06-11 Olvasási idő: 10 perc

A Rasterization (rasterizáció) a háromdimenziós primitívek (háromszögek, vonalak, pontok) vektoros leírásának képpontokká (fragmentekké) történő átalakításának folyamata, amely megjelenítésre kerül a képernyőn. A Khronos Group, 2025 adatai szerint a rasterizáció a grafikus feldolgozási folyamat automatikus (nem programozható) szakasza, amely a Vertex Shader és a Fragment Shader között helyezkedik el. A Rasterization határozza meg, hogy a képernyő mely képpontjai tartoznak melyik háromszöghöz, és kiszámítja az interpolált attribútumokat minden fragmenthez.

A lényeg

  • Rasterization — a vektoros primitívek átalakítása raszteres képpé (képpontokká).
  • Scanline conversion — az alapvető algoritmus, amely meghatározza a képpontok háromszög általi lefedettségét.
  • Attribútum-interpoláció — a szín, a textúrakoordináták és a normálisok kiszámítása minden fragmenthez.
  • MSAA — multisamplingle, amely simítja a lépcsős éleket (aliasing) a rasterizáció során.
  • Teljesítmény a rasterizációé a háromszögek számától és a képernyő felbontásától függ.

Mi az a rasterizáció?

A Rasterization a grafikus feldolgozási folyamat azon szakasza, amely a geometriai primitíveket (háromszögek, vonalak) fragmentekké alakítja a Fragment Shader további feldolgozásához. A bemeneti adatok a háromszög csúcsai képernyőkoordinátákban és azok attribútumai (szín, normálisok, UV). A kimenet interpolált attribútumokkal ellátott fragmentek halmaza.

A programozható shaderekkel (Vertex és Fragment Shader) ellentétben a rasterizáció rögzített (nem programozható) szakasz. A fejlesztő nem változtathatja meg a rasterizációs algoritmust, de szabályozhatja a paramétereit: a vágási módot (culling), a vonalvastagságot, a mélységi eltolást (polygon offset) és a multisamplinget.

A rasterizáció szerepe a valós idejű grafikában

Gyakorlatilag minden modern valós idejű grafika — játékok, UI, AR/VR — rasterizációt használ. Ez a leggyorsabb megjelenítési módszer, amely képes milliónyi háromszög feldolgozására kockánként 60 FPS mellett. A GPU-rasterizátorok a háromszögek ezreinek párhuzamos feldolgozására optimalizáltak a speciális ROP (Render Output Units) egységeken keresztül.

Hogyan működik a rasterizáció?

A háromszög rasterizációja azután kezdődik, hogy a Vertex Shader képernyőkoordinátákká alakította a csúcsokat. A GPU veszi a háromszög három csúcsát, és meghatározza, hogy a képernyő mely képpontjai találhatók a háromszögön belül.

A háromszög rasterizációjának szakaszai

A folyamat három egymást követő lépést foglal magában: a háromszög bounding box meghatározása képpontokban — a bounding boxon belüli minden képpont ellenőrzése, hogy a háromszöghöz tartozik-e (edge function) — az interpolált attribútumok (barycentric coordinates) kiszámítása minden lefedett képponthoz. Az Edge function egy lineáris egyenlet, amely meghatározza, hogy egy pont a háromszög melyik élének melyik oldalán található.

SzakaszLeírásEredmény
ClippingA háromszögek levágása a viewport határain túlLátható primitívek
Viewport transformÁtalakítás képernyőkoordinátákkáKéppont-koordináták
Triangle setupAz edge-függvények és a bounding box kiszámításaRasterizációs paraméterek
Fragment generationLefedettség ellenőrzése és interpolációFragmentek + attribútumok

A rasterizáció algoritmusai

A Rasterization különböző algoritmusokkal valósítható meg, mindegyiknek megvan a maga kompromisszuma a teljesítmény és a minőség között. A modern GPU-k több megközelítés kombinációját használják.

Scanline-algoritmus

A klasszikus rasterizációs algoritmus, amelyet a korai GPU-khoz fejlesztettek. A háromszöget soronként (scanline) dolgozza fel: minden képernyősorhoz meghatározza a háromszög belépési és kilépési pontjait, és a köztük lévő összes képpontot kitölti. A Scanline conversion a nagy háromszögeknél hatékony, de bonyolult logikát igényel a tetszőleges alakú háromszögeknél.

Half-space (edge function) módszer

A modern GPU-k a half-space rasterizációs módszert használják: a háromszög minden oldalához edge function kerül kiszámításra — egy lineáris egyenlet, amely az egyik oldalon pozitív, a másikon negatív. A képpont akkor tartozik a háromszöghöz, ha mindhárom edge function pozitív. A Half-space rasterization könnyen párhuzamosítható, és jól illeszkedik a GPU-k SIMD-architektúráihoz.

Tile-alapú rasterizáció (TBR)

A mobil GPU-k (Qualcomm Adreno, ARM Mali) a Tile-Based Rendering (TBR) technikát használják. A képernyő kisebb tile-okra oszlik (16x16 vagy 32x32 képpont), és a rasterizáció minden tile-hoz külön történik. Ez minimalizálja a videómemória-hozzáférések számát azáltal, hogy a képkocka-puffert gyors helyi memóriában (tile memory) tárolja. A TBR csökkenti az energiafogyasztást, ami kritikus a mobileszközöknél.

Rasterizáció vs Ray Tracing

A Rasterization és a ray tracing két alapvetően különböző megközelítés a 3D-grafika megjelenítésében. A rasterizáció dominál a valós idejű alkalmazásokban, a ray tracing pedig az offline megjelenítésben, és fokozatosan behatol a valós idejű grafikába is (RTX-kompatibilis GPU-ken).

ParaméterRasterizationRay Tracing
ElvHáromszög → fragmentekSugár → ütközés a jelenettel
SebességNagyon gyors (millió háromszög/kocka)Lassú (ezer sugár/kocka)
MinőségTovábbi technikákat igényel (árnyékok, visszaverődések)Fizikailag korrekt árnyékok és visszaverődések
Mobil GPU-kStandard módszerKorlátozott támogatás (A17 Pro, Snapdragon Gen 3)
EnergiafogyasztásAlacsonyMagas

MSAA és élsimítás a rasterizáció során

A rasterizáció során felmerül az aliasing problémája — lépcsős élek (jaggies) a háromszögek határain. Ez azért történik, mert a képpont diszkrét, és a háromszög nem fedheti le részlegesen. Az aliasing leküzdésére multisamplinget (MSAA) használnak.

Hogyan működik az MSAA

Az MSAA (Multisample Anti-Aliasing) megnövelt mintavételezési frekvenciával (2x, 4x, 8x) végzi a rasterizációt. Egy képpontonkénti minta helyett több almintát használ, amelyek mindegyikét ellenőrzi a háromszög-lefedettség szempontjából. Az MSAA 4x képpontonként 4 almintát dolgoz fel, ami érezhető élsimítást biztosít anélkül, hogy a megjelenítési felbontást teljesen megnövelné.

FXAA és más utófeldolgozási módszerek

Az MSAA-val ellentétben az utófeldolgozási élsimítási módszerek (FXAA, SMAA, TAA) már a rasterizáció után működnek, elemzve a végső képet. Az FXAA (Fast Approximate Anti-Aliasing) meghatározza a kép éleit, és elmosást alkalmaz a simításhoz, lényegesen gyorsabb, mint az MSAA, de kevésbé minőségi eredményt ad.

Rasterizáció GPU-n és optimalizálás

A Rasterization a modern GPU-kon speciális hardveres egységekkel — ROP (Render Output Units) — történik. A ROP-egységek száma közvetlenül befolyásolja a kitöltési sebességet (fill rate) — azt a képpontszámot, amelyet a GPU másodpercenként fel tud dolgozni.

A rasterizáció teljesítménytényezői

  • Triangle count — a háromszögek száma kockánként. Minden háromszög overheadet igényel a setup és az edge-tesztelés során.
  • Fill rate — a ROP-egységek által másodpercenként feldolgozott képpontok száma. A GPU órajelétől és a ROP-egységek számától függ.
  • Overdraw — egy képpont ismételt rasterizálása a háromszögek átfedése miatt. Az objektumok mélység szerinti rendezésével optimalizálható.

A rasterizáció optimalizálása mobil GPU-khoz

A mobil GPU-k (Tile-Based Rendering) esetében kritikus fontosságúak: az overdraw minimalizálása korai eldobással (early-Z), a back-face culling használata a láthatatlan háromszögek eltávolításához, valamint a láthatatlan felületek eltávolítása (occlusion culling) azoknak a háromszögeknek az eldobásához, amelyeket más objektumok teljesen eltakarnak.

Gyakran ismételt kérdések

Mi az a rasterizáció egyszerűen?

A rasterizáció a háromszögek képpontokká alakításának folyamata a képernyőn. A GPU vesz egy háromdimenziós háromszöget, meghatározza, hogy a képernyő mely képpontjait takarja el, és továbbítja őket a Fragment Shadernek a kiszínezéshez.

Miben különbözik a rasterizáció a sugárkövetéstől?

A rasterizáció a háromszögeket a képernyőre vetíti, és meghatározza a képpontok lefedettségét (nagyon gyorsan). A sugárkövetés sugarakat bocsát ki a kamerából, és ellenőrzi a geometriával való metszéspontot (fizikailag pontosabb, de lényegesen lassabb).

Miért van szükség élsimításra (anti-aliasing) a rasterizáció során?

A rasterizáció során a képpont vagy teljesen a háromszöghöz tartozik, vagy nem — innen erednek a lépcsős élek (aliasing). Az MSAA a képpontonkénti több almintával simítja az éleket, az FXAA pedig szűrőt alkalmaz a kész képre.

Programozható-e a rasterizáció szakasza?

Nem, a rasterizáció a grafikus feldolgozási folyamat rögzített szakasza. A fejlesztő nem változtathatja meg az algoritmust, de szabályozhatja a beállításokat: culling, polygon offset, rasterizációs mód (pontok, vonalak, háromszögek) és az MSAA paraméterei.

Miért használnak a mobil GPU-k Tile-Based Renderinget?

A Tile-Based Rendering (TBR) tile-okra osztja a képernyőt, és azokat gyors helyi memóriában dolgozza fel, nem pedig a globális VRAM-ban. Ez radikálisan csökkenti az energiafogyasztást és a sávszélességet, ami kritikus az akkumulátorral működő mobileszközöknél.

Összegzés

  • Rasterization — a vektoros háromszögek átalakítása raszteres fragmentekké a képernyőn történő megjelenítéshez.
  • Half-space módszer — a rasterizáció alapvető algoritmusa a modern GPU-kban.
  • Tile-Based Rendering — a mobil GPU-kban (Adreno, Mali) használt rasterizációs architektúra.
  • Aliasing — a lépcsős élek problémája, amelyet MSAA, FXAA vagy TAA old meg.
  • Fill rate — a rasterizáció kulcsfontosságú teljesítményparamétere, amely a ROP-egységek számától függ.
  • Overdraw — a képpontok ismételt rasterizálása, amelyet early-Z és occlusion culling segítségével optimalizálnak.
  • Ray Tracing — alternatív módszer, amely fizikailag korrekt megjelenítést biztosít a teljesítmény rovására.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is