Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSamuele Moro Modificato 10 anni fa
1
1 Scan conversione di poligoni Daniele Marini
2
2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione: se p è interno ogni semiretta da p interseca il poligono un numero dispari di volte se p è esterno le intersezioni sono pari
3
3
4
4 OpenGL OGL garantisce la scan conversione di poligoni convessi creare modelli solo convessi triangolare (o tassellare) non troppo sottili o troppo lunghi più equilateri possibile (Delaunay)
5
5 Tassellazione v1v2 v3v4 v5v6 v7 v1v2 v3v4 v5 v6 v7
6
6 Scan Conversione e z-buffer Vertici e normali non clippate, trasformate per proiezione prospettica, (z esiste ancora!), computo del colore ai vertici …. resta da fare: Proiezione ortografica, rimozione superfici nascoste, shading: integrato tutto in z-buffer! Si procede per linee di scansione per ogni poligono, incrementando y e x in coordinate NDC e incrementando z in funzione dellequazione del piano
7
7 A ogni incremento di x e y si procede con interpolazione bilineare (Gouraud o Phong) Durante questa fase si possono applicare texture.
8
8 Metodi alternativi Flood fill (flat shading) –Scan conversione dei bordi con Brasenham –Dato un punto iniziale (seme) esplorare ricorsivamente il vicinato per decidere se i pixel sono esterni o interni Scan line –Itera per y decrescenti (crescenti) decidi i poligoni attivi e il test interno-esterno
9
9 Flood fill flood-fill(int x, int y); { if(read_pixel(x,y)==WHITE) { write_pixel(x,y,BLACK); flood_fill(x-1,y); flood_fill(x+1,y); flood_fill(x,y-1); flood_fill(x,y+1); }
10
10 Scan Line La regola interno-esterno permette di determinare span (tratti), tutti i pixel di uno span assumono lo stesso colore (o vengono interpolati per shading) I poligoni si organizzano in una lista di poligoni attivi e i bordi di un poligono attivo vengono organizzati in lista di bordi attivi. 3a lista di poligoni attivi viene costantemente agiornata inserendoli o togliendoli da una struttura dati (bucket - secchiello).
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.