Vai al contenuto
Home » Notes » Appunti Clipping

Appunti Clipping

A cosa serve il clipping?

Considerando una piramide di vista (che è semplicemente il cono di visibilità limitata che ha l’osservatore nell’area che riesce a vedere) , vogliamo individuare una tecnica per disegnare anche parti o parziali di geometrie. Si pensi ad esempio a un rettangolo che per metà è dentro alla piramide di vista e per metà no.

Clipping di punti

Quando parliamo di clipping di punti ci riferiamo quindi alla tecnica per capire se un punto deve essere o meno disegnato nella window di visibilità.

Punti in 2D

Nel caso 2D è sufficiente verificare se il punto è o meno dentro i bordi.

Punti in 3D

Nel caso 3D è analogo al caso in due dimensioni.

Clipping di segmenti

Segmenti in 2D

Nel caso di clipping di linee o segumenti le cose sono più complesse e si usa l’algoritmo di Cohen Sutherland, uno dei primissimi pioneri degli schermi digitali.

Come funziona l’algoritmo di Cohen Sutherland? L’algoritmo funziona dividendo l’area rettangolare in 9 regioni, numerate con un codice binario (0000 per l’area centrale).

bit4   | bit3  | bit2  | bit1
top    | bttm  | right | left

Prendiamo gli estremi del segmento (p0 p1), li associamo ai codici a 4 bit (chiamiamoli c0 c1), e con una sola operazione logica di AND e OR tra i codici, possiamo subito capire se una linea è scartata o accettata.

Infatti, testando:

c0 AND c1 != 0 linea scartata
c0 OR  c1  = 0 linea accettata

Per casi più complessi, ovvero di linee a metà tra l’area di visibilità e la non visibilità, si spezza la linea su un lato e si testa di nuovo, fino a che non è possibile avere una risposta scartata o accettata per ogni sotto segmento.

Questo algoritmo può essere esteso alla dimensione 3D sfruttando un codice segmento a 6 bit.

Clipping di Poligoni

E cosa dire a proposito del clipping di poligoni? Bhe, è più complicato perchè banalmente un triangolo a metà fra l’area di visibilità e l’area di non visibilità potrebbe dove essere rappresentato come un poligono a 7 lati!

L’algoritmo utilizzato per il clipping di poligoni è l’algoritmo di Sutherland-Hodgman.

L’algoritmo di Sutherlan Hodgman in breve

– considera ogni lato della window individualmente
– fa clip del poligono rispetto a quel lato
– dopo aver processato ognuno dei lati, costruisce il risultato finale

L’algoritmo di Sutherland Hodgman può essere generalizzato rispetto ad un View Volume 3D, dove la window quadrata 2D diventa un frustum 3D.

Questa parte così complessa non è demandata al programmatore grafico ma è implementata on hardware sulle schede grafiche.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *