Salve, mi potete spiegare in parole semplici alcune tecniche di rendering grafico come l’algoritmo di Wu Tang Phòng, il metodo z-buffer e il Ray tracing? Quale metodo di rendering grafico risulta il migliore comunemente? E soprattutto cosa significa interpolazione a livello di grafica? Grazie

Parlare di interpolazione a livello di grafica è un pò troppo generica come affermazione. Si può parlare di interpolazione quando, per esempio, si disegna un insieme di punti e si cerca di disegnare una linea retta che
passa per quei punti in modo da completare il disegno dove non ci sono punti.

La computer grafica produce immagini a partire da numeri nel seguente modo:

1.. si inserisce il modello geometrico in 3d degli oggetti
2.. si inserisce l’informazione sulla posizione, sul tipo e la direzione delle luci
3.. si inserisce la descrizione delle tessiture che riempiono l’oggetto

A questo punto interviene la fase di rendering per unire tutti questi numeri e produrre l’immagine cercando un risultato realistico, ovvero quanto più possibile indistinguibile da una immagine reale.

Esistono tante tecniche di rendering, nessuna è migliore delle altre, la scelta dipende dal tipo di immagine che si vuole ottenere, dalle risorse di tempo e di calcolo disponibili. Le tecniche si possono suddivire in:

1. metodi per creare le luci

  • Wire-frame
  • Painter’s algorithm
  • Z-Buffer
  • Ray Tracing
  • Radiosity

2. metodi per determinare i colori e le sfumature

  • Flat Shading
  • Linear (Gourand) Shading

Il metodo z-buffer lavora in questo modo:

1.. ad ogni pixel è associato un Z-valore che è la distanza dall’occhio del punto dell’oggetto rappresentato dal pixel
2.. lo Z-buffer è usato per memorizzare tutti gli Z-valori
3.. prima che un poligono venga disegnato tutti i valori in Zbuffer sono posti ad un valore massimo che indica la distanza massima dall’occhio
4.. prima che un nuovo Z-valore di un pixel venga scritto nel Z-buffer ogni pixel memorizzato nel Z-buffer viene confrontato con il nuovo Z-valore
5.. se il nuovo Z-valore rappresenta un valore minore, cioè un pixel più vicino allo occhio, viene scritto nel Z-buffer

Lo Z-buffer è indipendente dall’ordine degli oggetti, può essere calcolato con algoritmi molto veloci, però non riesce a simulare effetti fisici della luce come riflessione, ombre realistiche ecc. Per risolvere i problemi del Z-buffer si usa il ray tracing, ovvero il tracciamento dei raggi di luce, due tecniche.

Nella Forward Propagation un raggio di luce parte dalla sorgente di luce, quando il raggio incontra un oggetto vengono calcolati la rifrazione e la riflessione, questi calcoli vengono eseguiti molte volte secondo la quantità degli oggetti nella scena, problema è che i raggi che arrivato all’occhio oppure alla camera sono pochi rispetto ai raggi che vengono calcolati, e calcolare tutti i raggi richiede troppo tempo.

Nella Back Propagation un raggio di luce è sparato dal punto in cui è collocato l’occhio verso la direzione di vista per calcolare il colore del pixel, questo processo non si ferma quando il primo oggetto viene incontrato, se un
oggetto che viene incontrato non è una sorgente di luce molti raggi ripartono dallo oggetto in ogni direzione da dove la luce potrebbe venire.

L’algoritmo di Phong produce immagini in cui le superfici curve hanno un aspetto molto naturale, anche se il reticolo di base è sfaccettato in maniera grossolana. L’algoritmo rappresenta correttamente i riflessi luminosi sulle superfici lucide e tiene conto delle ombre riportate. La radiazione luminosa si considera emessa da sorgenti puntiformi. Il colore di un punto arbitrario su una superficie viene calcolato utilizzando quattro vettori di modulo unitario. La riflessione della radiazione luminosa viene modellata in termini di tre componenti additive, diffusa, speculare e ambiente, ciascuna modellata separatamente.