Specular highlight
# 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, oppure con punto luce o lumeggiatura. 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.

## La riflessione speculare

La figura 1 mostra il vettore normale ${\text{N}}$ in un punto ${\text{Q}}$ su una superficie, il vettore di direzione verso l'osservatore ${\text{V}}$, il vettore di direzione della luce ${\text{L}}$, e il vettore di riflessione diretta ${\text{R}}$ calcolato usando l'equazione

${\begin{aligned}{\text{R}}&={\text{L}}-2\perp _{\text{N}}{\text{L}}\\&={\text{L}}-2[{\text{L}}-({\text{N}}\cdot {\text{L}}){\text{N}}]\\&=2({\text{N}}\cdot {\text{L}}){\text{N}}-{\text{L}}\end{aligned}}$

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

$SC\max\{{\text{R}}\cdot {\text{V}},0\}^{m}\quad ({\text{N}}\cdot {\text{L}}>0)$

per calcolare il contributo speculare da una singola sorgente luminosa, dove $S$ è il colore di riflessione speculare della superficie, $C$ è l'intensità della luce incidente, e $m$ è detto esponente speculare. L'espressione $({\text{N}}\cdot {\text{L}}>0)$ è 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 $m$ produce un punto luce netto che si dissolve per una distanza relativamente larga, invece un grande valore di $m$ produce un punto luce che si dissolve velocemente quando i vettori ${\text{V}}$ e ${\text{R}}$ divergono (figura 2).

## Le microsfaccettature

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. Assumiamo che le superfici che non sono perfettamente lisce siano composte da molte sfaccettature davvero piccole, ognuna rappresentato un perfetto riflettore speculare.

Dato un halfway vector ${\text{H}}$ (il vettore che giace esattamente a metà strada fra il vettore di direzione dell'osservatore ${\text{V}}$ e il vettore di direzione della luce ${\text{L}}$, 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 ${\text{H}}$. Per superfici ruvide, la funzione di distribuzione di Beckmann è data da

$D_{m}({\text{V,L}})={\frac {1}{4m^{2}({\text{N}}\cdot {\text{H}})^{4}}}\exp \left({\frac {({\text{N}}\cdot {\text{H}})^{2}-1}{m^{2}({\text{N}}\cdot {\text{H}})^{2}}}\right)$

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

I punti luce sono più intensi quando ${\text{H}}$ punta nella direzione del vettore normale ${\text{N}}$.

La funzione data dall'equazione sopra è isotropica, ciò che è invariante sotto la rotazione attorno al vettore normale ${\text{N}}$. Purché l'angolo fra la direzione dell'osservatore ${\text{V}}$ e la direzione della luce ${\text{L}}$ 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.

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

$D_{\text{m}}({\text{V,L}})={\frac {1}{4m_{x}m_{y}({\text{N}}\cdot {\text{H}})^{4}}}\exp \left[\left({\frac {({\text{T}}\cdot {\text{P}})^{2}}{m_{x}^{2}}}+{\frac {1-({\text{T}}\cdot {\text{P}})^{2}}{m_{y}^{2}}}\right){\frac {({\text{N}}\cdot {\text{H}})^{2}-1}{({\text{N}}\cdot {\text{H}})^{2}}}\right]$

dove ${\text{m}}$ è un vettore bidimensionale di ruvidità, ${\text{T}}$ è la tangente alla superficie allineata alla direzione nella quale la ruvidità è $m_{x}$, e ${\text{P}}$ è la proiezione normalizzata dell'halfway vector ${\text{H}}$ sul piano tangente:

${\text{P}}={\frac {{\text{H}}-({\text{N}}\cdot {\text{H}}){\text{N}}}{\|{\text{H}}-({\text{N}}\cdot {\text{H}}){\text{N}}\|}}$

