Rendering in unità radiometriche o fotometriche?


10

Nel rendering tradizionale, è tipico eseguire tutti i calcoli con unità radiometriche, sia come rendering spettrale completo, sia in termini di componenti (XYZ, RGB, ecc.).

Tuttavia, poiché il rendering moderno aggiunge modelli più basati fisicamente, è conveniente per gli artisti essere in grado di specificare i valori nelle unità fotometriche più familiari, ad esempio l'intensità di una luce in lumen.

inserisci qui la descrizione dell'immagine

Per mantenere la pipeline tutta in un tipo di unità, è possibile effettuare una delle seguenti operazioni:

  1. Converti unità fotometriche in unità radiometriche usando l' efficacia luminosa
  2. Mantieni l'intera pipeline di rendering in unità fotometriche
    • Sébastian Lagarde presenta questa idea molto bene nelle note del corso della sua presentazione Siggraph 2014 Spostare Frostbite su PBR

Le mie domande quindi sono queste:

  1. Ci sono degli svantaggi nel rendering esclusivamente in unità fotometriche?
    • Per quanto ne so, le unità fotometriche sono solo unità radiometriche distorte dall'occhio umano. Considerando che vedremo l'immagine finale con i nostri occhi, non vedo questo come un problema.
  2. Frostbite è un motore componente RGB. Un renderizzatore spettrale avrebbe ulteriori svantaggi eseguendo il rendering esclusivamente in unità fotometriche?

Risposte:


9

Va bene usare le unità fotometriche come scala generale per impostare la luminosità della luce. Tuttavia, c'è una sottigliezza tecnica di cui dovresti essere a conoscenza. Citerò da un post sul blog che ho scritto sull'argomento l'anno scorso :

Con le immagini RGB, è importante riconoscere che i nostri dispositivi di visualizzazione si comportano in modo più radiometrico che fotometrico. Un valore di pixel rosso di 255 e un valore di pixel verde di 255 determinano entrambi una quantità uguale di flusso radiante (watt) generato da un pixel su uno schermo, non uguali quantità di flusso luminoso. Allo stesso modo, le fotocamere digitali acquisiscono valori di pixel che corrispondono al flusso radiante, non al flusso luminoso.

Ecco perché dobbiamo usare i coefficienti di luminanza quando convertiamo le immagini in scala di grigi o quando calcoliamo la luminosità di un pixel, per ottenere un risultato percettivamente accurato; e significa anche che il rendering delle immagini RGB procede più naturalmente in unità radiometriche che in quelle fotometriche.

In altre parole, la dipendenza dalla lunghezza d'onda delle unità fotometriche è diversa da quella che ci si potrebbe aspettare. Negli spazi colore RGB normali, il bianco è (1, 1, 1) e ha uno spettro radiometrico approssimativamente piatto; ma in un presunto "RGB fotometrico", (1, 1, 1) non sarebbe bianco; sarebbe un colore viola, con meno energia nella gamma verde e più nelle gamme rosso e blu. Un problema simile affliggerebbe i renderizzatori spettrali che provano a misurare tutti i loro contenitori in unità fotometriche dipendenti dalla lunghezza d'onda, ma ancora peggio, poiché la radianza necessaria per generare una data luminanza diverge verso entrambe le estremità dello spettro visibile, dove la funzione di efficienza luminosa umana va a zero.

Quindi, se desideri utilizzare unità fotometriche, IMO è meglio "imbrogliare" un po 'e non usare vere unità fotometriche dipendenti dalla lunghezza d'onda, ma usa solo una lunghezza d'onda fissa (come il verde 555 nm, che è il picco della luminosità umana funzione di efficienza), o forse una media sullo spettro, come unità di riferimento e applicare quella singola unità per misurare tutte le lunghezze d'onda. Ciò ti causerà meno problemi durante l'importazione di colori e spettri RGB da altre fonti e durante la loro generazione come output.

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.