あなたはさらにそれを取りたいかもしれません:人間の目がそれを捕らえるように、あるいは人間がそれを知覚するように、画像をレンダリングしてください。
これを解釈するには2つの方法があります。両方やります。
解釈1:知覚的に現実的に見える画像をレンダリングします。
一日の終わりには、画像をどこかに表示する必要があります。重要なのは、特定のディスプレイデバイスでその画像を*表示*したときに、元の放射分析画像と同じ感覚が得られるように画像をレンダリングすることです。
このアイデアを展開する方法は次のとおりです。
現実の世界では、放射スペクトルは(すなわち、光の実際の分布は)あなたの目に入り、約刺激1 4つの光受容体を。受容体の刺激は、私たちがイメージと結びつける色の感覚を生み出します。
レンダリングでは、生成するスペクトルを任意に制御することはできません。幸いなことに、通常は3つのコーンしかなく、それぞれがスカラー値のみを生成するため、正確に3つの原色を使用して色覚を再現できます。一番下の行は、3つの波長のみの線形結合を使用することにより、任意の色彩感覚を生成できることです(負の値になる可能性のあるいくつかの色まで。この場合、異なる原色を使用します)。
プライマリーの選択肢はありません。ほとんどすべてのカラーディスプレイデバイスは、3つのプライマリ(通常は単一の波長を持たない)を提供するsRGB標準を使用します。それはすべて抽象化されており、気にする必要がないことが判明したためです。
知覚的に正確なレンダリングである混乱を明確にするために、次のアルゴリズムがあります。
- 正しい放射分析を使用して画像をレンダリングします。光の個々の波長または波長のバケツをトレースします。なんでも。最終的に、すべてのポイントで受信したスペクトルを表す画像が作成されます。
- 各ピクセルで、レンダリングしたスペクトルを取得し、それをCIE XYZ色空間に変換します。これにより、スペクトルの積と標準オブザーバー関数が統合されます(CIE XYZ定義を参照)。
- これにより、CIE XYZ色である3つのスカラー値が生成されます。
- マトリックス変換を使用してこれをリニアRGBに変換し、そこからリニア/パワー変換を使用してリニアRGBをsRGBに変換します。
- 浮動小数点からuint8に変換し、保存して、範囲外の値をクランプします(モニターはそれらを表すことができません)。
- uint8ピクセルをフレームバッファーに送信します。
- ディスプレイはsRGBカラーを取り、逆変換を行って特定の強度の3つの原色を生成します。それぞれが責任を負うすべての画像要素の出力をスケーリングします。ピクセルが点灯し、スペクトルが生成されます。このスペクトルは、(できれば)レンダリングした元のスペクトルのメタマーになります。
- レンダリングされたスペクトルを知覚したように、スペクトルを知覚します。
解釈2:視覚化またはLDRディスプレイの補正のために人間の目が受け取る可能性のある最終データをシミュレートしようとします。
これはあまり有用でない意味を持っていると思います。基本的に、あなたは脳が楽しみ/利益のためにそれを知覚する方法を微調整するイメージを生成しようとしています。
たとえば、今年のSIGGRAPHには、残像と減色をシミュレートして、画像を知覚的に異なるように見せるための論文がありました。もちろん、これを行う唯一の理由は、使用しているディスプレイがすべて低ダイナミックレンジ(LDR)であるためです。重要なのは、実際の高ダイナミックレンジ(HDR)にさらされた場合に実際の画像データとして表示される可能性がある効果をシミュレートすることです。
実際には、これはうまく機能しないことが判明しました。たとえば、残像の場合、非常に明るい刺激がカラーセルを使い果たしているため、残像が見られます。代わりに偽の残像で効果を刺激しようとすると、それは似ているように見えますが、完全に異なるメカニズムであるため、あまり説得力がありません。
この種のグラフィックは、実際に試してみたい場合、文献では実際に未開拓です。前述の論文は、多かれ少なかれ私たちが持っている最先端のアプローチの例です。ただし、現在のコンセンサスでは、(少なくとも現時点では)シミュレートすることは実際には価値がないと考えられます。なぜなら、せいぜい実際の視覚効果を異なるものに置き換えることによって近似するだけで、これは実際にはそうではないからです作業。
1ロッド+ 3 *コーン、通常の場合。推定最大7個(これまでに観測された最高の5個まで)の機能的光受容体は、人間にはゼロしか存在しない可能性があるためです。