イコウ キャンペーンイコウ キャンペーン

チュートリアル / fieldjamのDesignVizエッセンス
第3回:リニアワークフローについて<その3>

2009.04.22

  • 3ds Max
  • カラー
  • チュートリアル
  • レンダリング
  • 建築・製造・広告
さて、いよいよ具体的な設定方法です。3ds Maxについては一般的に使用できることを前提としているので、細かい説明は省略させてください。


ディスプレイのキャリブレーション

まず、ディスプレイのキャリブレーションを行います。今回の目標値は、白色点6500K、ガンマ2.2で進めることにします。また、その方法は機械に任せるか自分の目で行うかの2つに分けられ、さらにディスプレイ本体についてもカラーマネージメントが可能なものを使用することにより、より良好な環境が整えられます。キャリブレーションについては、白色点、環境光についてなど、まじめに説明すると大変長くなってしまうので、ここでは簡潔に方法だけ提示しておきます。

1.ハードウェアキャリブレーション
ハードウェアキャリブレーションツールを持っている人は、それらを使用してください。この方法がもっとも望ましいので、持ってない人は購入を検討するのも良いでしょう。

2.目視による調整
フリーのツールを用いたり、ディスプレイの調整メニューだけでも可能です。「ガンマ設定」などでWeb検索してください。見た目に頼っているので精度は落ちますが、行わないよりは良好な状態です。


3ds Maxの設定

ディスプレイのキャリブレーションが終わったら、ようやく3ds Maxの登場です。では、まずガンマを2.2に設定しましょう。[カスタマイズ]/[基本設定]の[ガンマとLUT]タブを選択し図のように設定してください。

これで、終わりです。あっけないですね。でも内容をきちんと確認しましょう。
linearworkflow_3_01.gif

・ガンマ/LUT補正を使用
ここをチェックすると、3ds Maxがディスプレイに送る情報についてガンマ補正を行います。チェックしていない場合はガンマ1.0の情報を送っていたことになります。これまでの話から考えると厳密には1/2.2の補正を行っているので、ここで入力した値はディスプレイのガンマ値だと思ってください。

・3ds Maxファイルロード可能な状態
ここをチェックすると、ガンマ補正のON/OFFのみを各ファイルから読み込むことができます。暫くは、新旧のワークフローが混在することになると思うので、ここをチェックしてファイルごとに設定を切り替えられるようにしておくとよいでしょう。他のチェックやガンマ値などは保存されないことに注意してください。

・マテリアルとカラー
これらは、それぞれの項目についてガンマ補正のON/OFFを設定するので通常はチェックします。それぞれの画面をキャプチャーしましたが、はっきりと違います。チェックした状態で同じガンマ値のディスプレイで表示するとリニアスペースでの表示になります。つまり、これまで使用していた左のカラーは、リニアスペースでは右のように見えるんです。とはいっても、うーん、違和感あり、コントラスト弱いですね。まず最初に直面する大きな壁ですが、暫くすると慣れます...。

linearworkflow_3_02.jpeg

・ビットマップファイル
入力/出力されるビットマップのガンマ初期値を設定します。いまのところはどちらも2.2に設定しますが、これらの設定は良く考える必要があるので、あとで詳しく解説します。


画像ファイルのガンマとは?

しつこいようですが、ここで画像ファイルのガンマについて考えておきましょう。LWFでの作業において、とても大切なんです。
画像フォーマットは多種多様で、PNGやTGAのようにガンマ設定を保存できるものがあります。さらに、Photoshopのようにカラープロファイルを処理できるソフトもあります。しかし3ds Maxでは、基本的にそれらの情報は無視され、各ピクセルのRGBデータをそのまま扱います。例として、Photoshopでデジカメの写真を編集してマッピング画像を作ったとしましょう。その作業環境がガンマ2.2であった場合、作成された画像はその環境で最適な状態ということですよね。それを保存すると、ガンマ2.2環境用のRGBデータを持つ画像の完成ということになり、これを[ガンマ2.2の画像]と呼ぶことができます。別の例として、ガンマ1.8環境で作られた画像をガンマ2.2環境で開くと、コントラストが強くなってしまいます。そのままガンマ2.2環境で明るさを補正して納得できる状態のものを保存すれば、[ガンマ2.2の画像]になります。このように、3ds Maxで扱う画像ファイルのガンマとは、それを最適に表示できる環境のガンマと考えれば分かりやすいと思います。


LWFでのカラーの扱い

・カラーの設定
すべてのカラーは、リニアスペースで設定しなければなりません。さて、RGB値は相対的な数値であることをご存知ですか?例えばDICなどのカラーガイドにはRGB値が書かれているものがあり、それはsRBGでの値ですよって明記されてます。つまり、sRGB環境においてその値を設定すれば、カラーチップに近いものが再現できるということです。そこでガンマに限って言えば、書かれているRGB値はsRGBのガンマ2.2の状況で設定することが前提なので、リニアスペースでそのカラーを再現するにはガンマ補正の必要があります。ただしRGB値のすべてが中間値でない場合は(例えばRGB=255,255,0の黄色など)、ガンマは何の影響も与えないことに注意しましょう。

では、ガンマを2.2に設定した3ds Maxのカラーセレクタはどう扱えば良いでしょう?結論を言えば、数値ではなく見た目でカラーを設定するときのみ、そのまま使用してください。これまで、ほとんどの人はガンマ2.2環境でRGB値を指定していて、それが染み付いています。今回のワークフローでは、リニアスペースでのRGB値を指定しなければなりませんが感覚的に不可能です。そこで、慣れているガンマ2.2でのRGB値を使う事になりますが、その設定を行った後、ガンマ補正を行いリニアスペースに変換しましょう。

linearworkflow_3_03.gif 例として、ガンマ2.2環境で作成したカラーについて、見た目をそのままにガンマ1.0環境に変換するとこのようなRGBになります。ここでは、あくまでもガンマの違いのみに着目しているので、カラースペースは無視してください。LWFでは、リニアスペース以外で選択したカラーは逆補正してリニア化し、レンダラーに渡さなければなりません。

標準スキャンラインの場合
linearworkflow_3_04.gif [カラー補正マップ]を用いて、リニアスペースに変換できます。入力する数値はガンマの逆数です。ここでは2.2の逆数になるので、1/2.2という計算で「0.454」を入力します。

linearworkflow_3_05.gif [ColorCorrect]というフリープラグインを用いても可能です。

http://www.cuneytozdas.com/software/3dsmax/ 入力する数値は、ガンマ値そのままです。

mental rayの場合
linearworkflow_3_06.gif [Utility Gamma & Gain マップ]を用います。ガンマ値をそのまま入力して、Reverse Gamma ... をチェックします。

・マッピング画像の設定
カラーの考え方と同じで、ビットマップデータをマッピング画像として読み込むときは、その画像をリニアスペースに変換しなければなりません。いくつか方法を示しますが、チームで作業している場合はルールを統一しておかないと他人のファイルを開いたらガンマが違っていたということになるので気をつけましょう。

linearworkflow_3_07.jpeg このガンマ2.2の画像を取り込みます。[ガンマ/LUT補正を使用]をチェックすると、ビットマップファイルを選択するときのガンマ設定がアクティブになります。

linearworkflow_3_08.jpeg 取り込むときにガンマ1.0を指定すると、ガンマ変換は行われません。プレビューは元素材より明るいですね。これは、もともとガンマ2.2の素材をさらに3ds Max側で明るくしてディスプレイに送っているのでこのようになってしまいます。

linearworkflow_3_09.jpeg 取り込むときのガンマを2.2にしました。読み込まれるビットマップは、そのガンマにあわせることによってリニア化されます。3ds Maxの設定ガンマではないことに注意してください。元素材が1.8だったら、ここの設定も1.8にします。

linearworkflow_3_10.jpeg 読み込む際に、真ん中のオプションを選択した場合、[ガンマとLUT]タブでの設定値が使用されます。多くのマッピング素材がガンマ2.2環境で作られているので、このような設定をしておけば少し楽です。しかし、別の3ds Maxで開いたときに[入力ファイルのガンマ]が異なる場合、補正がずれるので注意しましょう。

より明示的に設定するには、前述のカラー補正で説明したマップを用います。サブマップにマッピング画像をガンマ1.0で読み込み、各マップの設定でその補正値を設定すればOKです。ひと手間多くなりますが、補正値の確認が容易なので、ちょっと便利です。

linearworkflow_3_11.jpeg3ds Maxで使用できるその他のマップ(ノイズやグラデーションランプなど)も、見た目で決めないのであれば[カラー補正マップ]や[Utility Gamma & Gain マップ]を用いてガンマ補正しなければなりません。このときの補正値はそのカラーのガンマを考慮しましょう(通常は2.2)。右の画像は、グラデーションランプを適用してレンダリングしたものです。奥は補正なし、手前は補正したものです。

もうひとつ注意することがあります。HDR画像の読み込み時にはガンマ1.0を必ず指定してください。HDR画像にはガンマという概念が無いので(もしくはガンマ1.0)補正すると正確な計算が出来なくなります。

・レンダリング画像の保存
3ds Maxでのレンダリングはリニアスペースで行われますが、今回の環境では表示されたレンダリングフレームウインドウはガンマ2.2のディスプレイ用に補正されています。データ自体はリニアなので、保存するときに再度ガンマを考慮しなければなりません。今回のワークフローでは、保存時にガンマ2.2を設定して焼き込みます。3ds Maxではカラープロファイルを割り当てることが出来ないので、保存した画像のガンマをPhotoshopなどでは認識できません。一般的にPhotoshopの作業スペースはsRGBまたはAdobeRGBの状況が多いと思います。どちらもガンマ2.2なので、レンダリング画像をPhotoshopなどで開けば、ガンマがズレることなくレタッチできるというわけです。さらに、そのままWindows標準のビューアなどで見ても中間値の明るさが変化しないのでガンマ2.2で保存すると汎用性が高くなります。

linearworkflow_3_12.gif 保存時にガンマを設定するには、このように数値を設定すればOKです。

linearworkflow_3_13.gif また、真ん中のオプションを使って、[ガンマとLUT]タブでの設定値を用いることもできます。

・LWFでのRGBデータフロー
ここで、RGBデータの流れを図示します。あまり見たくない図かもしれませんが、LWFを理解する過程では大切な部分なので、こういう図があったなぁということだけでも覚えておいてください。図中のガンマについて大文字Gと小文字gを使っていますが、Gはそのまま捉えてください。一方gについて、正確には示している数値の逆数なんですが、一般的に「ガンマ0.45の画像」とは言わないのでこのような表記をしました。また、ここでのCrは、模式的に強度1.0のライトが照射している部分で、Ciと同じと考えてください。最初は外部ファイルの入力についてです。

linearworkflow_3_14.gif

入力する画像やカラーのガンマは、ほとんどが2.2だと思いますがその限りではないので、逆補正が必要だということに留意してください。この図での黒いガンマ変換では、実際にデータが書き換えられており、グレーではデータそのものは変更されません。つまり、今回のフローではレンダリング画像の完成までに、入力するRGB値に対してガンマ変換が2回行われます。そのためフローティング値で確認すると若干のズレがあるかもしれませんが、Cmがガンマ2.2画像の場合、CogはCmと同じRGBデータになる反面、ColとCmは異なっています。この点において、Cogを書き出す方が感覚的に分かりやすいですね。純粋なLWFでは最後までガンマ変換が一度も行われないのですが、ガンマ1.0のマッピング画像を用意するのは面倒なので、今回と同じように逆変換して入力することが一般的だと思います。ただし、レンダリング画像はリニアで保存するので、ガンマ変換が最大でも入力時の1回で済むという点がデータの劣化を防いでいます。しかし、リニア画像はそのままディスプレイで表示すると暗くなってしまうので、表示/作業ガンマを設定できるソフト(Photoshopなど)を使って、画像処理はもちろん、表示そのものも行わなければなりません。

linearworkflow_3_15.gif

次に、3ds Maxのカラーセレクタで設定したカラーについてです。Cogの保存ガンマに合わせて逆補正を行う場合、CsとCogは同じ値になります。さらに、通常慣れている、ガンマ2.2でのRGB値を用いた場合も同じフローになります。また、前述の画像入力と同様にCiとColも同じになりますが、CiはCsにガンマ補正を掛けた計算結果なので、Ciを直接設定しているわけではありません。そのため、CsdとCrdは異なった表示になりますが、レンダリングフレームウインドウでCrについてカラーピッカーを用いればCiを確認することは出来ます。

linearworkflow_3_16.gif

補正しない場合のCsについては、Cogのみ異なったデータになります。注目する点は、補正した場合と違ってディスプレイに表示されるCsdとCrdは同じ表示になることです。このことが、「見た目」でカラーを設定するという意味です。つまり、データと見た目、どちらを優先させるかという考え方の違いでガンマ補正の有無が決まります。また、ひとつのシーンで両者を混在させても別に問題はありません。このカラーの考え方は、3ds Maxで使用できる各種マップについても適用されます。


ワークフローのまとめ

ここで、今回のワークフローをまとめておきます。

・[カスタマイズ]/[基本設定]の[ガンマとLUT]タブで、ガンマ2.2に設定する。
・入力画像はガンマ補正する。
・3ds Maxでのカラーは、適宜ガンマ補正する。
・他のグラデーションランプやノイズなどのマップも、適宜ガンマ補正する。
・保存時にg2.2を焼きこむ。

基本的にこれだけです。入力カラーを暗くして、出力カラーを明るくするというように捉えると分かりやすいと思います。とても長く説明しましたが、本質的な部分を理解しておけば、どのような環境でも対応できるでしょう。


これまでのシーンをLWFでレンダリング

これまでに作成したシーンをLWFでレンダリングするには次の手順を踏みます。
1.シーンを開いて、前述の3ds Maxでのガンマ2.2設定を行う。
2.すべてのカラーをG2.2で補正する。
3.マッピングデータも各ガンマ(ほとんどG2.2)補正を行う。

ここで、大きな問題が残ります。ライティングが明るいんです。というのは、ガンマ設定を行わずに作業していたシーンは、カラーの中間値が押し下げられた状態でライティングをしているので、それをガンマ2.2環境でレンダリングすると明るくなってしまうのです。ライト強度にも1/2.2=0.45を掛ければいいじゃないかと思うかもしれませんが、そう単純にはいかないんです。そういうわけで、ライティングを修正する時間がなければ、古いシーンではLWFを用いない方が良いでしょう。LWFは、新規のプロジェクトから使い始め、徐々に慣れていきましょう。

さて次回は、私も使用しているVrayでの注意点と、LWFに関する補足事項を説明したいと思います。そろそろLWFを終わりにしたいので、なんとか次回で切り上げるつもりです。

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。