Rasterizace — co to je, fáze a princip fungování

Autor: IT Sectr Publikováno: 2026-06-11 Doba čtení: 10 min

Rasterizace — je proces převodu vektorového popisu trojrozměrných primitiv (trojúhelníků, čar, bodů) na sadu pixelů (fragmentů) pro zobrazení na obrazovce. Podle Khronos Group, 2025 je rasterizace automatickou (neprogramovatelnou) fází grafické pipeline, umístěnou mezi Vertex Shader a Fragment Shader. Rasterizace určuje, které pixely obrazovky patří ke kterému trojúhelníku, a vypočítává interpolované atributy pro každý fragment.

Hlavní body

  • Rasterizace — převod vektorových primitiv na rastrový obrázek (pixely).
  • Scanline conversion — základní algoritmus určující pokrytí pixelů trojúhelníkem.
  • Interpolace atributů — výpočet barvy, texturových souřadnic a normál pro každý fragment.
  • MSAA — multisampling vyhlazující stupňovité okraje (aliasing) při rasterizaci.
  • Výkon rasterizace závisí na počtu trojúhelníků a rozlišení obrazovky.

Co je rasterizace?

Rasterizace — je fáze grafické pipeline, která převádí geometrická primitiva (trojúhelníky, čáry) na sadu fragmentů pro další zpracování Fragment Shaderem. Vstupní data — vrcholy trojúhelníku v obrazovkových souřadnicích a jejich atributy (barva, normály, UV). Výstup — sada fragmentů s interpolovanými atributy.

Na rozdíl od programovatelných shaderů (Vertex a Fragment Shader) je rasterizace fixní (neprogramovatelná) fází. Vývojář nemůže změnit algoritmus rasterizace, ale může spravovat její parametry: režim ořezávání (culling), šířku čáry, posun hloubky (polygon offset) a multisampling.

Role rasterizace v real-time grafice

Prakticky veškerá moderní real-time grafika — hry, UI, AR/VR — používá rasterizaci. Je to nejvýkonnější metoda renderování, schopná zpracovat miliony trojúhelníků za snímek při 60 FPS. GPU rasterizátory jsou optimalizovány pro paralelní zpracování tisíců trojúhelníků současně prostřednictvím specializovaných bloků ROP (Render Output Units).

Jak funguje rasterizace?

Rasterizace trojúhelníku začíná poté, co Vertex Shader převedl vrcholy na obrazovkové souřadnice. GPU vezme tři vrcholy trojúhelníku a určí, které pixely obrazovky se nacházejí uvnitř tohoto trojúhelníku.

Fáze rasterizace trojúhelníku

Proces zahrnuje tři po sobě jdoucí kroky: určení bounding boxu trojúhelníku v pixelech — kontrola každého pixelu uvnitř bounding boxu na příslušnost k trojúhelníku (edge function) — výpočet interpolovaných atributů (barycentrické souřadnice) pro každý pokrytý pixel. Edge function — lineární rovnice určující, na které straně hrany trojúhelníku se bod nachází.

FázePopisVýsledek
ClippingOřezávání trojúhelníků mimo hranice viewportuViditelná primitiva
Viewport transformTransformace do obrazovkových souřadnicPixelové souřadnice
Triangle setupVýpočet edge-funkcí a bounding boxuParametry rasterizace
Fragment generationKontrola pokrytí a interpolaceFragmenty + atributy

Algoritmy rasterizace

Rasterizace může být implementována různými algoritmy, z nichž každý má své kompromisy mezi výkonem a kvalitou. Moderní GPU používají kombinaci několika přístupů.

Scanline algoritmus

Klasický algoritmus rasterizace vyvinutý pro raná GPU. Trojúhelník je zpracováván řádek po řádku (scanline): pro každý řádek obrazovky jsou určeny body vstupu a výstupu trojúhelníku a všechny pixely mezi nimi jsou vyplněny. Scanline conversion je efektivní pro velké trojúhelníky, ale vyžaduje složitou logiku pro trojúhelníky libovolného tvaru.

Metoda Half-space (edge function)

Moderní GPU používají metodu half-space rasterizace: pro každou stranu trojúhelníku se vypočítá edge function — lineární rovnice, kladná na jedné straně a záporná na druhé. Pixel patří k trojúhelníku, pokud jsou všechny tři edge functions kladné. Half-space rasterizace se snadno paralelizuje a dobře se hodí pro SIMD architektury GPU.

Tile-Based rasterizace (TBR)

Mobilní GPU (Qualcomm Adreno, ARM Mali) používají Tile-Based Rendering (TBR). Obrazovka je rozdělena na malé dlaždice (16×16 nebo 32×32 pixelů) a rasterizace se provádí pro každou dlaždici zvlášť. To minimalizuje počet přístupů do video paměti díky ukládání framebufferu v rychlé lokální paměti (tile memory). TBR snižuje spotřebu energie, což je kritické pro mobilní zařízení.

Rasterizace vs Ray Tracing

Rasterizace a ray tracing — dva zásadně odlišné přístupy k renderování 3D grafiky. Rasterizace dominuje v real-time aplikacích, ray tracing — v offline renderování a postupně proniká do real-time (na GPU kompatibilních s RTX).

ParametrRasterizaceRay Tracing
PrincipTrojúhelník → fragmentyPaprsek → průnik se scénou
RychlostVelmi rychlý (miliony trojúhelníků/snímek)Pomalý (tisíce paprsků/snímek)
KvalitaVyžaduje další techniky (stíny, odrazy)Fyzikálně správné stíny a odrazy
Mobilní GPUStandardní metodaOmezená podpora (A17 Pro, Snapdragon Gen 3)
Spotřeba energieNízkáVysoká

MSAA a vyhlazování při rasterizaci

Při rasterizaci vzniká problém aliasingu — stupňovité okraje (jaggies) na hranicích trojúhelníků. K tomu dochází, protože pixel je diskrétní a nemůže být částečně pokryt trojúhelníkem. Pro boj s aliasingem se používá multisampling (MSAA).

Jak funguje MSAA

MSAA (Multisample Anti-Aliasing) provádí rasterizaci se zvýšenou frekvencí vzorkování (2x, 4x, 8x). Místo jednoho vzorku na pixel se používá několik podvzorků, z nichž každý je kontrolován na pokrytí trojúhelníkem. MSAA 4x zpracovává 4 podvzorky na pixel, což poskytuje znatelné vyhlazení okrajů bez úplného zvýšení rozlišení renderování.

FXAA a další post-process metody

Na rozdíl od MSAA pracují post-process metody vyhlazování (FXAA, SMAA, TAA) až po rasterizaci, analyzují konečný obrázek. FXAA (Fast Approximate Anti-Aliasing) detekuje okraje obrázku a aplikuje rozostření pro vyhlazení, pracuje výrazně rychleji než MSAA, ale s méně kvalitním výsledkem.

Rasterizace na GPU a optimalizace

Rasterizace na moderních GPU je prováděna specializovanými hardwarovými bloky — ROP (Render Output Units). Počet ROP přímo ovlivňuje rychlost plnění (fill rate) — počet pixelů, které GPU může zpracovat za sekundu.

Faktory výkonu rasterizace

  • Triangle count — počet trojúhelníků za snímek. Každý trojúhelník vyžaduje režii pro setup a testování hran.
  • Fill rate — počet pixelů zpracovaných bloky ROP za sekundu. Závisí na taktovací frekvenci GPU a počtu ROP.
  • Overdraw — opakovaná rasterizace stejného pixelu kvůli překrývání trojúhelníků. Optimalizuje se řazením objektů podle hloubky.

Optimalizace rasterizace pro mobilní GPU

Pro mobilní GPU (Tile-Based Rendering) jsou kriticky důležité: minimalizace overdraw pomocí časného odmítání (early-Z), použití back-face culling pro odstranění neviditelných trojúhelníků a skryté odstraňování povrchů (occlusion culling) pro odmítání trojúhelníků zcela zakrytých jinými objekty.

Často kladené otázky

Co je rasterizace jednoduše řečeno?

Rasterizace je proces přeměny trojúhelníků na pixely na obrazovce. GPU vezme trojrozměrný trojúhelník, určí, které pixely obrazovky pokrývá, a předá je Fragment Shaderu k obarvení.

Čím se rasterizace liší od ray tracingu?

Rasterizace promítá trojúhelníky na obrazovku a určuje pokrytí pixelů (velmi rychle). Ray tracing vysílá paprsky z kamery a kontroluje průnik s geometrií (fyzikálně přesnější, ale výrazně pomalejší).

Proč je potřeba vyhlazování (anti-aliasing) při rasterizaci?

Při rasterizaci pixel buď zcela patří trojúhelníku, nebo ne — odtud stupňovité okraje (aliasing). MSAA vyhlazuje okraje pomocí několika podvzorků na pixel a FXAA aplikuje filtr na hotový obrázek.

Lze programovat fázi rasterizace?

Ne, rasterizace je fixní fáze grafické pipeline. Vývojář nemůže změnit algoritmus, ale může spravovat nastavení: culling, polygon offset, režim rasterizace (body, čáry, trojúhelníky) a parametry MSAA.

Proč mobilní GPU používají Tile-Based Rendering?

Tile-Based Rendering (TBR) rozděluje obrazovku na dlaždice a zpracovává je v rychlé lokální paměti, nikoli v globální VRAM. To radikálně snižuje spotřebu energie a šířku pásma, což je kritické pro mobilní zařízení napájená baterií.

Shrnutí

  • Rasterizace — převod vektorových trojúhelníků na rastrové fragmenty pro zobrazení na obrazovce.
  • Half-space metoda — hlavní algoritmus rasterizace v moderních GPU.
  • Tile-Based Rendering — architektura rasterizace používaná v mobilních GPU (Adreno, Mali).
  • Aliasing — problém stupňovitých okrajů, řešený pomocí MSAA, FXAA nebo TAA.
  • Fill rate — klíčový parametr výkonu rasterizace, závislý na počtu ROP bloků.
  • Overdraw — opakovaná rasterizace pixelů, optimalizovaná pomocí early-Z a occlusion culling.
  • Ray Tracing — alternativní metoda poskytující fyzikálně správné renderování za cenu výkonu.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také