Rendering: gli algoritmi

Rubrica: Rendering -2-
Titolo o argomento: Gli algoritmi di rendering
Ray tracing

Basato sul percorso compiuto dalla luce, ne segue i raggi attraverso l’interazione con le superfici. Lavora a ritroso studiando e tracciando ed ipotizzando il percorso che luce può aver seguito prima di colpire una lente immaginaria. Le informazioni elaborate per ogni scena vengono acquisite mentre l’algoritmo spara dei raggi contro ogni oggetto della scena stessa. La riflessione, la rifrazione, l’assorbimento del raggio vengono calcolati nel momento in cui il raggio sparato dall’algoritmo colpisce un oggetto.

Radiosity

Un algoritmo che cerca di simulare la luce in modo realistico. Il fascio di luce che colpisce un oggetto viene in parte assorbito e in parte riflesso. Quando la luce si riflette si diffonde nell’ambiente della scena illuminando gli altri oggetti che incontra (luce riflessa). A loro volta gli oggetti illuminati con la luce riflessa possono diventare emettitori di luce riflessa o meno in base alle loro caratteristiche fisiche influenzando ovviamente la scena. Le caratteristiche della scena influenzate sono il colore e l’intensità della luce. Questo algoritmo prende in considerazione solo i percorsi che partono da una sorgente e vengono riflessi un determinato numero di volte prima di raggiungere l’occhio della telecamera.

Path tracing

Si tratta di un’estensione del Ray tracing che permette di ottenere effetti di illuminazione globale come i riflessi diffusi (color bleending) e le caustiche. In questo algoritmo ogni volta che la luce incontra una superficie lambertiana* (o diffusa) in un generico punto, viene lanciato un nuovo raggio che parte dal suddetto punto verso una direzione casuale. Viene poi effettuata in ogni punto una somma tra l’illuminazione del pixel preso in considerazione e l’illuminazione proveniente dalle intersezioni appena descritte.

*Superficie Lambertiana:

Una superficie lambertiana è una superficie ideale che riflette l’energia incidente in modo uguale in tutte le direzioni, per cui variando il punto di vista la sua apparenza non cambia. Ingrandendo un’area della superficie si può notare che essa è scabra (ruvida, frastagliata) quindi non vi sono angoli di riflessione ben definiti. Un raggio di luce che colpisce una superficie lambertiana si riflette seguendo la legge di Lambert sulla riflessione diffusa.

Ambient occlusion

Si tratta di una tecnica che incrementa il realismo della scena simulando l’attenuazione della luce negli ambienti chiusi. Il motivo principale per cui si sceglie questo algoritmo risiede nella velocità, ragione per cui nelle animazioni lo si preferisce alla più accurata (ma lenta) alternativa: Global illumination. Si renderizza quindi una scena in “chiaro scuro” e solo successivamente verrà effettuato il “Compositing” di cui parleremo in seguito in questa rubrica. 

Photon mapping

Ulteriore estensione del calcolo Ray tracing nel quale, invece di effettuare solo il percorso a ritroso della luce (dall’oggetto alla sorgente), viene effettuato anche calcolo del percorso naturale della luce (dalla sorgente all’oggetto). L’algoritmo salverà inoltre quella che viene definita MAPPA DEI FOTONI.

Metropolis light transport

Algoritmo che costruisce dei percorsi modificabili  tra l’occhio della camera di ripresa e la fonte luminosa. Vengono creati dei nodi che possono essere modificati e addirittura aggiunti a quelli calcolati dall’algoritmo stesso.