Computer Graphics | Antialiasing
Antialiasing è una tecnica usata nella computer grafica per rimuovere l'effetto aliasing. L'effetto aliasing è la comparsa di bordi frastagliati o "jaggies" in un'immagine rasterizzata (un'immagine renderizzata usando i pixel). Il problema dei bordi frastagliati tecnicamente si verifica a causa della distorsione dell'immagine quando la conversione di scansione è fatta con il campionamento a bassa frequenza, che è anche conosciuto come Undersampling. L'aliasing si verifica quando gli oggetti del mondo reale che comprendono curve lisce e continue sono rasterizzati usando i pixel.
La causa dell'anti-aliasing è l'Undersampling. Il sottocampionamento provoca la perdita di informazioni dell'immagine. Il sottocampionamento si verifica quando il campionamento viene fatto a una frequenza inferiore alla frequenza di campionamento di Nyquist. To avoid this loss, we need to have our sampling frequency atleast twice that of highest frequency occurring in the object.
This minimum required frequency is referred to as Nyquist sampling frequency (fs):
- fs =2*fmax
This can also be stated as that our sampling interval should be no larger than half the cycle interval. This maximum required the sampling interval is called Nyquist sampling interval Δx
s
:
- Δxs = Δxcycle/2
- Where Δxcycle=1/fmax
Methods of Antialiasing (AA) –
Aliasing is removed using four methods: Utilizzo di display ad alta risoluzione, Post-filtraggio (Supersampling), Pre-filtraggio (Area Sampling), Pixel phasing. Questi sono spiegati come segue.
- Utilizzando la visualizzazione ad alta risoluzione:
Un modo per ridurre l'effetto aliasing e aumentare la frequenza di campionamento è semplicemente visualizzare gli oggetti ad una risoluzione più alta. Usando l'alta risoluzione, le frastagliature diventano così piccole da diventare indistinguibili dall'occhio umano. Quindi, i bordi frastagliati vengono sfocati e i bordi appaiono lisci. - Post filtraggio (Supersampling):
In questo metodo, stiamo aumentando la risoluzione di campionamento trattando lo schermo come se fosse fatto di una griglia molto più fine, a causa della quale la dimensione effettiva dei pixel viene ridotta. Ma la risoluzione dello schermo rimane la stessa. Ora, l'intensità di ogni subpixel viene calcolata e l'intensità media del pixel viene trovata dalla media delle intensità dei subpixel. Così facciamo il campionamento a una risoluzione più alta e visualizziamo l'immagine a una risoluzione più bassa o alla risoluzione dello schermo, quindi questa tecnica è chiamata supersampling. Questo metodo è anche conosciuto come post-filtraggio in quanto questa procedura è fatta dopo aver generato l'immagine rasterizzata.Applicazioni pratiche:
Nel gaming, SSAA (Supersample Antialiasing) o FSAA (full-scene antialiasing) è usato per creare la migliore qualità dell'immagine. È spesso chiamato AA puro e quindi è molto lento e ha un costo computazionale molto alto. Questa tecnica è stata ampiamente utilizzata nei primi tempi, quando non erano disponibili tecniche AA migliori. Le diverse modalità di SSAA disponibili sono: 2X, 4X, 8X, ecc. che denotano che il campionamento è fatto x volte (più di) la risoluzione corrente.
Uno stile migliore di AA è MSAA (multisampling Antialiasing) che è uno stile più veloce e approssimativo di supersampling http://AA.It ha un costo computazionale minore. Tecniche di sovracampionamento migliori e sofisticate sono sviluppate da società di schede grafiche come CSAA di NVIDIA e CFAA di AMD.
3. Pre-filtraggio (Area Sampling):
Nel campionamento ad area, le intensità dei pixel sono calcolate proporzionalmente alle aree di sovrapposizione di ogni pixel con gli oggetti da visualizzare. Qui il colore dei pixel è calcolato in base alla sovrapposizione degli oggetti della scena con un'area di pixel.
Per esempio: Supponiamo che una linea passi attraverso due pixel. Il pixel che copre la porzione più grande (90%) della linea mostra il 90% di intensità mentre il pixel che copre un'area inferiore (10%) mostra il 10-15% di intensità. Se l'area del pixel si sovrappone a diverse aree di colore, allora il colore finale del pixel viene preso come media dei colori dell'area di sovrapposizione. Questo metodo è anche conosciuto come pre-filtraggio in quanto questa procedura viene fatta PRIMA di generare l'immagine rasterizzata. Viene fatto usando alcuni algoritmi primitivi di grafica.
4. Pixel phasing:
È una tecnica per rimuovere l'aliasing. Qui le posizioni dei pixel sono spostate in posizioni quasi approssimative vicino alla geometria dell'oggetto. Alcuni sistemi permettono di regolare la dimensione dei singoli pixel per distribuire le intensità, il che è utile nel pixel phasing.
Altre applicazioni delle tecniche di antialiasing:
- Compensare le differenze di intensità delle linee:
Quando una linea orizzontale e una diagonale sono tracciate sul display raster, il numero di pixel richiesto per visualizzare entrambe le linee è lo stesso, anche se la linea diagonale è 1,414 volte più grande della linea orizzontale. Questo porta ad una diminuzione dell'intensità della linea più lunga. Per compensare questa diminuzione di intensità, l'intensità dei pixel viene assegnata in base alla lunghezza della linea usando tecniche di anti-aliasing. - Anti-aliasing dei confini dell'area:
I concetti di anti-aliasing possono anche essere applicati per rimuovere le frastagliature lungo i confini dell'area. Queste procedure possono essere applicate agli algoritmi di scanline per smussare i confini dell'area. Se il riposizionamento dei pixel è possibile, le posizioni dei pixel sono regolate su posizioni più vicine ai confini dell'area. Altri metodi regolano l'intensità dei pixel in una posizione di confine in base alla percentuale di area del pixel all'interno del confine. Questi metodi smussano efficacemente i confini dell'area
.