La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:

Presentazioni simili


Presentazione sul tema: "1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:"— Transcript della presentazione:

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).


Scaricare ppt "1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:"

Presentazioni simili


Annunci Google