Ci sono materiali comuni che non sono ben rappresentati da RGB?


34

Nella grafica utilizziamo RGB e altri spazi colore come approssimazione all'intero spettro delle lunghezze d'onda della luce. Questo evidentemente funziona abbastanza bene in generale, ma ci sono oggetti / materiali / fenomeni ragionevolmente comuni, cose che potresti incontrare nella tua vita quotidiana, il cui aspetto non è ben rappresentato dal rendering RGB a causa di uno spettro di emissione / riflessione / assorbimento complesso ?

Mentre le risposte attuali si concentrano principalmente sui colori al di fuori di una determinata gamma RGB, sono anche interessato a sapere se ci sono esempi in cui, ad esempio, il colore di un oggetto appare "sbagliato" quando viene visualizzato in RGB a causa di un'interazione tra il spettro della sorgente luminosa e spettro di riflessione dell'oggetto. In altre parole, un caso in cui un renderizzatore spettrale ti darebbe risultati più corretti.


Credito: questa domanda mi è piaciuta nella precedente beta privata, quindi la sto riproducendo qui. Originariamente è stato chiesto da Nathan Reed


2
Mi sono ricordato di questo documento che ho letto qualche tempo fa. Gli autori confrontano i risultati spettrali e renderizzati con RGB con diversi illuminanti. Sfortunatamente il confronto è fatto su una tabella di colori, quindi non sono sicuro di quanto le differenze influenzino le scene della vita reale. cg.cs.uni-bonn.de/en/publications/paper-details/…
yuriks

La legge della birra (assorbimento del colore attraverso un oggetto trasparente a distanza) è difficile da modellare con rgb.
Alan Wolfe,

@trichoplax Scusate il rumore!
Luser droog

@luserdroog grazie per l'interesse :) Anche se questa domanda riguarda solo i materiali, potremmo fare con nuove domande relative agli spazi colore ...
trichoplax

Risposte:


25

Esistono diversi tipi di limitazione da prendere in considerazione.

Effetti per i quali il percorso di un raggio dipende dalla sua lunghezza d'onda

Si tratta di una classe di effetti per i quali è richiesto il rendering spettrale e nella risposta di Benedikt Bitterli sono già stati forniti numerosi esempi interessanti . Un semplice esempio è un prisma che divide la luce bianca in uno spettro, dando i colori dell'arcobaleno. Raggi di diversa lunghezza d'onda sono rifratti da diverse angolazioni mentre attraversano il prisma, provocando la luce che colpisce il muro dietro il prisma diviso nei suoi colori costituenti.

Ciò significa che nella vita reale, il brillare della luce gialla monocromatica attraverso un prisma provocherà la fuoriuscita della luce gialla, ma brillare una miscela di luce rossa e verde che si avvicina al giallo comporterà l'emergere di luce rossa e verde separata. Quando si esegue il rendering utilizzando solo 3 colori primari, la luce bianca si dividerà solo in quei tre colori, dando effetti arcobaleno che sembrano discontinui e la luce monocromatica che non dovrebbe dividersi affatto si dividerà nei suoi componenti di colore primario approssimativi. La divisione della luce bianca può essere migliorata utilizzando un numero maggiore di colori primari, ma ciò consentirà comunque di ravvicinare le discontinuità e i risultati per la luce monocromatica verranno comunque suddivisi, anche se in modo più stretto. Per risultati accurati, è necessario campionare uno spettro continuo,

Effetti di superficie che non possono essere catturati in un singolo fermo immagine

L'iridescenza , ad esempio, mostra un colore diverso per ciascun occhio in modo che un fermo immagine non abbia lo stesso aspetto dell'oggetto originale. Ci sono molti esempi quotidiani che potresti non notare all'inizio. Molti uccelli comuni hanno piume iridescenti anche se sembrano nere o grigie da lontano. Da vicino sono sorprendentemente colorati.

Un renderizzatore che utilizza solo 3 colori primari non sarà in grado di produrre la diffusione della luce in base alla lunghezza d'onda richiesta per questo effetto. Un renderizzatore spettrale può simulare correttamente la diffusione, ma l'effetto completo non può ancora essere catturato in una singola immagine. Anche una fotografia 2D non può catturarla correttamente, mentre una fotografia 3d di un oggetto iridescente darà quell'effetto luccicante poiché le fotografie corrispondenti agli occhi sinistro e destro saranno colorate in modo diverso. Questa è una limitazione delle immagini 2D anziché dello spazio colore RGB stesso. Tuttavia, anche in un'immagine 3d ci saranno colori nell'oggetto iridescente che non vengono visualizzati correttamente, a causa dell'incapacità di RGB di visualizzare i colori monocromatici come descritto di seguito.

Colori rilevabili dall'occhio umano che non possono essere visualizzati in RGB

RGB era storicamente dipendente dal dispositivo e quindi inaffidabile tra piattaforme. Ci sono miglioramenti percettivi uniformemente indipendenti dal dispositivo come lo spazio colore Lab , ma questi sono ancora tricromatici (con 3 componenti). Non è immediatamente ovvio il motivo per cui tre componenti non sono sufficienti per visualizzare tutti i colori che possono essere percepiti da un occhio tricromatico, ma questo documento lo spiega bene e in modo accessibile. Da pagina 7:

Ad esempio, utilizzando un moderno sistema di visualizzazione laser con primari monocromatici a 635 nm (rosso), 532 nm (verde) e 447 nm (blu), vediamo se possiamo simulare la percezione di una luce monocromatica a 580 nm (un colore arancione). Poiché lo stimolo arancione monocromatico eccita i coni verdastri e rossastri, è richiesto un contributo sia dalle primarie verdi che rosse, mentre non è richiesto alcun contributo dal primario blu. Il problema è che il primario verde eccita anche i coni bluastri, rendendo impossibile replicare esattamente lo stimolo arancione

Il diagramma delle sensibilità dei coni dell'occhio umano (anche a pagina 7) mostra l'ampiezza della sovrapposizione e aiuta a visualizzare questa spiegazione. Ho incluso un grafico simile da Wikipedia qui: (fare clic sul grafico per la posizione di Wikipedia)

Grafico delle sensibilità dei 3 diversi coni nell'occhio umano

In breve, la sovrapposizione tra la gamma di colori che può essere rilevata da ciascuno dei tre diversi coni (sensori di colore) dell'occhio umano significa che un colore monocromatico può essere distinto da una miscela approssimativa di colori primari, e quindi mescolare primario i colori non possono mai visualizzare accuratamente tutti i colori monocromatici.

Questa differenza di solito non si nota nella vita di tutti i giorni poiché la maggior parte dei nostri ambienti emettono o riflettono la luce attraverso una vasta gamma di frequenze anziché singoli colori monocromatici. Tuttavia, un'eccezione notevole sono le lampade al sodio. Se vivi in ​​una parte del mondo che utilizza questi lampioni giallo arancione, la luce emessa è monocromatica e apparirà leggermente diversa da una fotografia stampata o un'immagine su uno schermo. La lunghezza d'onda della luce di sodio sembra essere di 580 nm dall'esempio sopra citato. Se non vivi in ​​un posto che ha lampioni di sodio, puoi vedere la stessa luce a lunghezza d'onda spruzzando un sale da tavola finemente tritato (cloruro di sodio) su una fiamma. I scintillanti punti di luce gialli non possono essere catturati con precisione su pellicola o visualizzati su uno schermo. Qualunque siano i tre colori primari che scegli,

Si noti che questa limitazione si applica allo stesso modo alla miscelazione di 3 colori primari di vernice, all'utilizzo di 3 sostanze chimiche fotoreattive su una pellicola della fotocamera o alla fotografia con una fotocamera digitale con 3 diversi sensori di colore o un singolo sensore con 3 diversi filtri di colore primario. Non è solo un problema digitale e non si limita solo allo spazio colore RGB. Anche i miglioramenti introdotti dallo spazio colore Lab e dalle sue varianti non possono recuperare i colori mancanti.

Effetti vari

Riflessi diffusi multipli (sanguinamento del colore)

Se una superficie opaca dai colori vivaci si trova vicino a una superficie opaca bianca, la superficie bianca mostrerà parte del colore dell'altra superficie. Questo può essere modellato ragionevolmente bene usando componenti puramente rossi, verdi e blu. La stessa combinazione di rosso, verde e blu che ha dato il colore della superficie colorata può riflettere la superficie bianca e mostrare di nuovo parte di quel colore. Tuttavia, questo funziona solo se la seconda superficie è bianca. Se anche la seconda superficie è colorata, il sanguinamento del colore sarà inaccurato, in alcuni casi drasticamente.

Immagina due superfici che hanno un colore simile. Uno riflette una gamma ristretta di lunghezze d'onda attorno al giallo. L'altro riflette una vasta gamma di lunghezze d'onda tra rosso e verde e, di conseguenza, appare anche giallo. Nella vita reale, la luce che mostra su una superficie a causa dell'altra non sarà simmetrica. La maggior parte della luce che raggiunge l'ampia gamma di lunghezze d'onda dall'altra verrà riflessa di nuovo, poiché la ristretta gamma di lunghezze d'onda in entrata è tutta all'interno della gamma più ampia. Tuttavia, la maggior parte della luce che raggiunge la superficie della gamma di lunghezze d'onda stretta dall'altra sarà al di fuori della gamma stretta e non verrà riflessa. In un renderer RGB, entrambe le superfici saranno modellate come una miscela di rosso monocromatico e verde monocromatico, senza differenze di luce riflessa.

Questo è un esempio estremo in cui la differenza sarà immediatamente evidente all'occhio, ma ci sarà almeno una sottile differenza nella maggior parte delle immagini che includono il sanguinamento del colore.

Materiali che assorbono una lunghezza d'onda e ne emettono un'altra

La risposta di joojaa descrive l'assorbimento della luce ultravioletta da parte della neve, da riemettere come luce visibile. Non avevo mai sentito parlare di questo evento con la neve prima (e frustrantemente non sono stato in grado di trovare alcuna prova per sostenerlo - anche se spiegherebbe perché la neve è "più bianca del bianco"). Tuttavia, ci sono molte prove che ciò accada con una vasta gamma di altri materiali, alcuni dei quali vengono aggiunti a vestiti che lavano detersivi e carta, per dare bianchi più luminosi. Ciò consente alla luce visibile totale in uscita da una superficie di essere superiore alla luce visibile totale ricevuta da quella superficie, che di nuovo non è modellata bene usando solo RGB. Se vuoi saperne di più, il termine da cercare è Fluorescenza .

Occhi con più di 3 colori primari

Ci sono animali che hanno più di 3 tipi di coni nei loro occhi, permettendo loro di percepire più di 3 colori primari. Ad esempio, molti uccelli, insetti e pesci sono tetracromatici , percependo quattro colori primari. Alcuni sono persino pentacromatici , percependo cinque. La gamma di colori che tali creature possono vedere minano la gamma visualizzabile usando solo RGB. Molto al di là di loro c'è il gambero di mantide , che è un dodecacromat, che vede i colori basati su 12 coni diversi. Nessuno di questi animali sarebbe soddisfatto da un display RGB.

Ma più seriamente, anche per le immagini destinate agli occhi umani, si ritiene che ci siano tetracromatici umani che vedono in 4 colori primari, e forse alcuni che vedono fino a 5 o 6. Al momento, tali persone non sembrano essere presenti in numero sufficiente per rendere commercialmente possibili display con più di 3 colori primari, ma se in futuro diventa più facile identificare quanti colori primari una persona può vedere, questo può diventare un tratto attraente che si diffonde in tutta la popolazione nelle generazioni future. Quindi, se vuoi che i tuoi pronipoti apprezzino il tuo lavoro, potresti aver bisogno di renderlo compatibile con un monitor esacromatico ...


Non molto pertinente a questa domanda, ma correlato: se vuoi vedere colori che non sono disponibili nel mondo reale o nelle immagini RGB, dai un'occhiata a Chimerical Colors ...


15

Credo che l'effetto spettrale più importante che non può essere riprodotto fedelmente con RGB sia la dispersione , causata da dielettrici con indice di rifrazione che varia spettralmente (di solito modellato con l' equazione di Sellmeier ).

Altri fenomeni spettrali sono generalmente causati da effetti delle onde. Un esempio che si incontra nella vita reale di tanto in tanto è l' interferenza a film sottile , che è causata da una o più superfici riflettenti sovrapposte l'una sull'altra (ad esempio chiazze di olio, bolle di sapone). Un altro effetto ondulato che a volte può essere osservato è la diffrazione , causata ad esempio da reticoli di diffrazione , che è ciò che provoca l'aspetto funky dei CD.


7

RGB funziona perché è così che funziona il nostro apparato sensoriale. Oltre alla dispersione, alcuni materiali artificiali e corpi di insetti a volte hanno superfici che hanno fasce di colore molto strette. Questi potrebbero beneficiare di un rendering ad ampio spettro.

Tuttavia, poiché molti di questi effetti sono piuttosto localizzati, è spesso possibile evitare che lo shader funzioni in modo strano. Questo non funziona bene nelle riflessioni e nelle rifrazioni ma nessuno è in grado di accorgersene. A meno che tu non stia facendo qualche simulazione di fisica non è davvero un grosso problema. Ma se progetti ottica, questo potrebbe essere un grosso problema.

Alcuni materiali, come la neve, convertono anche l'ultravioletto in arrivo in luce visibile. Anche in questo caso questo tipo di effetto può essere generalmente gestito da shader / gruppi di luci speciali.

Le ali di farfalla sono anche una curiosità mentre manipolano le fasi delle onde e le forme della luce in arrivo. Quindi, se vuoi fare una simulazione fisica su questi, allora è un grosso problema.

La polarizzazione della luce è anche un grande fattore negli insetti e negli effetti dell'acqua.


3

Solo per aggiungere agli eccellenti suggerimenti di cui sopra, mi è venuto in mente che, senza un canale ultravioletto, i materiali fluorescenti sarebbero difficili da modellare.


1
Questo sembra essere più un commento che una risposta. Forse potresti approfondire il motivo per cui i materiali fluorescenti dipendono da un canale ultravioletto e fornire alcuni riferimenti?
Martin Ender,

1
L'ho menzionato nel mio post semplicemente non usando la parola flourescent. Comunque questo può essere realizzato a livello di shader.
joojaa,

@joojaa: mi dispiace .. ho perso. Eliminerei il mio post se ci fosse un pulsante ovvio per farlo. Tuttavia, detto questo, direi che avresti ancora bisogno di canali extra altrove (e non solo shader) per gestirlo, ad esempio generazione al volo di mappe ambientali.
Simon F,

2
Elimina o non eliminarlo, lo stesso per me. Preferirei vederti espanderlo. Non c'è niente di sbagliato nel supportare prove e cose dette diversamente finché tu contribuisci con maggiore chiarezza o nuove informazioni.
joojaa,
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.