CGBeginner

映画好きの個人CGクリエイターが試行錯誤した記録

フォローボタン

3dsMax+VRay+AfterEffectsでのリニアワークフロー設定

2016/09/06

リニアワークフローってややこしいですよね。

自身が3dsMax+VRay+AfterEffectsで作業することがメインのため、自分でわかるように、いろいろと調べあげた結果を備忘録します。

スポンサードリンク

3ds Max + V-Ray

Maxには、ガンマ/LUT設定というものがあります。

基本的に、これにチェックを入れて、出入力ガンマ2.2にすることで、Max内部の計算はすべてリニア空間で行い、マテリアルエディタ、レンダリングフレームなどの表示にガンマ2.2をかけて(明るくして)表示します。モニターは逆ガンマ(暗くなる)特性があるため、ガンマカーブが相殺されてモニターから見える色はリニアになります。もしガンマ/LUT補正がオフになっていると、Max内部でリニアとして計算された結果がそのまま表示され、モニターの逆ガンマによって暗く映ることになります。したがって、計算された本来の結果よりも暗い画像として感じてしまい、それを明るくするためにライトを強くしたりして、「見た目上」いい明るさの画像を作ることになってしまいます。
海外のWebサイトに挙げられていた設定画像を下に記します。
gamma_vray

そして、レンダリングした画像を保存する際に、Vrayなら、レンダリング設定のV-Ray frame bufferをオンにして、V-Ray raw image fileの項目の「Render to V-Ray raw image file」からEXRで保存することで、ガンマ補正のないリニアな16Bit画像が保存できます。

もし標準レンダリング機能から保存する場合は、Exrなら上記通り、Pngなら、ガンマ2.2をかけて保存します(自分流のやり方かもしれない)。すなわちPngは、普通の状態で保存するということです。

Vray Exposure Control

また、直接リニアワークフローとは関係ないですが、Vray exposure controlについても、以下のサイトを参考にしました。
Vray 2.0: Physical cam v.s. exposure control? Vray color mapping? confused!
リニアワークフローの利点として、デイライトシステムなどの物理的に正確な光のシミュレーションで、現実に即した画像を作ることができることです。その際露出制御が必要になってきます。従来は、Vrayの場合Vray physical cameraを使うほかなかったようですが、バージョン2から、露出設定ダイアログからVray exposure controlで制御できます。F値・シャッタースピード・ISOの値で制御できます。

ガンマとは何かを理解するにはこのサイトが役立ちそうです。
Gamma 2.2 setup or linear workflow

AfterEffects

これらのレンダー画像をリニアにコンポジットするために、AE内のプロジェクト設定で、

色深度:32bit/ch のFloat

作業用スペース:sRGB IEC61966-2.1

作業用スペースをリニア化にチェック

をします。32Bit floatで作業するのは、広いレンジをもつ画像データをクロップしてしまわないようにするため。これをすることによって1以上の明るさや0以下の暗さを扱えるため、ブレの表現がより現実に近づく。

作業用スペースをsRGBにするのは、世の中のモニターがほとんどすべてsRGB準拠のため。このカラースペースにすることで、世の中の殆どの画像(sRGB,Gamma2.2)をリニアに変換することができ、出力の際もsRGBに戻して出力できます。Rec709というのもあるみたいですが、ガンマ1.9らしいので混乱しそうだったのでやめときました。(僕のやり方ではプロの世界では通用しないかもしれません。)

作業用スペースをリニア化にチェックを入れないと、せっかく設定したsRGBカラースペースの意味がありません。これによって、sRGB画像がリニアになり、合成作業がリニアで行えます。加算処理で白飛びしにくく、物理的に正確な光の演算ができます。

 

以上が僕のリニアワークフロー設定。正直6割位しかわかっていないので、深くわかっている人がこの文を見ると虫酸が走るかもしれません。もし、勘違いや重大な誤解をしていましたら、指摘していただけるとありがたいです。お願い致します。

ReelSmart Motion Blur (RSMB)

VelocityマップからモーションブラーをあとづけできるAEプラグインのRSMBを使うとき、EXRで複数チャンネルを1ファイルにまとめ、EXTractoRでVelチャンネルを分離するとき、普通はR/G/Bと分かれているので困らなかったのですが、VelチャンネルだけX/Y/Zと分かれているので、以下のように設定しました。多分これで合ってるはず。

exr_velocity

また、このレイヤーをVelocity Vectorに指定するだけではうまく行きません。RSMBは、素材そのままのデータを読むので、エフェクトを加えた結果は読んでくれません。なので、このレイヤーをプリコンポーズして、Velocityコンポを作ります。そして、そのコンポの下に50%グレーの平面を置き、Velocityレイヤーを加算で重ねます。これで完成です。RSMBは、RGBの値が0.5(フロートなので0~1。8bitIntなら0~255)の値を、「動いていない」と判断して、そこからどれだけずれているかでモーションを認識しています。なので、全く動いていないところは0.5のグレーになっていないとおかしいというわけです。もしリニアじゃない画像(sRGBとか)の形式で(たとえばPNG)読み込んでしまった場合、素材の変換でRGBを保持にチェックを入れるか、Velコンポを作って露出補正でガンマを0.454545にしてみてください。要は中間グレーにさえなればいいです。

 

参考になったサイト

【Post】V-Ray ? リニアワークフロー&リニアライティング
3dsMAX + V-Rayでリニアワークフローを構築する
第4回:リニアワークフローについて<その4>
Global Illumination | VRayGlobalIllumination
Raw Global Illumination | VRayRawGlobalIllumination
After EffectsでOpenEXR - DataWindowとDisplayWindow
OpenEXR ファイル
【Post】V-Ray ? OpenEXR圧縮設定メモ
Vol.6:主要 3DCG ソフトウェアとの連帯・前編(3ds Max & Maya)
AfterEffectsでのリニア合成のお話(1)
第13回:「カラーマネジメントとリニアワークフローの違い」
AEでリニアワークフロー、カラーマネージメント
リニアワークフロー概要
AEでリニアワークの設定 メモ01
第36回:カラーマネジメント Rec.709は3種類ある?
After Effects ヘルプ / カラーマネジメント
Try OpenEXR in 3dsmax
[3ds max V-Ray] VFBの機能を利用してレンダリング画像を出力する方法
誤解されがちなガンマの話
分かる!リニアワークフローのコンポジット
リニアワークフロー AEでCGのシェーダー等の再構築の検証
Vray 2.0: Physical cam v.s. exposure control? Vray color mapping? confused!
Gamma 2.2 setup or linear workflow

スポンサードリンク

-3ds Max, After Effects