SlideShare a Scribd company logo
La Rasterizzazione
Mattias Cibien
Cos’è la Rasterizzazione?
 La rasterizzazione è il processo che
consente di rappresentare un immagine su
una periferica di un computer. Consiste
nel convertire un immagine reale, in una
detta raster o bitmap, ovvero formata da
pixel.
Il problema principale è di doversi
spostare da una descrizione lineare ad
una discreta, ovvero i pixel.
Algoritmi
 Esistono due principali categorie di
algoritmi di rasterizzazione, che
permettono di rappresentare tutti gli
oggetti bidimensionali.
 Algoritmi di rasterizzazione di linea
 Algoritmi di rasterizzazione di poligono
Rasterizzazione di una linea
 Algoritmo DDA (Listato 1)
 Algoritmo di Bresenham (Listato 2)
 Algoritmo di Xiaolin Wu
DDA
 Questo algoritmo parte dall'osservazione
che la pendenza (o coefficiente angolare)
di una retta passante per due punti è
esprimibile come: m = Δy/Δx
 e che: Δy = m*Δx
 In sostanza, l'algoritmo incrementa x di
un'unità (corrispondente ad un pixel) e
calcola il nuovo valore di y.
Svantaggi del DDA
 m < 1 ( sinistra)
 m > 1 (a destra)
 Se lo applichiamo a pendenze maggiori di 1, otterremo un segmento sgranato
perché, per pendenze alte aumenta maggiormente y rispetto ad x e si creano
inevitabilmente dei vuoti, poiché y “salta” di un valore maggiore di 1 di pixel, facendo
così perdere l'effetto di continuità. Per ovviare a questo problema basta invertire le
due variabili: calcolare x partendo da y (basta infatti aggiungere un’istruzione
condizionale all’algoritmo presentato).Nonostante tutto, questo algoritmo è
scarsamente efficiente poiché, ad ogni iterazione, sono richieste operazioni in virgola
mobile come la somma (riga 9) e l'arrotondamento (riga 10).
Algoritmo Di Bresenham
La matematica dell’algoritmo di
Bresenham
 -Δx*y + Δy*x + Δx*q = 0 (Equazione di una
retta)
 M(x1+1; y1+ ½) (coordinate di M)
 d = -Δx*yM + Δy*xM + Δx*q (Valore
decisionale)
Il valore decisionale
 Se d = 0, M giace sulla retta, quindi si
sceglie indifferentemente uno dei punti
(per comodità A).
 Se d > 0, M si trova sopra la retta, quindi si
sceglie A.
 Se d < 0, M si trova sotto la retta, quindi si
sceglie B.
Scegliendo il punto A
 In questo caso il nostro punto di partenza
P è P(x1 + 1,y1), e il nostro nuovo punto
medio M è M(x1 + 2,y1 + ½).
 Invece il nuovo valore di d è:
dnew = -Δx(y1 + ½) + Δy(x1 + ½) + Δxq
 Sottraendo quindi il vecchio valore:
dnew – d = Δy
Scegliendo il punto B
 Effettuando ora lo stesso ragionamento:
dnew – d = -Δx+Δy
Riassumendo






0,
0,
1
ii
ii
i
dyd
dyxd
d
yxd 
2
1
0
Antialiasing
 L'antialiasing (abbreviato con AA) è una
tecnica per ridurre l'effetto aliasing
(tradotto: scalettatura o gradinatura) che si
presenta quando un segnale a bassa
risoluzione viene mostrato ad alta
risoluzione. L'antialiasing ammorbidisce le
linee allisciando i bordi e omogeneizzando
l'immagine.
Antialiasing su Testo
Antialiasing su Immagine 3D
Immagine tratta dal Videogame Half-Life® 2. Fornita da Tweakguides.com
Rasterizzazione di un poligono
 L'algoritmo di rasterizzazione di poligono si occupa di convertire un
poligono definito attraverso i suoi vertici in un'immagine bitmap.
Disegnare un poligono vuoto, ovvero nel quale sono definiti solo i
lati, è semplice. In questo caso si può fare un uso ricorsivo di un
algoritmo di rasterizzazione di linea, per ogni lato del poligono.
Nel caso di poligoni pieni risulta più complicato. Per riuscire in
questo intento esistono due algoritmi principali detti Flood Fill e
Scanline.
Algoritmo Flood-Fill
 L'algoritmo Flood Fill individua un punto all'interno dell'area e, a partire da
quel punto, colora tutto quello che ha intorno fermandosi solo quando
incontra un confine, ovvero un pixel di colore differente (alcuni programmi di
grafica permettono di definire quanto/come differente), in pratica si basa
sullo stesso principio dell’acqua versata in una vasca con un secchiello.
L’implementazione di questo algoritmo è estremamente semplice ed esente
da difetti; d’altro canto deve solamente colorare tutto quello che trova di
diverso da quello che gli viene assegnato.
Flood-Fill (specifica)
 Flood-fill (pixel, colore_prima, colore_nuovo):
1. Se il colore di pixel è diverso da colore_prima,
termina.
2. Imposta il colore di pixel a colore_nuovo.
3. Esegui Flood-fill (pixel ad ovest di pixel,
colore_prima, colore_nuovo).
Esegui Flood-fill (pixel a nord di pixel, colore_prima,
colore_nuovo).
Esegui Flood-fill (pixel ad est di pixel, colore_prima,
colore_nuovo).
colore_nuovo).
Esegui Flood-fill (pixel a sud di pixel, colore_prima,
colore_nuovo).
4. Termina.
E se si introduce un’ulteriore
dimensione?
Immagine tratta dal Videogame Devil May Cry® 4. Fornita da CAPCOM
La rasterizzazione
Grazie dell’attenzione

More Related Content

What's hot

Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Andrea Bidinost
 
Parallel Sparse Matrix Vector Multiplication Using CSB
Parallel Sparse Matrix Vector Multiplication Using CSBParallel Sparse Matrix Vector Multiplication Using CSB
Parallel Sparse Matrix Vector Multiplication Using CSB
David Santucci
 
Slide progetto-masl
Slide progetto-maslSlide progetto-masl
Slide progetto-masl
NiccolCerti
 
Minimiemassimi
MinimiemassimiMinimiemassimi
Minimiemassimialecellini
 
La retta interpolante
La retta interpolanteLa retta interpolante
La retta interpolante
Luigi Pasini
 
Momenti di inerzia
Momenti di inerziaMomenti di inerzia
Momenti di inerzia
valter .
 
Derivate
DerivateDerivate
Ottimizzazione
OttimizzazioneOttimizzazione
Ottimizzazione
Damiano D'Amico
 
Workshop Matlab BITS Avanzato
Workshop Matlab BITS AvanzatoWorkshop Matlab BITS Avanzato
Workshop Matlab BITS Avanzato
Emmanuele Somma
 
Asintoti
AsintotiAsintoti
Asintoti
Luigi Pasini
 
Ricerca Operativa E Programmazione Lineare
Ricerca Operativa E Programmazione LineareRicerca Operativa E Programmazione Lineare
Ricerca Operativa E Programmazione Lineare
zed428
 
Il Mondo dell'Ottimizzazione
Il Mondo dell'OttimizzazioneIl Mondo dell'Ottimizzazione
Il Mondo dell'Ottimizzazione
Stefano Costanzo
 
Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14francoric
 
Asintoti
AsintotiAsintoti
Derivate - esercizi con soluzioni
Derivate - esercizi con soluzioniDerivate - esercizi con soluzioni
Derivate - esercizi con soluzioni
Cristina Scanu
 
Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.
Luigi Pasini
 
Lezione 2 alberi e differenze finite
Lezione 2   alberi e differenze finiteLezione 2   alberi e differenze finite
Lezione 2 alberi e differenze finiteGiovanni Della Lunga
 
Metodi numerici
Metodi numericiMetodi numerici
Metodi numerici
Giovanni Della Lunga
 
La derivata
La derivataLa derivata

What's hot (20)

Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
 
Parallel Sparse Matrix Vector Multiplication Using CSB
Parallel Sparse Matrix Vector Multiplication Using CSBParallel Sparse Matrix Vector Multiplication Using CSB
Parallel Sparse Matrix Vector Multiplication Using CSB
 
Slide progetto-masl
Slide progetto-maslSlide progetto-masl
Slide progetto-masl
 
Minimiemassimi
MinimiemassimiMinimiemassimi
Minimiemassimi
 
La retta interpolante
La retta interpolanteLa retta interpolante
La retta interpolante
 
Momenti di inerzia
Momenti di inerziaMomenti di inerzia
Momenti di inerzia
 
Derivate
DerivateDerivate
Derivate
 
Ottimizzazione
OttimizzazioneOttimizzazione
Ottimizzazione
 
Workshop Matlab BITS Avanzato
Workshop Matlab BITS AvanzatoWorkshop Matlab BITS Avanzato
Workshop Matlab BITS Avanzato
 
Asintoti
AsintotiAsintoti
Asintoti
 
Ricerca Operativa E Programmazione Lineare
Ricerca Operativa E Programmazione LineareRicerca Operativa E Programmazione Lineare
Ricerca Operativa E Programmazione Lineare
 
Il Mondo dell'Ottimizzazione
Il Mondo dell'OttimizzazioneIl Mondo dell'Ottimizzazione
Il Mondo dell'Ottimizzazione
 
Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14
 
Asintoti
AsintotiAsintoti
Asintoti
 
Derivate - esercizi con soluzioni
Derivate - esercizi con soluzioniDerivate - esercizi con soluzioni
Derivate - esercizi con soluzioni
 
Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.
 
Lezione 2 alberi e differenze finite
Lezione 2   alberi e differenze finiteLezione 2   alberi e differenze finite
Lezione 2 alberi e differenze finite
 
Le derivate (sintesi)
Le derivate (sintesi)Le derivate (sintesi)
Le derivate (sintesi)
 
Metodi numerici
Metodi numericiMetodi numerici
Metodi numerici
 
La derivata
La derivataLa derivata
La derivata
 

Viewers also liked

annelouise lettrerecomm
annelouise lettrerecommannelouise lettrerecomm
annelouise lettrerecomm
Jedidiah Silud
 
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
Fernik
 
Architup - Organization Profile
Architup - Organization ProfileArchitup - Organization Profile
Architup - Organization Profile
Zain Ali
 
it transformation
it transformationit transformation
it transformation
Christina O'Callaghan
 
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICABEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
Majune Kraido Socrates
 
ppsx2.ppsx
ppsx2.ppsxppsx2.ppsx
ppsx2.ppsx
Bhavanislide2
 
Tarea 5 producto digital
Tarea 5 producto digitalTarea 5 producto digital
Tarea 5 producto digital
Cinthia Alvarado Nuñez
 
Dreamz Suvidha Apartments Sarjapur Road
Dreamz Suvidha Apartments Sarjapur RoadDreamz Suvidha Apartments Sarjapur Road
Dreamz Suvidha Apartments Sarjapur Road
Dreamz Infra
 
Final Presentation upload
Final Presentation uploadFinal Presentation upload
Final Presentation upload
Zain Ali
 
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
Fernik
 
Dissertation FINAL
Dissertation FINALDissertation FINAL
Dissertation FINAL
Joe Slater BSc (Hons)
 
Изменения в нормативном регулировании деятельности ломбардов
Изменения в нормативном регулировании деятельности ломбардовИзменения в нормативном регулировании деятельности ломбардов
Изменения в нормативном регулировании деятельности ломбардов
Sro-lombard
 
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Saikrishna Tanguturu
 

Viewers also liked (13)

annelouise lettrerecomm
annelouise lettrerecommannelouise lettrerecomm
annelouise lettrerecomm
 
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
Potenciometro de fio sextuplo eixo aluminio 4 watts de 5r ate 50K FK 608-1
 
Architup - Organization Profile
Architup - Organization ProfileArchitup - Organization Profile
Architup - Organization Profile
 
it transformation
it transformationit transformation
it transformation
 
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICABEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
BEGETTING THE IMPARATIVE DEVIANT - TUWAKUZE AFRICA
 
ppsx2.ppsx
ppsx2.ppsxppsx2.ppsx
ppsx2.ppsx
 
Tarea 5 producto digital
Tarea 5 producto digitalTarea 5 producto digital
Tarea 5 producto digital
 
Dreamz Suvidha Apartments Sarjapur Road
Dreamz Suvidha Apartments Sarjapur RoadDreamz Suvidha Apartments Sarjapur Road
Dreamz Suvidha Apartments Sarjapur Road
 
Final Presentation upload
Final Presentation uploadFinal Presentation upload
Final Presentation upload
 
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
Potenciometro de fio eixo latao 10mm 4 watts de 5R ate 50K FK 603-7
 
Dissertation FINAL
Dissertation FINALDissertation FINAL
Dissertation FINAL
 
Изменения в нормативном регулировании деятельности ломбардов
Изменения в нормативном регулировании деятельности ломбардовИзменения в нормативном регулировании деятельности ломбардов
Изменения в нормативном регулировании деятельности ломбардов
 
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
Computer Graphics - Bresenham's line drawing algorithm & Mid Point Circle alg...
 

Similar to La rasterizzazione

Lez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambienteLez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambiente
Margherita Di Leo
 
Evoluzione rendering
Evoluzione renderingEvoluzione rendering
Evoluzione rendering
Yuma Noise
 
Umano vs Computer: un esempio pratico
Umano vs Computer: un esempio praticoUmano vs Computer: un esempio pratico
Umano vs Computer: un esempio pratico
Francesco Sblendorio
 
Reti Logic
Reti LogicReti Logic
Reti Logic
carmine ricca
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivatiGiovanni Della Lunga
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
profman
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Elliptic Curve Method di Lenstra
Elliptic Curve Method di LenstraElliptic Curve Method di Lenstra
Elliptic Curve Method di Lenstra
peppespe
 
Metodo di Newton
Metodo di NewtonMetodo di Newton
Metodo di Newton
Sergio Porcu
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Datiguest60e9511
 
Invarianza di un politopo
Invarianza di un politopoInvarianza di un politopo
Invarianza di un politopo
Vittoriano Muttillo
 
Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Jose Aldo Ruiz Ycanaque
 
Metodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiMetodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessi
Lino Possamai
 
An Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingAn Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingTiziana Spata
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a MatlabMarco Suma
 
Correzioni Esercizioverifica300109
Correzioni Esercizioverifica300109Correzioni Esercizioverifica300109
Correzioni Esercizioverifica300109
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
 
Phd Thesis Dissertation (Italian)
Phd Thesis Dissertation (Italian)Phd Thesis Dissertation (Italian)
Phd Thesis Dissertation (Italian)Salvatore Nicotra
 

Similar to La rasterizzazione (20)

Lez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambienteLez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambiente
 
Evoluzione rendering
Evoluzione renderingEvoluzione rendering
Evoluzione rendering
 
Umano vs Computer: un esempio pratico
Umano vs Computer: un esempio praticoUmano vs Computer: un esempio pratico
Umano vs Computer: un esempio pratico
 
Reti Logic
Reti LogicReti Logic
Reti Logic
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivati
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
 
Lezione 3 metodo monte carlo
Lezione 3   metodo monte carloLezione 3   metodo monte carlo
Lezione 3 metodo monte carlo
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Elliptic Curve Method di Lenstra
Elliptic Curve Method di LenstraElliptic Curve Method di Lenstra
Elliptic Curve Method di Lenstra
 
Metodo di Newton
Metodo di NewtonMetodo di Newton
Metodo di Newton
 
Presentazione
PresentazionePresentazione
Presentazione
 
2 Rappresentazione Dei Dati
2   Rappresentazione Dei Dati2   Rappresentazione Dei Dati
2 Rappresentazione Dei Dati
 
Invarianza di un politopo
Invarianza di un politopoInvarianza di un politopo
Invarianza di un politopo
 
Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02
 
Metodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiMetodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessi
 
An Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingAn Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite Matching
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a Matlab
 
Correzioni Esercizioverifica300109
Correzioni Esercizioverifica300109Correzioni Esercizioverifica300109
Correzioni Esercizioverifica300109
 
Phd Thesis Dissertation (Italian)
Phd Thesis Dissertation (Italian)Phd Thesis Dissertation (Italian)
Phd Thesis Dissertation (Italian)
 
Tutorial Matlab 2009
Tutorial Matlab 2009Tutorial Matlab 2009
Tutorial Matlab 2009
 

La rasterizzazione

  • 2. Cos’è la Rasterizzazione?  La rasterizzazione è il processo che consente di rappresentare un immagine su una periferica di un computer. Consiste nel convertire un immagine reale, in una detta raster o bitmap, ovvero formata da pixel. Il problema principale è di doversi spostare da una descrizione lineare ad una discreta, ovvero i pixel.
  • 3. Algoritmi  Esistono due principali categorie di algoritmi di rasterizzazione, che permettono di rappresentare tutti gli oggetti bidimensionali.  Algoritmi di rasterizzazione di linea  Algoritmi di rasterizzazione di poligono
  • 4. Rasterizzazione di una linea  Algoritmo DDA (Listato 1)  Algoritmo di Bresenham (Listato 2)  Algoritmo di Xiaolin Wu
  • 5. DDA  Questo algoritmo parte dall'osservazione che la pendenza (o coefficiente angolare) di una retta passante per due punti è esprimibile come: m = Δy/Δx  e che: Δy = m*Δx  In sostanza, l'algoritmo incrementa x di un'unità (corrispondente ad un pixel) e calcola il nuovo valore di y.
  • 6. Svantaggi del DDA  m < 1 ( sinistra)  m > 1 (a destra)  Se lo applichiamo a pendenze maggiori di 1, otterremo un segmento sgranato perché, per pendenze alte aumenta maggiormente y rispetto ad x e si creano inevitabilmente dei vuoti, poiché y “salta” di un valore maggiore di 1 di pixel, facendo così perdere l'effetto di continuità. Per ovviare a questo problema basta invertire le due variabili: calcolare x partendo da y (basta infatti aggiungere un’istruzione condizionale all’algoritmo presentato).Nonostante tutto, questo algoritmo è scarsamente efficiente poiché, ad ogni iterazione, sono richieste operazioni in virgola mobile come la somma (riga 9) e l'arrotondamento (riga 10).
  • 8. La matematica dell’algoritmo di Bresenham  -Δx*y + Δy*x + Δx*q = 0 (Equazione di una retta)  M(x1+1; y1+ ½) (coordinate di M)  d = -Δx*yM + Δy*xM + Δx*q (Valore decisionale)
  • 9. Il valore decisionale  Se d = 0, M giace sulla retta, quindi si sceglie indifferentemente uno dei punti (per comodità A).  Se d > 0, M si trova sopra la retta, quindi si sceglie A.  Se d < 0, M si trova sotto la retta, quindi si sceglie B.
  • 10. Scegliendo il punto A  In questo caso il nostro punto di partenza P è P(x1 + 1,y1), e il nostro nuovo punto medio M è M(x1 + 2,y1 + ½).  Invece il nuovo valore di d è: dnew = -Δx(y1 + ½) + Δy(x1 + ½) + Δxq  Sottraendo quindi il vecchio valore: dnew – d = Δy
  • 11. Scegliendo il punto B  Effettuando ora lo stesso ragionamento: dnew – d = -Δx+Δy
  • 13. Antialiasing  L'antialiasing (abbreviato con AA) è una tecnica per ridurre l'effetto aliasing (tradotto: scalettatura o gradinatura) che si presenta quando un segnale a bassa risoluzione viene mostrato ad alta risoluzione. L'antialiasing ammorbidisce le linee allisciando i bordi e omogeneizzando l'immagine.
  • 15. Antialiasing su Immagine 3D Immagine tratta dal Videogame Half-Life® 2. Fornita da Tweakguides.com
  • 16. Rasterizzazione di un poligono  L'algoritmo di rasterizzazione di poligono si occupa di convertire un poligono definito attraverso i suoi vertici in un'immagine bitmap. Disegnare un poligono vuoto, ovvero nel quale sono definiti solo i lati, è semplice. In questo caso si può fare un uso ricorsivo di un algoritmo di rasterizzazione di linea, per ogni lato del poligono. Nel caso di poligoni pieni risulta più complicato. Per riuscire in questo intento esistono due algoritmi principali detti Flood Fill e Scanline.
  • 17. Algoritmo Flood-Fill  L'algoritmo Flood Fill individua un punto all'interno dell'area e, a partire da quel punto, colora tutto quello che ha intorno fermandosi solo quando incontra un confine, ovvero un pixel di colore differente (alcuni programmi di grafica permettono di definire quanto/come differente), in pratica si basa sullo stesso principio dell’acqua versata in una vasca con un secchiello. L’implementazione di questo algoritmo è estremamente semplice ed esente da difetti; d’altro canto deve solamente colorare tutto quello che trova di diverso da quello che gli viene assegnato.
  • 18. Flood-Fill (specifica)  Flood-fill (pixel, colore_prima, colore_nuovo): 1. Se il colore di pixel è diverso da colore_prima, termina. 2. Imposta il colore di pixel a colore_nuovo. 3. Esegui Flood-fill (pixel ad ovest di pixel, colore_prima, colore_nuovo). Esegui Flood-fill (pixel a nord di pixel, colore_prima, colore_nuovo). Esegui Flood-fill (pixel ad est di pixel, colore_prima, colore_nuovo). colore_nuovo). Esegui Flood-fill (pixel a sud di pixel, colore_prima, colore_nuovo). 4. Termina.
  • 19. E se si introduce un’ulteriore dimensione? Immagine tratta dal Videogame Devil May Cry® 4. Fornita da CAPCOM