Rasterizzazione — cosa sono, fasi e principio di funzionamento

Autore: IT Sectr Pubblicato: 2026-06-11 Tempo di lettura: 10 min

La rasterizzazione è il processo di conversione di una descrizione vettoriale di primitive tridimensionali (triangoli, linee, punti) in un insieme di pixel (frammenti) per la visualizzazione su uno schermo. Secondo Khronos Group, 2025, la rasterizzazione è una fase automatica (non programmabile) della pipeline grafica, situata tra il Vertex Shader e il Fragment Shader. Rasterization determina quali pixel dello schermo appartengono a ciascun triangolo e calcola gli attributi interpolati per ogni frammento.

Punti chiave

  • Rasterizzazione — conversione di primitive vettoriali in un'immagine raster (pixel).
  • Scanline conversion — l'algoritmo di base che determina la copertura dei pixel da parte di un triangolo.
  • Interpolazione degli attributi — calcolo di colore, coordinate della texture e normali per ogni frammento.
  • MSAA — multisampling, smussa i bordi frastagliati (aliasing) durante la rasterizzazione.
  • Prestazioni della rasterizzazione dipendono dal numero di triangoli e dalla risoluzione dello schermo.

Cos'è la rasterizzazione?

Rasterization è una fase della pipeline grafica che converte primitive geometriche (triangoli, linee) in un insieme di frammenti per l'elaborazione successiva da parte del Fragment Shader. I dati di input sono i vertici del triangolo in coordinate dello schermo e i loro attributi (colore, normali, UV). L'output è un insieme di frammenti con attributi interpolati.

A differenza degli shader programmabili (Vertex Shader e Fragment Shader), la rasterizzazione è una fase fissa (non programmabile). Lo sviluppatore non può modificare l'algoritmo di rasterizzazione, ma può controllarne i parametri: modalità di culling, larghezza della linea, offset di profondità (polygon offset) e multisampling.

Il ruolo della rasterizzazione nella grafica in tempo reale

Praticamente tutta la grafica moderna in tempo reale — giochi, UI, AR/VR — utilizza la rasterizzazione. È il metodo di rendering più performante, in grado di elaborare milioni di triangoli per fotogramma a 60 FPS. I rasterizzatori GPU sono ottimizzati per l'elaborazione parallela di migliaia di triangoli contemporaneamente attraverso blocchi ROP (Render Output Units) specializzati.

Come funziona la rasterizzazione?

La rasterizzazione dei triangoli inizia dopo che il Vertex Shader ha trasformato i vertici in coordinate dello schermo. La GPU prende i tre vertici di un triangolo e determina quali pixel dello schermo si trovano all'interno di quel triangolo.

Fasi della rasterizzazione dei triangoli

Il processo include tre passaggi sequenziali: determinazione del bounding box del triangolo in pixel — verifica di ogni pixel all'interno del bounding box per l'appartenenza al triangolo (edge function) — calcolo degli attributi interpolati (coordinate baricentriche) per ogni pixel coperto. La Edge function è un'equazione lineare che determina da quale lato del bordo del triangolo si trova un punto.

FaseDescrizioneRisultato
ClippingTaglio dei triangoli fuori dai limiti del viewportPrimitive visibili
Trasformazione viewportConversione in coordinate dello schermoCoordinate pixel
Triangle setupCalcolo delle edge functions e del bounding boxParametri di rasterizzazione
Fragment generationTest di copertura e interpolazioneFrammenti + attributi

Algoritmi di rasterizzazione

Rasterization può essere implementata con vari algoritmi, ciascuno con i propri compromessi tra prestazioni e qualità. Le GPU moderne utilizzano una combinazione di diversi approcci.

Algoritmo Scanline

L'algoritmo classico di rasterizzazione sviluppato per le prime GPU. Il triangolo viene elaborato riga per riga (scanline): per ogni riga dello schermo vengono determinati i punti di entrata e uscita del triangolo e tutti i pixel tra di essi vengono riempiti. Scanline conversion è efficiente per triangoli grandi ma richiede logica complessa per triangoli di forma arbitraria.

Metodo Half-Space (Edge Function)

Le GPU moderne utilizzano il metodo di rasterizzazione half-space: per ogni lato del triangolo viene calcolata una edge function — un'equazione lineare positiva da un lato e negativa dall'altro. Un pixel appartiene al triangolo se tutte e tre le edge functions sono positive. Half-space rasterization è facilmente parallelizzabile e ben adatto alle architetture GPU SIMD.

Rasterizzazione basata su tile (TBR)

Le GPU mobili (Qualcomm Adreno, ARM Mali) utilizzano il Tile-Based Rendering (TBR). Lo schermo viene diviso in piccoli tile (16x16 o 32x32 pixel) e la rasterizzazione viene eseguita per ogni tile separatamente. Questo minimizza gli accessi alla memoria memorizzando il framebuffer in memoria locale veloce (tile memory). Il TBR riduce il consumo energetico, fondamentale per i dispositivi mobili.

Rasterizzazione vs Ray Tracing

Rasterization e ray tracing sono due approcci fondamentalmente diversi per il rendering della grafica 3D. La rasterizzazione domina nelle applicazioni in tempo reale, mentre il ray tracing viene utilizzato nel rendering offline e sta gradualmente penetrando nel tempo reale (sulle GPU compatibili con RTX).

ParametroRasterizzazioneRay Tracing
PrincipioTriangolo → frammentiRaggio → intersezione con la scena
VelocitàMolto veloce (milioni di triangoli/fotogramma)Lento (migliaia di raggi/fotogramma)
QualitàRichiede tecniche aggiuntive (ombre, riflessi)Ombre e riflessi fisicamente corretti
GPU mobiliMetodo standardSupporto limitato (A17 Pro, Snapdragon Gen 3)
Consumo energeticoBassoAlto

MSAA e anti-aliasing nella rasterizzazione

La rasterizzazione introduce il problema dell'aliasing — bordi frastagliati (jaggies) ai confini dei triangoli. Ciò accade perché un pixel è discreto e non può essere parzialmente coperto da un triangolo. Per combattere l'aliasing si utilizza il multisampling (MSAA).

Come funziona MSAA

MSAA (Multisample Anti-Aliasing) esegue la rasterizzazione con una frequenza di campionamento aumentata (2x, 4x, 8x). Invece di un campione per pixel, vengono utilizzati più sottocampioni, ciascuno testato per la copertura del triangolo. MSAA 4x elabora 4 sottocampioni per pixel, fornendo un notevole smussamento dei bordi senza aumentare completamente la risoluzione di rendering.

FXAA e altri metodi di post-elaborazione

A differenza di MSAA, i metodi di anti-aliasing di post-elaborazione (FXAA, SMAA, TAA) funzionano dopo la rasterizzazione analizzando l'immagine finale. FXAA (Fast Approximate Anti-Aliasing) rileva i bordi dell'immagine e applica la sfocatura per smussare, funzionando significativamente più velocemente di MSAA ma con qualità inferiore.

Rasterizzazione su GPU e ottimizzazione

Rasterization sulle GPU moderne viene eseguita da blocchi hardware specializzati — ROP (Render Output Units). Il numero di ROP influisce direttamente sul fill rate — il numero di pixel che la GPU può elaborare al secondo.

Fattori di prestazione della rasterizzazione

  • Triangle count — numero di triangoli per fotogramma. Ogni triangolo richiede overhead per il setup e il test dei bordi.
  • Fill rate — numero di pixel elaborati dai blocchi ROP al secondo. Dipende dalla frequenza di clock della GPU e dal numero di ROP.
  • Overdraw — rasterizzazione ripetuta dello stesso pixel a causa della sovrapposizione dei triangoli. Ottimizzato ordinando gli oggetti per profondità.

Ottimizzazione della rasterizzazione per GPU mobili

Per le GPU mobili (Tile-Based Rendering), i fattori critici includono: minimizzare l'overdraw tramite early-Z rejection, utilizzare il back-face culling per rimuovere i triangoli invisibili e l'occlusion culling per scartare i triangoli completamente coperti da altri oggetti.

Domande frequenti

Cos'è la rasterizzazione in termini semplici?

La rasterizzazione è il processo di trasformazione dei triangoli in pixel sullo schermo. La GPU prende un triangolo tridimensionale, determina quali pixel dello schermo copre e li passa al Fragment Shader per colorarli.

In cosa la rasterizzazione differisce dal ray tracing?

La rasterizzazione proietta i triangoli sullo schermo e determina la copertura dei pixel (molto veloce). Ray tracing lancia raggi dalla camera e verifica l'intersezione con la geometria (fisicamente più preciso ma significativamente più lento).

Perché serve l'anti-aliasing nella rasterizzazione?

Durante la rasterizzazione, un pixel appartiene interamente a un triangolo o no — da qui i bordi frastagliati (aliasing). MSAA smussa i bordi utilizzando più sottocampioni per pixel, mentre FXAA applica un filtro all'immagine finale.

Si può programmare la fase di rasterizzazione?

No, la rasterizzazione è una fase fissa della pipeline grafica. Lo sviluppatore non può modificare l'algoritmo, ma può controllare le impostazioni: culling, polygon offset, modalità di rasterizzazione (punti, linee, triangoli) e parametri MSAA.

Perché le GPU mobili usano il Tile-Based Rendering?

Tile-Based Rendering (TBR) divide lo schermo in tile e li elabora in memoria locale veloce anziché in VRAM globale. Questo riduce radicalmente il consumo energetico e la larghezza di banda, fondamentale per i dispositivi mobili a batteria.

Riepilogo

  • Rasterizzazione — conversione di triangoli vettoriali in frammenti raster per la visualizzazione su schermo.
  • Metodo Half-space — il principale algoritmo di rasterizzazione nelle GPU moderne.
  • Tile-Based Rendering — architettura di rasterizzazione utilizzata nelle GPU mobili (Adreno, Mali).
  • Aliasing — il problema dei bordi frastagliati, risolto tramite MSAA, FXAA o TAA.
  • Fill rate — parametro chiave delle prestazioni di rasterizzazione dipendente dal numero di blocchi ROP.
  • Overdraw — rasterizzazione ripetuta di pixel, ottimizzata tramite early-Z e occlusion culling.
  • Ray Tracing — metodo alternativo che offre rendering fisicamente corretto a scapito delle prestazioni.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche