Clipping di linee
Il clipping e la pratica di rimuovere dalla pipeline di rendering gli oggetti che non fanno parte della viewing window in modo da ridurre il processo ai soli elementi necessari e migliorare le performance della computazione
Algoritmo di Cohen-Sutherland
la viewport viene estesa per includere anche le zone esterne alla viewport, alle zone viene applicata un etichetta codificata per mezzo di un valore binario
i bit a specificano a quanti e a quali lati della viewport il vertice che si trova li e esterno
di conseguenza codificati i vertici in si ha che
In caso di linee che intersecano più piani si sfrutta la forma parametrica per spezzarle in più segmenti, questo comporta un costo computazionale aggiuntivo
Estensione al 3d (rispetto a un parallelepipedo)
Data una linea come segue
si identifica il valore del parametro che fa eccedere la linea rispetto a una data coordinata (in questo caso la coordinata )
Si determinano i valori delle altre coordinate di conseguenza identificando il punto di collisione con la viewport
si procede cosi per tutti e gli assi
Clipping di poligoni
Il clipping dei singoli poligoni e più complicato che nel caso delle singole linee in quanto non e detto che dal clipping di un poligono risulti un solo poligono o un poligono con lo stesso numero di vertici
in questo caso ci sono 2 poligoni risultanti :(
Stutherland-Hodgman clipping
L’idea di base e quella di considerare i lati della viewport singolarmente nella fase di clipping
sequenceDiagram participant algorithm loop viewport sides loop vertex algorithm ->> algorithm: compute clipping wrt viewport side for the given poligon side algorithm ->> algorithm: add new vertex if necessary end end
L’algoritmo cosi definito può essere parallelizzato in quanto per computare un lato del poligono non e necessario computare i precedenti
GENERALIZZAZIONE AL CASO 3D
L’algoritmo puo essere generalizzato al 3D, dato il parallelepipedo di vista (frustum) viene prima escluse le parti del poligono considerando il front e back plane,
Successivamente si effettua la proiezione prospettica e si procede al clipping rispetto alle altre facce