Specular highlight

Per specular highlight o più brevemente highlight, si intende la macchia luminosa che appare su un oggetto lucido quando viene illuminato. In italiano tale termine viene tradotto, nella forma più letterale, con alta luce[1], oppure con punto luce[2] o lumeggiatura[3]. Gli specular highlight sono importanti nella computer grafica 3D, in quanto forniscono un segno visivo forte che suggerisce la forma di un oggetto e la sua posizione rispetto a una sorgente luminosa nella scena.

Ognuna di queste sfere mostra due punti luce bianchi

La riflessione speculare modifica

 
Figura 1 - L'intensità della riflessione speculare è relativa all'angolo fra la direzione dell'osservatore V e il vettore di riflessione diretta R, corrispondente alla direzione del vettore della luce L

La figura 1 mostra il vettore normale   in un punto   su una superficie, il vettore di direzione verso l'osservatore  , il vettore di direzione della luce  , e il vettore di riflessione diretta   calcolato usando l'equazione[4]

 

I punti luce sono più intensi quando la direzione di riflessione   punta verso l'osservatore, e decresce di intensità quando aumenta l'angolo fra   e la direzione dell'osservatore  . Un modello che produce una resa credibile dei punti luce (ma che non ha alcuna base fisica reale), usa l'espressione[4]

 

per calcolare il contributo speculare da una singola sorgente luminosa, dove   è il colore di riflessione speculare della superficie,   è l'intensità della luce incidente, e   è detto esponente speculare. L'espressione   è un'espressione booleana che calcola 1 se vera, o altrimenti 0. Questo previene che i punti luce si mostrino su punti della superficie che guardano lontano dalla sorgente luminosa.

L'esponente speculare controlla la nettezza dei punti luce. Un piccolo valore di   produce un punto luce netto che si dissolve per una distanza relativamente larga, invece un grande valore di   produce un punto luce che si dissolve velocemente quando i vettori   e   divergono (figura 2).

 
Figura 2 - L'esponente speculare m controlla la nettezza del punto luce visibile sulla superficie. Da sinistra a destra, gli esponenti speculari usati per ombreggiare i toroidi sono 2, 10, 50, 100. Il colore della riflessione speculare S è bianco. Rendering realizzato con Blender, con shader diffuso Lambert; shader speculare Blinn; parametri di hardness 2, 10, 50, 100; IOR a 10.000

Le microsfaccettature modifica

Il termine speculare significa che la luce è perfettamente riflessa, in un modo simile allo specchio, dalla sorgente luminosa all'osservatore. La riflessione speculare è visibile solo quando la normale della superficie è orientata precisamente a metà strada fra la direzione della luce incidente e la direzione dell'osservatore; questa è chiamata direzione ad angolo mediano perché biseziona (divide a metà) l'angolo fra la luce incidente e l'osservatore. Perciò una superficie specularmente riflettente mostrerà un punto luce come immagine perfettamente netta e riflessa di una sorgente luminosa. Tuttavia, molti oggetti lucidi mostrano punti luce sfocati. Questo può essere spiegato con l'esistenza di microsfaccettature[5]. Assumiamo che le superfici che non sono perfettamente lisce siano composte da molte sfaccettature davvero piccole, ognuna rappresentato un perfetto riflettore speculare.

 
Figura 3 - L'angolo fra il vettore normale N e l'halfway vector H può essere anche usato per determinare l'intensità speculare

Dato un halfway vector   (il vettore che giace esattamente a metà strada fra il vettore di direzione dell'osservatore   e il vettore di direzione della luce  [4], vedi figura 3) , la funzione di distribuzione delle microsfaccettature (microfacet distribution function) restituisce la frazione di microsfaccettature il cui vettore normale punta lungo la direzione  . Per superfici ruvide, la funzione di distribuzione di Beckmann[6] è data da

 

che descrive la distribuzione dell'orientamento delle microsfaccettature in termini di inclinazione della media di radice quadrata  . Valori grandi di   corrispondono a superfici ruvide che perciò producono un'ampia distribuzione di orientamenti delle microsfaccettature. Valori più piccoli di   corrispondono a superfici più lisce e producono relativamente distribuzioni esigue, che presentano una specularità più netta.

I punti luce sono più intensi quando   punta nella direzione del vettore normale  .[4]

La funzione data dall'equazione sopra è isotropica, ciò che è invariante sotto la rotazione attorno al vettore normale  .[4] Purché l'angolo fra la direzione dell'osservatore   e la direzione della luce   rimanga costante, e l'angolo fra ognuno di questi vettori e il vettore normale rimanga anch'esso costante, la distribuzione delle microsfaccettature rimane allora costante. Molte superfici, tuttavia, possiedono differenti gradi di ruvidità per differenti direzioni. Queste superfici sono dette riflettori anisotropici e includono materiali come per esempio metallo spazzolato, capelli, e alcuni tipi di tessuto.[4]

Possiamo modificare la funzione di distribuzione delle microsfaccettature per fornire la spiegazione della ruvidità delle superfici anisotropiche, cambiando l'equazione soprascritta in

 

dove   è un vettore bidimensionale di ruvidità,   è la tangente alla superficie allineata alla direzione nella quale la ruvidità è  , e   è la proiezione normalizzata dell'halfway vector   sul piano tangente:

 

Note modifica

  1. ^ Francesco Siddi, Grafica 3D con Blender.
  2. ^ Dizionario Online Wordreference.com, su wordreference.com.
  3. ^ Dizionario ilRagazzini 2017, Zanichelli.
  4. ^ a b c d e f Eric Lengyel, Mathematics for 3D Game Programming and Computer Graphics, 3ª ed..
  5. ^ Pagina sugli Specular Shaders del Blender Reference Manual [collegamento interrotto], su docs.blender.org.
  6. ^ Petr Beckmann, André Spizzichino, The Scattering of Electromagnetic Waves from Rough Surfaces, 1963.

Bibliografia modifica

Voci correlate modifica