リニア ワークフローとカラー管理

リニア ワークフローは、シェーディング、ライティング、レンダリングの手法の 1 つで、オリジナルの非リニア ビデオ値を直接使用する方法と比べて多くの利点があります。カラー管理は、入力、レンダリング、表示、出力用のカラーを適切に変換することで、リニア ワークフローを可能にします。

ただし、「リニア ワークフロー」について入手可能な情報の多くは、実際には単純な「ガンマ補正と再ガンマ」ワークフローを表します。ディスプレイのためにレンダリング スペースのカラー値を準備する適切なビュー変換を行うには、写実的な応答を含むトーン マップが必要です。

シーンリニア ワークフローの概要

現実の世界では、ライトは直線的に当たります。このことは単純に、2 つの光源を使用すると、全体の輝度はそれぞれの光源からの光の直和になることを意味します。

ほぼすべての 3D レンダラで使用されているアルゴリズムは、これと同じように機能します。リニア ワークフローでもこの事実を認め、レンダリング処理で使用するすべてのカラー値は、シーンの輝度に正比例します。これにより、ライティングとシェーディングの多くの問題が解決します。たとえば、追加ライトなどのテクニックを使用しなくても、ハイライトとシャドウのバランスによって、満足なライティングを実現しやすくなります。さらに、リニア出力は、追加の調整や修正をしなくても、合成などの高度な処理に適しています。

リニア ワークフローの問題の 1 つは、表示用に用意されているイメージ(テクスチャとして使用する .png ファイルなど)はリニア(直線状)ではない、という点です。つまり、数値のカラー値は、輝度に比例していません。このことは、数値のカラー値はリニア ワークフローで使用する前に変換する必要があることを意味します。

逆に言えば、リニア ワークフローでレンダリング結果はリニアであり、直接表示には適していません。モニタで適切に表示されるようにするには、変換する必要があります。

カラー管理のほうが適している状況

カラー管理では、必要に応じてカラー スペースを変換するために適切なトランスフォームが適用されます。これらのトランスフォームは、プレビューおよびレンダリング処理中の特定のポイントで適用されます。
  • 入力時は、イメージが保存されたカラー スペースからレンダリング スペースにイメージを変換するのにトランスフォームが適用されます。
  • 作業中に、レンダリング スペースのカラーはビューおよびディスプレイの処理によって変換され、ビューポート、レンダー ビュー(Render View)UV エディタ(UV Edito)に便利なプレビューが表示されます。
  • 必要に応じて、レンダリングされたイメージファイルを外部ビューアに表示するために、これらに出力変換を適用することができます。

イメージ入力を処理する

テクスチャなどの入力イメージを処理する適切な方法は、イメージがシーン内でどのように使用されているかによって決まります。また、適切な方法はイメージそのもの、現在のカラー スペースやエンコーディング、イメージの状態(カラー値がシーン参照輝度値と表示参照輝度値のどちらに比例しているか)などによっても異なります。

非カラー データに使用されるイメージに適用されるトランスフォームはありません。バンプ マップ、法線マップ、ディスプレイスメント マップ、その他のアトリビュート(半透明性、鏡面反射性、反射率など)で使用されるマップなどがこれに含まれます。

カラーを表現するために使用されるイメージの場合は、いくつかの選択肢があります。既にシーンリニアであるイメージは、入力スペースの原色とレンダリング スペースの原色が異なる場合に、入力スペースの原色からレンダリング スペースの原色に変換する必要がある場合を除いて、変換する必要はありません。OpenEXR、HDR、一部の TIFF ファイルなどのほとんどのハイ ダイナミック レンジ イメージがこれに含まれます。

特定のデバイスでキャプチャしたイメージには、そのデバイスに固有の入力トランスフォームを適用する必要があります。デジタル シネマ カメラの映像や、ADX 調整スキャナのフィルム プレートがこれに含まれます。他のタイプのスキャンしたフィルム プレートは、通常、なんらかの形で対数からリニアに変換する必要があります。

表示用に用意されているイメージは、ガンマを除去する必要があります。JPEG、PNG、BMP、Targa、一部の TIFF ファイルなどの多くの一般的なグラフィックス フォーマットがこれに含まれます。ただし、ガンマを除去した後、カラー値は表示の輝度に正比例するが、シーンの輝度には正比例しないことに注意することが非常に重要です。反転トーン マップを適用して値をシーンリニアにすることが望ましい場合もあります。その他の場合は、反転トーン マップで 1.0 を超える値を作成することができますが、この値は拡散反射(アルベド)、透明度、その他のマップで使用されるカラーには適しません。

レンダリングされた出力を表示する

シーンリニア イメージを表示するには、表示または出力用に変換する必要があります。通常、この変換では次の 2 つの手順を実行します。

  • 最初の手順では、シーンで参照される値をディスプレイで参照されるスペースに変換します。たとえば、トーン マップを使用して、ハイ ダイナミック レンジから[0, 1]にカラーを変換したり、原色を変更したりする場合があります。カラー管理(Color Management)プリファレンスビュー(View)設定は、適用される トーン マップをコントロールします。
  • 2 番目の手順では、特定のディスプレイ用に値を変換します。原色、適切なガンマ、および適切な整数値としてのエンコーディングを別途変更する場合があります。整数値のエンコードに使用される原色とガンマは、プリファレンスのディスプレイ(Display)設定によって決まります。

3D シーンは実世界を模倣し、シーンでは輝度値の範囲が非常に広くなる可能性があります。一方、表示デバイスが出力できる輝度値の範囲には制限があり、最大値は 1.0 としてエンコードされます。さらに、屋外シーンまたは明るい色で照らされているムービー設定よりはるかに暗いライティング条件下で表示されます。このため、トーン マップを使用してハイダイナミックレンジ値を表示範囲に圧縮し、適切なイメージを生成する写実的な応答を得ます。通常トーン マップは、低いダイナミック範囲や暗い表示条件を補うために、コントラストと彩度を上げる S 字型のカーブを適用します。

表示用のシーンリニアを完全に準備するには、ガンマを適用するだけでは、不十分です。トーン マップを使用しないと、1.0 を超えるカラー値は 1.0 を超えたままとなり、モニタによってクリップされます。

1. ディスプレイに合わせて適切に変換
カラー管理を使用。レンダリング スペースのリニア出力が表示用に適切に変換されています。
2. 変換しない
ビュー変換およびディスプレイ変換による変換を行わない。イメージが暗すぎてシャドウの詳細が失われています。
3. 補正が不適切
未変換のイメージの暗さを補正するために露光を大きくすると、ハイライトが白飛びします。さらに悪いことに、補正するためにシーンのライトを大きくすると、レンダリングされた結果が不正になります。