Dev:JA/Ref/Release Notes/2.64/Color Management

提供: wiki
移動先: 案内検索

Blender 2.64: 色管理

OpenColorIOが Blender に統合され、これにともない色管理システムが再設計されました。以前の Blender はリニア(Linear)と sRGB の二つの色空間しか対応していませんでしたが、今はもっと多く対応し、どの色変換を使用すべきかを細かくコントロールできます。

シーンリニア(Linear)色空間

正しい結果を得るには、レンダリング、表示、画像の格納にそれぞれ違う色空間が必要です。レンダリングとコンポジティングはシーンリニア色空間で行うのが最適で、これは自然により近く対応し、計算もより物理的に正しい物になります。

サンプルリニアワークフロー

色がリニアということは、現実でフォトンの量を二倍に増やした場合に、その色の値も二倍であるということを意味します。別のいい方をすると、それぞれ二つのライトの内の一つを持つ、二つの写真/レンダリング画像を持っている場合、これらの画像をいっしょに加算合成した結果が、両ライトを照らしてレンダリングした画像や写真と同じになるということです。このような放射分析的なリニア空間はフォトリアリスティックなレンダリングとコンポジティングに最も適しています。

しかし、これらの値は直接人間の知覚やディスプレイデバイスの動作方法には対応しておらず、さらに画像ファイルは大抵別の色空間で格納されているため、このリニア色空間内や外への正しい変換を注意して行わなければなりません。

表示

レンダリング画像の正しい表示には表示デバイスの色空間への変換が必要ですが、これが設定できるようになりました。コンピュータのモニターの動作はディジタルシネマプロジェクトや HDTV とは違います。シーン(Scene)プロパティにこれらの設定があります。

デバイス(Device)
画像が表示されているデバイス。大半のコンピュータモニタは sRGB 色空間用に調整されており、コンピュータ上で作業する場合は、通常はこのオプションはデフォルトのままにしておく方がいいでしょう。これは主に画像をコンピュータにつながった他の表示デバイスで見る時や、画像ファイルを他のデバイス上で表示するつもりで出力する時に変更します。

Rec709 は一般的に HDTV で使用され、一方、ディジタルプロジェクターでは XYZ と DCI-P3 が一般的です。デバイスをなし(None)に設定することで色管理を無効にできます。

リニアから表示デバイス空間への変換

レンダー

さらにレンダー用につくられた、アーティスティックチョイスがあります。その理由の一つに表示デバイスは色域を完全には表示できず、限られた輝度しか持たないことがあり、色をデバイスの全範囲に適合するよう、色を詰め込むことができます。これに加え、レンダーを特殊な見た目、例えば現実のフィルム上にプリントされたようにするのにも便利です。

別の一般的な使用ケースは、レンダリングの検査をしたい場合に、暗い影の中や明るいハイライトの細かい部分を見たり、レンダリングエラーを確認するなどがあります。このような設定は一時的に使用されるだけで、最終レンダーには使用されないでしょう。

色管理用のシーン(Scene)設定
ビュー変換(View Transform)
これらは同じ表示デバイス上で画像を見る別の方法です。デフォルトではその表示デバイス用の変換以外は何も追加で変換を行いません。RRT は ACES Reference Rendering Transform を使用し、フィルム状の見た目をシミュレートします。フィルム(Film)オプションは別のフィルム状の見た目です。Raw と Log は画像の検査用を意図しており、最終的なエクスポート用ではありません。Raw はどの色空間の変換もない画像を与え、一方 Log は非常に暗いまたは明るい領域のない、より「フラット」な画像のビューを与えます。
露出(Exposure)
色空間の変換が行われる前に適用される、画像の輝度への乗数です。
ガンマ(Gamma)
色空間の変換が行われた後に適用される、追加のガンマ補正です。デフォルト sRGB または Rec709色空間変換にはすでに約2.2へのガンマ補正が含まれているため(Raw と Log ビューを除く)、これがそれに追加で適用されることに注意してください。
カーブを使用(RGB Curves)
色空間の変換前に画像の色をコントロールするカーブです。

画像ファイル

他の場所で色管理を維持するのに心がけておくことは、いつ画像ファイルの読み書きを行うかです。PNG や JPEG などのファイルフォーマットでは通常、表示可能な色空間に格納されており、リニア空間ではありません。これらが例えばレンダー内でテクスチャとして使用されている時、まずリニアに変換する必要があり、Web上での表示用にレンダリング画像を保存する時も、表示空間に変換する必要があります。OpenEXR のような、他のファイルフォーマットは、制作での中間ファイルとして便利なように、リニア色空間で格納されています。

画像ファイルで作業する場合、普通はデフォルトの色空間が正しい物となります。このケースに当てはまらない場合、画像ファイルの色空間は▼画像(Image)で設定できます。手動による変更が必要な一般的な状況は、例えばノーマルマップやディスプレイスメントマップの作業やベイクをしている時です。このようなマップでは、実際には色ではなく、単に色としてエンコードされたデータを格納しているだけです。このようなケースではNon Color を指定してください。

画像(Image)データブロックは常にメモリ内の浮動小数点数(float)バッファにシーンリニア色空間で格納され、一方、メモリ内のバイトバッファとディスク上のファイルでは、この設定により指定された色空間で格納されます。

色空間(Color Space)
ディスク上の画像の色空間。これはファイルフォーマットに依存し、例えば PNG や JPEG 画像ではよく sRGB で格納され、一方、OpenEXR 画像はリニア色空間で格納されます。ノーマルやバンプ、ステンシルマップのようないくつかの画像では厳密には「色」を格納しておらず、このような値では絶対に何も色空間変換を適用してはいけません。このような画像では色空間はなし(None)を設定してください。
色管理用の画像(Image)設定

デフォルトではレンダリング画像のみレンダービュー変換が適用されて表示・保存されます。これらは Render Result と Viewer Image データブロック、そしてアニメーション(Render Animation)オペレーターにより直接ディスクに保存されたファイルです。しかし、中間物の OpenEXR ファイルに保存されたレンダリング画像の読み込み時では、例えば画像テクスチャもしくはディスプレイスメントマップの可能性があるため、Blender は自動的にこれがレンダリング画像と探知できません。 下記の二つの設定で、これがレンダリング画像だと教え、適用してほしい変換を指定する必要があります。

ビューにも適用(View as Render)
Image データブロックを(レンダリング画像に限らず)ビュー色変換、露出、ガンマ、RGBカーブを適用して表示します。リニア OpenEXR ファイルでレンダリングしたフレームを、直接レンダリングした時と同じ状態で見るのに便利です。
レンダー色空間で保存(Save as Render)
画像保存オペレーターのオプションで、ビュー色変換、露出、ガンマ、RGBカーブを適用します。これは例えばリニア OpenEXR を PNG や JPEG ファイルに、表示空間で保存するのに便利です。

シーケンサー(Sequencer)

シーケンサー色空間(Sequencer Color Space)
シーケンサーが動作する色空間。デフォルトではシーケンサーは以前のバージョン同様、sRGB 空間で動作しますが、コンポジットノードのようにリニア空間や他の色空間で動作させることもできます。別の色空間では色補正(Color Correction)やクロスフェード(Cross Fade)などの操作で違う結果になります。
同じレンダリング画像の違う見た目と露出

OpenColorIO 設定

Blender に多数の便利な表示デバイスとビュー変換の入った、標準の OpenColorIO 設定が付きました。使用している参照リニア色空間は、Rec. 709色度とD65白色点のリニア色空間を使用しています。

しかし、OpenColorIO は複数のアプリケーション間でのユーザエクスペリエンスが一致するよう設計されており、そのために、単一の共有設定ファイルを使用することもできます。Blender は Blender デフォルトの設定ではなく OpenColorIO 設定を読み込むのに、標準の OCIO 環境変数を使用します。ワークフローなどの詳しい設定方法については、OpenColorIO webサイト(英文)を参照してください。

現在、以下の色空間の役割を使用しています。

  • scene_linear: レンダリング、コンポジティング、メモリ内に格納されるすべての Float 精度の画像用に使用されます。
  • default_sequencer: シーケンサーのデフォルト色空間。指定されていない時は scene_linear を使用します。
  • default_byte: バイト精度の画像とファイル用のデフォルト色空間。指定されていない時は texture_paint を使用します。
  • default_float: Float 精度の画像とファイル用のデフォルト色空間。指定されていない時はscene_linear を使用します。

別のリニア色空間はあるものの、標準の Blender 設定もACES用(コードとドキュメント(英文))にいくつか対応しています。リニア ACES 色空間による EXR ファイルの読み書きでき、RRT ビュー変換を画像の表示にその標準の表示変換で使用可能です。ただし、ACES 全範囲は Rec. 709全範囲に比べて大きいため、最良の結果を得るには、ACES 仕様の設定ファイルを使用すべきでしょう。 制作に使用できるようにするには若干調整が必要なものの、OpenColorIO はACES 設定を提供しています。

互換性

現存のファイルとの互換性はほぼ維持されています。色管理を有効にしていたファイルは完全に互換性があり、一方、色管理オプションが無効な古いファイルでもほぼ互換性は保たれていますが、頂点カラーとビューの色に違いがあります。

Developer Documentation