Rastrering — vad är det, steg och funktionsprincip

Författare: IT Sectr Publicerad: 2026-06-11 Lästid: 10 min

Rastrering — är processen att omvandla en vektorbeskrivning av tredimensionella primitiver (trianglar, linjer, punkter) till en uppsättning pixlar (fragment) för visning på skärmen. Enligt Khronos Group, 2025 är rastrering ett automatiskt (inte programmerbart) steg i grafikpipelinen, placerat mellan Vertex Shader och Fragment Shader. Rastrering bestämmer vilka pixlar på skärmen som tillhör vilken triangel och beräknar interpolerade attribut för varje fragment.

Huvudpunkter

  • Rastrering — omvandling av vektorprimitiver till en rasterbild (pixlar).
  • Scanline conversion — den grundläggande algoritmen som bestämmer pixel-täckning av en triangel.
  • Interpolering av attribut — beräkning av färg, texturkoordinater och normaler för varje fragment.
  • MSAA — multisampling som jämnar ut trappstegskanter (aliasing) vid rastrering.
  • Prestanda för rastrering beror på antalet trianglar och skärmupplösningen.

Vad är rastrering?

Rastrering — är steget i grafikpipelinen som omvandlar geometriska primitiver (trianglar, linjer) till en uppsättning fragment för vidare bearbetning av Fragment Shadern. Indata — triangelns hörn i skärmkoordinater och deras attribut (färg, normaler, UV). Utdata — uppsättning fragment med interpolerade attribut.

Till skillnad från programmerbara shaders (Vertex och Fragment Shader) är rastrering ett fast (inte programmerbart) steg. Utvecklaren kan inte ändra rastreringsalgoritmen, men kan hantera dess parametrar: klippläge (culling), linjebredd, djupförskjutning (polygon offset) och multisampling.

Rastreringens roll i realtidsgrafik

Praktiskt taget all modern realtidsgrafik — spel, UI, AR/VR — använder rastrering. Det är den mest prestandaeffektiva renderingsmetoden, kapabel att bearbeta miljontals trianglar per bildruta vid 60 FPS. GPU-rastrerare är optimerade för parallell bearbetning av tusentals trianglar samtidigt genom specialiserade ROP-block (Render Output Units).

Hur fungerar rastrering?

Rastrering av en triangel börjar efter att Vertex Shadern har omvandlat hörnen till skärmkoordinater. GPU:n tar triangelns tre hörn och bestämmer vilka pixlar på skärmen som befinner sig inuti denna triangel.

Steg för rastrering av en triangel

Processen omfattar tre på varandra följande steg: bestämning av triangelns bounding box i pixlar — kontroll av varje pixel innanför bounding boxen för tillhörighet till triangeln (edge function) — beräkning av interpolerade attribut (barycentriska koordinater) för varje täckt pixel. Edge function — är en linjär ekvation som bestämmer på vilken sida av triangelns kant en punkt befinner sig.

StegBeskrivningResultat
ClippingAvklippning av trianglar utanför viewport-gränsernaSynliga primitiver
Viewport transformOmvandling till skärmkoordinaterPixelkoordinater
Triangle setupBeräkning av edge-funktioner och bounding boxRastreringsparametrar
Fragment generationKontroll av täckning och interpoleringFragment + attribut

Rastreringsalgoritmer

Rastrering kan implementeras med olika algoritmer, var och en med sina egna avvägningar mellan prestanda och kvalitet. Moderna GPU:er använder en kombination av flera tillvägagångssätt.

Scanline-algoritm

Klassisk rastreringsalgoritm utvecklad för tidiga GPU:er. Triangeln bearbetas rad för rad (scanline): för varje skärmrad bestäms triangelns in- och utgångspunkter och alla pixlar däremellan fylls. Scanline conversion är effektivt för stora trianglar, men kräver komplex logik för trianglar med godtycklig form.

Half-space (edge function) metod

Moderna GPU:er använder half-space rastreringsmetoden: för varje sida av triangeln beräknas en edge function — en linjär ekvation, positiv på ena sidan och negativ på den andra. Pixeln tillhör triangeln om alla tre edge functions är positiva. Half-space rastrering är lätt att parallellisera och passar väl för GPU:ers SIMD-arkitekturer.

Tile-Based rastrering (TBR)

Mobila GPU:er (Qualcomm Adreno, ARM Mali) använder Tile-Based Rendering (TBR). Skärmen delas in i små tiles (16×16 eller 32×32 pixlar) och rastrering utförs för varje tile separat. Detta minimerar antalet åtkomster till videominnet genom att lagra framebuffern i snabbt lokalt minne (tile memory). TBR minskar energiförbrukningen, vilket är kritiskt för mobila enheter.

Rastrering vs Ray Tracing

Rastrering och ray tracing — två fundamentalt olika tillvägagångssätt för rendering av 3D-grafik. Rastrering dominerar i realtidsapplikationer, ray tracing — i offline-rendering och tränger gradvis in i realtid (på RTX-kompatibla GPU:er).

ParameterRastreringRay Tracing
PrincipTriangel → fragmentStråle → skärning med scen
HastighetMycket snabb (miljontals trianglar/bildruta)Långsam (tusentals strålar/bildruta)
KvalitetKräver ytterligare tekniker (skuggor, reflektioner)Fysiskt korrekta skuggor och reflektioner
Mobila GPU:erStandardmetodBegränsat stöd (A17 Pro, Snapdragon Gen 3)
EnergiförbrukningLågHög

MSAA och kantutjämning vid rastrering

Vid rastrering uppstår problemet med aliasing — trappstegskanter (jaggies) vid triangelgränserna. Detta händer eftersom pixeln är diskret och inte kan täckas delvis av en triangel. För att bekämpa aliasing används multisampling (MSAA).

Hur MSAA fungerar

MSAA (Multisample Anti-Aliasing) utför rastrering med ökad samplingsfrekvens (2x, 4x, 8x). Istället för ett sampel per pixel används flera subsampel, som var och en kontrolleras för täckning av triangeln. MSAA 4x bearbetar 4 subsampel per pixel, vilket ger en märkbar utjämning av kanter utan att helt öka renderingsupplösningen.

FXAA och andra post-process-metoder

Till skillnad från MSAA arbetar post-process kantutjämningsmetoder (FXAA, SMAA, TAA) efter rastrering, genom att analysera den slutliga bilden. FXAA (Fast Approximate Anti-Aliasing) detekterar bildens kanter och applicerar oskärpa för utjämning, arbetar betydligt snabbare än MSAA men med mindre kvalitativt resultat.

Rastrering på GPU och optimering

Rastrering på moderna GPU:er utförs av specialiserade hårdvarublock — ROP (Render Output Units). Antalet ROP påverkar direkt fyllnadshastigheten (fill rate) — antalet pixlar som GPU:n kan bearbeta per sekund.

Faktorer för rastreringsprestanda

  • Triangle count — antal trianglar per bildruta. Varje triangel kräver overhead för setup och kanttestning.
  • Fill rate — antal pixlar som bearbetas av ROP-block per sekund. Beror på GPU:ns klockfrekvens och antal ROP.
  • Overdraw — upprepad rastrering av en pixel på grund av överlappande trianglar. Optimeras genom sortering av objekt efter djup.

Optimering av rastrering för mobila GPU:er

För mobila GPU:er (Tile-Based Rendering) är kritiskt viktigt: minimering av overdraw genom tidig avvisning (early-Z), användning av back-face culling för att ta bort osynliga trianglar och dold ytborttagning (occlusion culling) för att avvisa trianglar som helt täcks av andra objekt.

Vanliga frågor

Vad är rastrering med enkla ord?

Rastrering är processen att omvandla trianglar till pixlar på skärmen. GPU:n tar en tredimensionell triangel, bestämmer vilka pixlar på skärmen den täcker och skickar dem till Fragment Shadern för färgläggning.

Hur skiljer sig rastrering från ray tracing?

Rastrering projicerar trianglar på skärmen och bestämmer pixeltäckning (mycket snabbt). Ray tracing skickar strålar från kameran och kontrollerar skärning med geometri (fysiskt mer exakt men betydligt långsammare).

Varför behövs kantutjämning (anti-aliasing) vid rastrering?

Vid rastrering tillhör pixeln antingen helt triangeln eller inte — därav trappstegskanter (aliasing). MSAA jämnar ut kanter genom flera subsampel per pixel, och FXAA applicerar ett filter på den färdiga bilden.

Kan rastreringssteget programmeras?

Nej, rastrering är ett fast steg i grafikpipelinen. Utvecklaren kan inte ändra algoritmen, men kan hantera inställningarna: culling, polygon offset, rastreringsläge (punkter, linjer, trianglar) och MSAA-parametrar.

Varför använder mobila GPU:er Tile-Based Rendering?

Tile-Based Rendering (TBR) delar upp skärmen i tiles och bearbetar dem i snabbt lokalt minne, inte i global VRAM. Detta minskar dramatiskt energiförbrukningen och bandbredden, vilket är kritiskt för batteridrivna mobila enheter.

Sammanfattning

  • Rastrering — omvandling av vektortrianglar till rasterfragment för visning på skärmen.
  • Half-space metod — den huvudsakliga rastreringsalgoritmen i moderna GPU:er.
  • Tile-Based Rendering — rastreringsarkitektur som används i mobila GPU:er (Adreno, Mali).
  • Aliasing — problemet med trappstegskanter, löst via MSAA, FXAA eller TAA.
  • Fill rate — den viktigaste prestandaparametern för rastrering, beroende på antalet ROP-block.
  • Overdraw — upprepad rastrering av pixlar, optimerad via early-Z och occlusion culling.
  • Ray Tracing — alternativ metod som ger fysiskt korrekt rendering på bekostnad av prestanda.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också