Rendering e applicazioni

Rilievo frattale, normali e luce

Un frattale dall’aspetto tridimensionale non richiede necessariamente un frattale volumetrico. Un campo scalare bidimensionale può essere interpretato come altezza, differenziato in normali e ombreggiato come una superficie.

Rilievo frattale tridimensionale rosa su sfondo nero
Rilievo 3D in MandelKit: altezza, normali e illuminazione traducono i dati frattali scalari in una lettura spaziale.Immagine: Björn Kindler / MandelKit · MandelKit · Eigene Darstellung · Own work

Scegliere il campo dell’altezza

L’iterazione liscia, il potenziale, la distanza o un effetto composito possono determinare l’altezza. La scala non lineare e il clamping determinano se i dettagli fini del contorno diventano una cresta, un altopiano o del rumore. Il campo scelto rappresenta un’interpretazione artistica piuttosto che un terreno fisico.

Il numero di iterazioni, il potenziale liscio e i campi di distanza producono altezze molto diverse. Le iterazioni grezze creano gradini, il potenziale continuo crea terrazze più morbide, mentre i campi di distanza creano creste di confine ben definite. L’altezza dovrebbe essere normalizzata prima dell’illuminazione e la sua scala salvata. Altrimenti, una variazione del gradiente può alterare il rilievo anche se l’utente si aspetta solo un cambiamento di colore.

Normali dai campioni adiacenti

Le differenze finite stimano le pendenze orizzontali e verticali. Il loro prodotto vettoriale o la formula equivalente del gradiente fornisce una direzione normale. Il passo di campionamento deve seguire la scala dei pixel in uscita; in caso contrario, lo zoom profondo o l’esportazione ad alta risoluzione modificano la nitidezza apparente.

Le normali derivano dalle differenze tra campioni di altezza adiacenti. La loro intensità dipende dalla spaziatura dei pixel e dallo zoom; una differenza fissa non ridimensionata fa apparire lo stesso rilievo più ripido a un’altra risoluzione. Le differenze centrali sono più simmetriche di quelle unilaterali. I bordi delle tessere necessitano di campioni di alone per evitare cuciture di illuminazione.

Luce direzionale e puntiforme

La luce direzionale utilizza ovunque un’unica direzione, come una sorgente lontana. La luce puntiforme dipende dal vettore e dalla distanza da ogni punto della superficie e può attenuarsi. Termini quali «ambientale», «diffusa», «speculare» e «di tipo occlusivo» dovrebbero indicare controlli distinti e stati attivi.

La luce direzionale ha una direzione per ogni pixel. Anche la luce puntiforme necessita di una posizione e di una distanza rispetto a ciascun punto della superficie, il che determina variazioni di direzione e attenuazione. Un interruttore dell’interfaccia utente che modifica solo la propria etichetta, mentre lo shader continua a leggere una direzione uniforme, non potrà mai attivare la modalità «Puntiforme». Il modello di stato, il layout uniforme e il ramo dello shader devono avere lo stesso tipo di luce.

Fonti e approfondimenti

Questo articolo riassume le seguenti fonti specialistiche utilizzando la formulazione originale. Consultato e revisionato dal punto di vista editoriale 12 agosto 2026.

  1. The Science of Fractal ImagesSpringer
  2. Metal overviewApple Developer Documentation