Qual è la rappresentazione del colore più accurata fisicamente possibile nella computer grafica?


8

Sto cercando modelli teorici e implementati per rappresentare il colore nel software che punta alla precisione fisica.

So che "il colore esiste solo nella mente" e che in un certo senso non ha senso cercare "accuratezza fisica", ma comunque quanto è meglio il campionamento dello spettro o altre rappresentazioni più elaborate del colore al semplice RGB, e cosa benefici porterà? Quale inconveniente oltre alla performance comporterà (o la performance è uno svantaggio)?


Ho ripubblicato una domanda correlata qualche tempo fa che potrebbe essere rilevante anche qui: ci sono materiali comuni che non sono rappresentati bene da RGB?
trichoplax,

1
Anche le risposte a questo sono probabilmente utili. computergraphics.stackexchange.com/q/4321/56 . TL: DR - CIELAB è stato creato per essere una misura del colore per la percezione umana. Sfortunatamente display diversi visualizzano le cose in modo diverso, quindi non è possibile convertire facilmente da RGB a questo. Nel corso degli anni ci sono stati anche progressi in CIELAB per avvicinarsi al modo in cui il colore viene percepito dagli umani. Non sono sicuro se informazioni utili, ma lo spero!
Alan Wolfe,

Risposte:


7

Il modo più accurato fisicamente sarebbe quello di avere un l(θ) che per ogni possibile frequenza di colore ha un certo valore.

La conversione in RGB avrebbe quindi bisogno di una funzione di risposta in frequenza per ciascun canale e il risultato è quindi ionfrun'redultrun'viooletl(θ)Fred(θ)dθ.

La luce riflessa ha quindi una funzione di risposta bidimensionale: Lreflected(θ)=lioncomiong(φ)R(φ,θ)dφ. (ignorando il BRDF qui per semplicità)

Gli svantaggi sono che invece di solo 3 canali di colore ora hai infiniti canali di cui preoccuparti.


Bene, ho detto "possibile", non "immaginario" ;-). Ma grazie per una buona risposta!
Lennart Rolland,

C'è un nome per l(θ)? O dici solo el theta?
Matthew Woo,

1
@MatthewWoo È un nome che ho trovato sul posto, in realtà è l'irradiazione da DRDF con il parametro aggiuntivo di lunghezza d'onda.
maniaco del cricchetto

In effetti, dovresti considerare l'intero spettro EM. Inoltre, la domanda non specifica se un occhio umano deve percepire le immagini risultanti.
Matthias,

7

Esiste un rendering spettrale , in cui è possibile quantizzare le lunghezze d'onda visibili da ~ 390nm a ~ 700nm a N lunghezze d'onda discrete anziché lo standard 3 per RGB. Quindi se dovessi modellare un prisma, otterrai una distribuzione più realistica dello spettro.

La luce ha anche proprietà di polarizzazione che dovresti modellare per un maggiore realismo. Non so se questo è stato modellato in alcun motore di rendering disponibile pubblicamente e come lo rappresenteresti esattamente. La luce è un'onda elettromagnetica con due componenti ortogonali elettrici e magnetici, che possono avere ampiezze diverse ed essere anche sfasati potenzialmente con conseguente polarizzazione ellittica. La polarizzazione sarebbe una proprietà pertinente, ad esempio, per modellare molteplici riflessioni speculari da superfici dielettriche o modellare filtri polarizzanti usati dai fotografi sulle macchine fotografiche.

Sia il rendering spettrale che la polarizzazione della luce contabile comporterebbero il costo delle prestazioni e un maggiore utilizzo della memoria.

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.