リニア ワークフローは、シェーディング、ライティング、レンダリングを行うアプローチであり、単純な方法よりも多くの利点があります。カラー管理は、入力、レンダリング、表示、出力用のカラーを適切に変換することで、リニア ワークフローを可能にします。
現実の世界では、ライトは直線的に当たります。このことは単純に、2 つの光源を使用すると、全体の輝度はそれぞれの光源からの光の直和になることを意味します。
ほぼすべての 3D レンダラで使用されているアルゴリズムは、これと同じように機能します。リニア ワークフローでもこの事実を認め、レンダリング処理で使用するすべてのカラー値は、シーンの輝度に正比例します。これにより、ライティングとシェーディングの多くの問題が解決します。たとえば、追加ライトなどのテクニックを使用しなくても、ハイライトとシャドウのバランスによって、満足なライティングを実現しやすくなります。さらに、リニア出力は、追加の調整や修正をしなくても、合成などの高度な処理に適しています。
リニア ワークフローの問題の 1 つは、表示用に用意されているイメージ(テクスチャとして使用する .png ファイルなど)はリニア(直線状)ではない、という点です。つまり、数値のカラー値は、輝度に比例していません。このことは、数値のカラー値はリニア ワークフローで使用する前に変換する必要があることを意味します。
逆に言えば、リニア ワークフローでレンダリング結果はリニアであり、直接表示には適していません。モニタで適切に表示されるようにするには、変換する必要があります。
テクスチャなどの入力イメージを処理する適切な方法は、イメージがシーン内でどのように使用されているかによって決まります。また、適切な方法はイメージそのもの、現在のカラー スペースやエンコーディング、イメージの状態(カラー値がシーン参照輝度値と表示参照輝度値のどちらに比例しているか)などによっても異なります。
非カラー データに使用されるイメージに適用されるトランスフォームはありません。バンプ マップ、法線マップ、ディスプレイスメント マップ、その他のアトリビュート(半透明性、鏡面反射性、反射率など)で使用されるマップなどがこれに含まれます。
カラーを表現するために使用されるイメージの場合は、いくつかの選択肢があります。既にシーンリニアであるイメージは、入力スペースの原色とレンダリング スペースの原色が異なる場合に、入力スペースの原色からレンダリング スペースの原色に変換する必要がある場合を除いて、変換する必要はありません。OpenEXR、HDR、一部の TIFF ファイルなどのほとんどのハイ ダイナミック レンジ イメージがこれに含まれます。
特定のデバイスでキャプチャしたイメージには、そのデバイスに固有の入力トランスフォームを適用する必要があります。デジタル シネマ カメラの映像や、ADX 調整スキャナのフィルム プレートがこれに含まれます。他のタイプのスキャンしたフィルム プレートは、通常、なんらかの形で対数からリニアに変換する必要があります。
表示用に用意されているイメージは、ガンマを除去する必要があります。JPEG、PNG、BMP、Targa、一部の TIFF ファイルなどの多くの一般的なグラフィックス フォーマットがこれに含まれます。ただし、ガンマを除去した後、カラー値は表示の輝度に正比例するが、シーンの輝度には正比例しないことに注意することが非常に重要です。反転トーン マップを適用して値をシーンリニアにすることが望ましい場合もあります。その他の場合は、反転トーン マップで 1.0 を超える値を作成することができますが、この値は拡散反射(アルベド)、透明度、その他のマップで使用されるカラーには適しません。
2 つの手順でビュー変換または出力変換を使用して、シーンリニア イメージを表示するには:
3D シーンは実世界を模倣し、シーンでは輝度値の範囲が非常に広くなる可能性があります。一方、表示デバイスが出力できる輝度値の範囲には制限があり、最大値は 1.0 としてエンコードされます。さらに、屋外シーンまたは明るい色で照らされているムービー設定よりはるかに暗いライティング条件下で表示されます。このため、トーン マップを使用してハイダイナミックレンジ値を表示範囲に圧縮し、適切なイメージを生成する写実的な応答を得ます。通常トーン マップは、低いダイナミック範囲や暗い表示条件を補うために、コントラストと彩度を上げる S 字型のカーブを適用します。
表示用のシーンリニアを完全に準備するには、ガンマを適用するだけでは、不十分です。トーン マップを使用しないと、1.0 を超えるカラー値は 1.0 を超えたままとなり、モニタによってクリップされます。
Maya でカラー管理を使用すると、常に最終的な結果を正確にプレビューできるように、ビューポート、UV エディタ(UV Editor)、レンダー ビュー(Render View)でビュー変換を適用できます。