Scanline Rendering
La tecnica di Rendering "Scanline Rendering", concepita per la prima volta nel 1967, consiste, come suggerisce il nome, nel disporre in memoria gli oggetti della scena 3D ordinandoli in base al valore della coordinata y (l'altezza) e nel proiettare virtualmente una retta orizzontale per verificare, ad ogni quota (si opera riga per riga), quale poligono viene intercettato e, quindi, quali facce renderizzare.
Si opera, come detto, riga per riga, piuttosto che pixel per pixel o poligono per poligono. Per ogni riga si ha una data quantità di memoria (bucket) ove vengono inseriti i riferimenti agli spigoli dei poligono "visibili" alla relativa quota; la struttura dati che contiene tali riferimenti è detta AET - Active Edge Table.
Il Rendering è accelerato dalla possibilità di aggiornare, mentre la scan line (o scanline, la riga di scansione) avanza nella figura, la lista dei poligoni visibili nella scena, per preparare il lavoro per la scansione successiva (frame successivo).
Questo algoritmo può essere quindi utilizzato in combinazione con altre tecniche, come ad esempio Phong (per i riflessi) o Z-Buffer, per costruire un intero motore di Rendering.
Rispetto all'algoritmo Z-Buffer, il vantaggio è che i pixel visibili vengono presi in considerazione e renderizzati una sola volta, tuttavia i rendering scanline perdono terreno in termini di performances quando il numero di primitive da renderizzare è considerevolmente alto o le scene particolarmente complesse: in questo caso, è da preferire di gran lunga Z-Buffer, anche perchè la maggior parte dei prodotti hardware attuali sono ottimizzati proprio per Z-Buffer, non per scanline (non tutti, comunque: anche se poco, la tecnica viene utilizzata ancora oggi anche per il rendering in tempo reale, anche se con alcune varianti (ad esempio, utilizzando una cache in VRAM per le immagini prodotte, ecc...)).
|