Osservando la trama di una sonda di luce, sembra una mappa di ambiente sfocata.
Qual è la differenza tra i due, come viene realizzata una sonda di luce e qual è il vantaggio di essere sfocata?
Osservando la trama di una sonda di luce, sembra una mappa di ambiente sfocata.
Qual è la differenza tra i due, come viene realizzata una sonda di luce e qual è il vantaggio di essere sfocata?
Risposte:
Esistono due diversi significati comuni di "sonda luminosa" di cui sono a conoscenza. Entrambi rappresentano la luce attorno a un singolo punto in una scena, cioè ciò che vedresti intorno a te in tutte le direzioni se ti restringessi a dimensioni minime e ti fermassi in quel punto.
Un significato è una rappresentazione armonica sferica della luce attorno a un punto. Le armoniche sferiche sono una raccolta di funzioni definite su un dominio sferico, analoghe alle onde sinusoidali che oscillano un certo numero di volte attorno all'equatore e da un polo all'altro sulla sfera.
Le armoniche sferiche possono essere utilizzate per creare un'approssimazione uniforme e a bassa risoluzione di qualsiasi funzione sferica, ridimensionando e sommando un numero di armoniche sferiche, generalmente 4 (noto come SH lineare, di primo grado o a una banda) o 9 ( chiamato quadratico, di secondo grado o SH a due bande). Questo è molto compatto perché devi solo memorizzare i fattori di ridimensionamento. Ad esempio, per SH quadratico con dati RGB, sono necessari solo 9 * 3 = 27 valori per sonda. Quindi SH rende una rappresentazione della luce molto compatta, ma anche necessariamente molto morbida e sfocata attorno ad un punto. Questo è adatto per l'illuminazione diffusa e forse speculare con un'elevata rugosità.
Questo screenshot del Tech Blog di Simon mostra una serie di sonde luminose SH distribuite in una scena, ognuna delle quali mostra l'illuminazione indiretta ricevuta in quel punto:
L'altro significato attualmente comune di "sonda luminosa" è una mappa cubo ambientale i cui livelli di mip sono stati pre-offuscati in diverse estensioni, quindi può essere utilizzato per l'illuminazione speculare con vari livelli di rugosità. Questa immagine dal blog di Seb Lagarde mostra l'idea di base:
I mip ad alta risoluzione (verso sinistra) vengono utilizzati per superfici molto lucide in cui è necessaria un'immagine riflessa dettagliata. Verso destra, i livelli di mip a bassa risoluzione sono sempre più sfocati e vengono utilizzati per i riflessi da superfici più ruvide. In uno shader, durante il campionamento di questa mappa cubica, è possibile calcolare il livello di mip richiesto in base alla rugosità del materiale e sfruttare l'hardware di filtro trilineare.
Entrambi questi tipi di sonde luminose sono utilizzati nella grafica in tempo reale per approssimare l'illuminazione indiretta. Mentre l'illuminazione diretta può essere calcolata in tempo reale (o almeno approssimativamente bene per le luci di area), l'illuminazione indiretta viene di solito ancora cotta in un pre-processo offline a causa della sua complessità e delle spese generali di calcolo.
Tradizionalmente, il risultato del processo di cottura sarebbe rappresentato dalle mappe di luce, ma le mappe di luce funzionano solo per l'illuminazione diffusa sulla geometria statica e occupano anche molta memoria. Preparare un sacco di sonde luminose SH (puoi permetterne molte perché sono molto compatte), oltre a una spolverata spruzzatura di sonde luminose cubemap, ti consente di ottenere un'illuminazione indiretta diffusa e speculare decente su oggetti statici e dinamici. Sono un'opzione popolare nei giochi di oggi.