In che modo una sonda di luce è diversa da una mappa cubica ambientale?


17

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?


3
Risposta breve: "sonde di luce" di solito significa una rappresentazione armonica sferica compatta dell'ambiente. Sono sfocati sia perché sono molto compatti (solo poche decine di byte di memoria) sia perché sono pre-filtrati per l'uso come illuminazione diffusa. Espanderò in una risposta più lunga quando ne avrò la possibilità. :)
Nathan Reed,

C'è qualche contesto per la tua domanda? Il termine "sonda luminosa" è ambiguo e utilizzato in modo diverso in diversi scenari, algoritmi e motori.
David Kuri,

In particolare, se sei stato su shadertoy.com vedrai due set di mappe cubo disponibili per l'uso. Un set è costituito da mappe di ambiente, l'altro set è uguale ma sfocato con le sonde di luce etichettate. Solo curioso di questo e sonde di luce in generale.
Alan Wolfe,

Risposte:


18

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:

Matrice di sonde luminose SH

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:

Livelli mip di cubemap prefiltrati

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.


Grande spiegazione! Solo per confermare la parte sull'uso del filtro trilineare sui mips ... I mip sono preferiti rispetto alle trame di volume perché usano una risoluzione inferiore e livelli di sfocatura più alti richiedono meno risoluzione?
Alan Wolfe,

1
Direi che entrambi questi "tipi" di sonde luminose sono uguali. Le sonde di luce sono una misura della radianza (di solito pre-contorta in qualche modo) ricevuta in un punto della scena. Cubemaps e SH sono solo modi diversi per archiviare / calcolare una sonda di luce, facendo diversi compromessi di archiviazione / perf / qualità. (EDIT: Giusto per chiarire, sono d'accordo con la risposta, penso solo che sia controproducente pensarli come cose separate.)
yuriks

@AlanWolfe C'è un uso e cioè avere mappe per ligtning diffuse prese da un ambiente reale (chiamato palla grigia / palla bianca), non solo speculari. Ecco una disillusione di entrambi i tipi di shader di sfere specchio / grigio
joojaa,

1
@AlanWolfe Corretto & mdash; hai bisogno di meno risoluzione sui livelli più sfocati. Inoltre, le trame dei volumi di cubemap non sono presenti nell'hardware. :)
Nathan Reed
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.