Armoniche sferiche
Se sai cos'è una trasformata di Fourier, sai quasi già quali sono le armoniche sferiche: sono solo una trasformata di Fourier ma su base sferica anziché lineare. Cioè, mentre una trasformata di Fourier è un modo diverso di rappresentare una funzione , le armoniche sferiche sono la cosa analoga per le funzioni polari .f ( θ , ϕ )f(x)f(θ,ϕ)
Se non sai cos'è una trasformata di Fourier, devi sapere prima di poter comprendere le armoniche sferiche. La trasformata di Fourier ti consente di rappresentare un segnale come una serie di onde sinusoidali e coseno, ognuna con il doppio della frequenza dell'ultima. Cioè, è possibile rappresentare il segnale come media, più un'onda sinusoidale la cui lunghezza d'onda è uguale alla lunghezza del segnale, più un'onda sinusoidale doppia della lunghezza d'onda e così via. Poiché la trasformata di Fourier ti fissa su queste lunghezze d'onda particolari, devi solo registrare l'ampiezza di ciascuna.
Usiamo comunemente trasformate di Fourier per rappresentare immagini, che sono solo segnali digitali 2D. È utile perché puoi eliminare alcune delle onde sinusoidali (o ridurre la precisione con cui memorizzi la loro ampiezza) senza cambiare in modo significativo l'aspetto dell'immagine agli occhi umani. OTOH, gettando via i pixel cambia molto l'aspetto dell'immagine.
In un segnale campionato come un'immagine, se usi lo stesso numero di onde sinusoidali che c'erano campioni (pixel) nell'immagine originale, puoi ricostruire esattamente l'immagine, quindi una volta che inizi a buttare via qualsiasi frequenza, stai facendo il l'immagine richiede meno spazio di archiviazione.
Le armoniche sferiche sono proprio come le trasformate di Fourier, ma invece delle onde sinusoidali, usano una funzione sferica, quindi al posto delle funzioni lineari (come le immagini), possono rappresentare le funzioni definite sulla sfera (come le mappe ambientali).
Sonde luminose
Proprio come il modo in cui un'immagine standard registra tutta la luce che raggiunge un determinato punto attraverso il piano dell'immagine, una sonda di luce registra tutta la luce che raggiunge un certo punto da tutte le direzioni. Sono usciti per la prima volta dagli effetti cinematografici. Se vuoi aggiungere un oggetto generato dal computer a una scena del mondo reale, devi essere in grado di illuminare l'oggetto sintetico con l'illuminazione del mondo reale. Per fare ciò, devi sapere quale luce raggiunge il punto nella scena in cui si troverà l'oggetto sintetico. (NB Anche se dico "illuminazione", stai registrando un'immagine di tutta la luce, quindi può essere utilizzata anche per i riflessi.)
Poiché non è possibile avere una fotocamera con una lente sferica che registra tutta la luce che raggiunge un singolo punto da tutte le direzioni, è possibile registrarla scattando normali fotografie di uno specchio sferico e quindi riproiettando le immagini su una sfera.
Al di fuori degli effetti cinematografici, è più comune utilizzare le sonde luminose generate da una scena artificiale. Immagina di avere un algoritmo costoso per calcolare l'illuminazione globale (GI) in una scena e di avere anche degli oggetti più piccoli che si muovono in questa scena (come un livello di gioco con giocatori dentro). Non è possibile eseguire l'intero algoritmo GI ogni volta che si sposta un oggetto, quindi lo si esegue una volta con la scena statica e si salvano le sonde luminose prese in vari punti del livello. Quindi puoi ottenere una buona approssimazione al GI illuminando il giocatore con la sonda di luce più vicina.
Usandoli insieme
In genere si desidera filtrare comunque i bordi nitidi nell'illuminazione globale, quindi si desidera un modo per rappresentarli compatto e che consente di eliminare facilmente le alte frequenze. Ecco cosa sono davvero brave le armoniche sferiche! Ecco perché ascolterai questi due termini usati molto insieme.
Calcoli le sonde luminose con il tuo costoso algoritmo GI, in genere nello strumento di progettazione del livello, o forse una volta al secondo (anziché una volta per fotogramma) se vuoi includere i tuoi oggetti dinamici. Li conservi a buon mercato con armoniche sferiche: 16 galleggianti sono sufficienti per un'illuminazione di alta qualità, ma non per i riflessi. Quindi, per ogni oggetto dinamico che vuoi illuminare, scegli la sonda di luce più vicina (o interpoli linearmente più insieme) e la usi come input uniforme o costante per il tuo shader. È anche comune usare armoniche sferiche per rappresentare i dati di occlusione ambientale, ed è molto economico contorcerlo con la sonda di luce, sebbene ci sia una certa complessità nel ruotare le funzioni armoniche sferiche.