最近話題に上がりやすいこのワード。複雑に考えれば非常に奥が深く、簡単に捉えればそんなに難しくありません。
これらを行うことで物理的に正しい計算が行われ色の破綻や色のズレが起きにくくなります。
また実写合成における色合せが非常に楽になります。
そしてこれらのがよく考えられているのがBlenderです。
ということで元々書きかけていたのでCGWORLD v.176号に便乗というわけでも無いのですがそんな感じでw
より詳しく知りたい方はそっちを見てみてはいかがでしょうか?
ってことで何で自分がそこまでBlenderを推奨するのかが幾分分かってもらえればと思います。
またBlenderを参考に他のソフトではどうすればいいのか?ってのもわかると思います。
※あくまで、このワークフローはがちんこのシーンリニアのほんの一部です。
本来ちゃんとしたフローを組もうとなると実写の素材の扱いを理解する必要がありますその辺りは説明しきれないのでCGWORLD v.176号を参考頂ければと思います。
2013/3/20関連リンク追加 3/
結論から言うと基本Blenderでは何もしなくとも内部完結させればシーンリニアワークフローが出来ています。
ということで内部でどういうことをしているか見て行きたいと思います。
まず、カラーマネージメント=色管理です。
一般的なカラーマネージメントはモニタやプロジェクター、プリンタ間での色の違いをなくす事を言います。
そこでキャリブレーション等の作業によりそれらの色の違いをなくします。
(今回ここはちゃんと出来てることを前提です。特に複数の環境下で色を合わせるには大前提です。)
当然これもカラーマネージメントですが今回言うところのカラーマネージメントとはCG作業における画像や映像フォーマットの違いやガンマ値の違いによる色の違いをなくして統一色空間で作業することで色の違いをなくしましょうという事です。
さらにそれらをリニア空間で行うことで計算が物理的に正しくなります。
シーンリニアとは色空間(カラースペース、ホワイト・ブラックポイント等の考慮含め)までを考慮したリニアワークフロー、作業空間って感じで良いかと思います。
以下がBlenderにおけるシーンリニアワークフローの図です。(クリックで別ウインドウで拡大表示)

まず入力データはそれぞれの持っているカラープロファイルを指定(通常自動判別)することでBlender Linerデータにリニアライズされます。これらのプロファイルは
"インストールフォルダの\バージョンフォルダ\datafiles\colormanagement\config.ocio"
の内容を書き換える事でリストにないものも登録出来ます。詳細は、OpenColorIO webサイトにて
※色空間の変換が必要でないデータ素材(バンプ、ノーマルマップやディスプレイスメントマップ等)はプロファイル指定なしのNon Colorにする必要があります。色空間の変換がされないだけでありデータとしてはリニアになります。
これ以降Blender内部では全作業がリニア空間で行われます。
それが青で囲っている範囲です。図では小さい範囲ですが画像、色に関する作業は基本リニア空間での作業となります。マテリアル、コンポジット、テクスチャペイント、レンダリング等
図に書いてあるとおりBlender Linerにおける色空間はRec709ホワイトポイントD65となっておりこれはNukeのデフォルトと同じとなります。
色空間はRec709となっていますがsRGBも色域はおなじでガンマ値が違うだけみたいですね。なのでリニア空間での色域の違いは無いということになります。
Display Transform:デバイス変換。基本PCモニタであればデフォルトのsRGBで問題ありません。表示デバイスに合わせたガンマ補正がされます。(表示上の変換。データには影響しない。)
View Transform:Display Transformがされる前に色補正をかけることでフィルムやLOGのシミュレートができます。また任意のカーブでの変換も可能です。(シニアデータに触接トーンマップ処理が出来る。)
これらの変換はレンダー画像、マテリアルビュー、任意指定で入力画像・テクスチャ、コンポジットノード等に反映されますがあくまでビュー上での表示です。EXRのリニアデータで保存した場合反映されません。PNGやJPEG等で保存した場合はこれらの変換が適応されて保存されます。が本来それを目的としたものではありません。
レンダー画像のエラー確認等にも使用可能です。3Dビューには適応されません。
書いてある通りView LUTとしての使用目的がメインです。(現状任意のLUTデータを読み込むことはできません。以前から言われているので今後読み込めるようになる可能性はあります。)
面白い点としてV-Ray/Blenderを利用した場合もマテリアルビューに対してこれらの変換が適応されるので最終ルックに近い状態でマテリアル調整が可能です。(MAXやMayaではこの辺りがうまく設計されてません)
カラーピッカー

Blenderのカラーピッカーはよく考えられています。Preferencesから任意のタイプに変換が可能です。
Cyclesを使用している場合マテリアルのカラーピッカーの値はリニア空間順守の値になります。
テクスチャペイントやBlender RenderのマテリアルはsRGB色空間順守の値表示になります。
どちらもデータ上はリニア空間でなぜ違うかと言うとまずCyclesは物理レンダラーなので物理値のリニア表示となり、テクスチャペイント等はより直感的に作業できるように表示されている色と同じになるようにsRGBなっています。
スポイトツールでの違いも出ます。例えばテクスチャペイント上でHDRI画像を読み込んだ場合0-1の範囲の値しか取られないのですがCyclesのマテリアル側で画像からスポイトすると画像の持っている1以上の値も入ります。(当然ライトマテリアルで無い限り不正数値ですが逆にライトマテリアルなどのサンプルに使えます)
なので50%グレーの場合テクスチャペイント上では0.5となりCycles側では0.261となりますが表示上の色は同じとなります。
いずれにしてもデータ上はリニアデータ、フロート値となります。(ペイントは16bitフロートになっています。)
ペイントで0-1でしかペイント出来ないのはHDRI以外で0-1範囲外の値は通常必要無いためです。
HDRI画像をクローンペイントした場合に関しては元画像のデータが保持されます。
シーケンサー
シーケンサーに関しては任意の色空間での作業ができるようになっています。
OpenColorIOに対応しているのでACES色空間にも対応していますが内部作業をすべてACESに対応させるには諸々カスタムが必要になるのと、色域が広いためデータ量の肥大にもつながります。
実写素材を扱う場合それぞれカメラ固有のよく見せるための処理がされているのでそれらの統一するための作業は事前に必要です。
ここまではBlenderは内部ですべて勝手にやってくれますが、マテリアルに関してはIORやフレネル等を考慮して行かないと本来の物理的に正しいワークフローでは無くなってしまいます。
よりアーティスティックな部分と非アーティスティックな部分をうまく切り離して作業することで本来必要のない無駄な作業が減ると思います。
参照サイト
Blender Wiki
Blender 2.64: Color Management
Color Management
Color Space Notes
An Introduction to Color Management in Blender
OpenColorIO
ACES
カラーマネージメント
液晶ディスプレイとカラーマネージメント 編 (おもにキャリブレーションについての解説)
PERCH長尾の知っ得!デザインビズ必読ポイント!AREA JAPAN
CG de カラマネ!CGWORLD.jp
Shader type について 北田栄二の海外武者修行!!(北田のブログから物理シェーダー解説記事)
yamagishi - 2bit-BLogCGWORLDのシーンリニアの記事も書かれている山岸さんのブログからLWF関連
ということでCGWORLDを読まれた方は分かると思いますが既存のソフトでシーンリニアワークフロー、カラーマネージメントをしようと思うとアーティスト全員が理解、学習しないとちゃんとしたフローにはなりませんがBlenderを使うことで内部で全作業を統一できるのでより円滑に進めれます。もちろんちゃんとした物にしようと思うと、さすがに言いすぎですが
またこれらのフローは他のソフトでやらないといけない作業の参考にもなると思います。
以上、カラーマネージメント・シーンリニアワークフローをBlenderで学ぶ。でした
- 関連記事
-
- 第四回CG座談会@ Blenderメモ (2013/08/02)
- カラーマネージメント ・ シーンリニアワークフロー をBlenderで学ぶ (2013/03/17)
- 第三回CG座談会@ Blenderメモ (2012/10/21)