PhotoshopとV-Ray VFBのACEScg-sRGB表示を一致させる

OCIO - ACEScg表示で PhotoShiopとVFBが一致しない?

[このチュートリアルはChaosフォーラムのこのスレッドを株式会社オークで加筆した物です。]

V-Ray でACEScgワークフローを使用した結果(VFBのOCIO – ACEScg -sRGB 表示)とPhotoShopでの表示が一致しないぞ!と思われている方もいるかもしれません。

Photoshop は現在OCIOを標準サポートしていません。つまりここで解説する方法は Photoshop で ACEScg を表示するためのハックのようなものを紹介します。なお適切にACEScgのカラーマネージメントの元で32bitのレンダリング画像を編集したい場合、OCIO対応32bit Float編集ソフト(Fusion、Resolve、Nuke、Affinity photo等はOCIOネイティブ対応し、32bit画像の編集にフル対応)が必要です。

PhotoshopのOpenEXR読み込みに関する予め知っておきたい注意事項:

  • Photoshop では Float 16bit/32bit EXR をリニアに読み込み、独自の”sRGBビュー変換”を使用して画像を表示します。残念ながらこの独自の”sRGBビュー変換”を変更または制御することはできません。その為、このビュー変換を無しにするネガティブ変換を適用してこの問題を回避する必要があります。
  • Photoshopの16bitモードは float(浮動小数点) ではなく integer (整数)を使用するため、half-floatの 16bit EXR をロードすると 32 ビット モードになり、16bitにダウングレードすると整数モードになるためVFBの結果と一致しません。

必要ファイルのダウンロードと準備

Photoshop CC 用の OpenColorIO プラグインがfnord software で無償配布されていますので入手しましょう。

Zipを展開して “OpenColorIO PS.8bf” をPhotoShopのPlug-insフォルダに移動します。

さらに、ACES Configファイルをダウンロードします。
2022年8月時点で最新の ACES 1.2 Config をダウンロードします

Zipをお好きな場所に展開してください。

モニターのカラープロファイル

ちなみに、必須ではありませんがWindowsで、Windowsでのディスプレイのカラープロファイルと

PhotoShopで 編集 >> カラー設定 >> 作業用スペース >> RGB を ディスプレイのカラープロファイルと一致させてください。

一致していない場合、PhotoShop側で”色の校正 >> モニタ-RGB”を個別に適用する必要があります。

なんらかの理由でディスプレイデバイスに sRGB IEC61966-2.1 プロファイルを追加したい場合は以下図を参考にしてみてください。

V-Ray の ACEScg カラーマネージメント設定

V-Ray 5 以降のV-Rayでは、入力できるテクスチャやカラーのカラー空間として ACEScg にネイティブ対応しています。(需要が低い為、ACEScg以外は非対応)

レンダリング設定 >> Settingsタブ >> Color managemnet >> Rendering RGB primaries を “ACEScg”にセットしましょう。

入力されるテクスチャの色空間は、VRayBitmapの RGB color space prametes ロールアウトで指定できます。defaultを選択した場合、Color managemnetロールアウトの “Auto RGB primaries~”オプションを有効にする事で、テクスチャのファイル名から自動判別させる事ができます。(テクスチャ名に”_lin_srgb”, “_srgb”, “_acescg”を含めます)特にファイル名に指定が無い場合は変換は行われません。

カラーの指定は VRayColorマップ経由で行えます。

VFB の設定

V-Rayのレンダリング画像出力は 32bit float (RAW) なので、ACEScgより広い色空間です。
通常は、VFBの Display Correction を sRGB で表示すれば、ACEScg を単純にsRGBに変換した状態で常時されます。(表示だけsRGBという意味です)
この表示は特にACES- Output – sRGB の様なフィルムルックなトーン調整は行っていません。

一般的には、複数のソフトウェア間でカラーマネージメント設定を一致させるには、ACESで配布されているコンフィグファイルを使用して共通のカラー表示設定下で画像を表示します。

V-Rayの VFBで ACESのカラーコンフィグを使用するには OCIO を使用します。VFBの Disply Correction で OCIO を選択し

  • OCIO file にACES 1.2 Config の Zipに含まれていた “config.ocio” を選択します。
  • Input Colorspace に “ACES – ACEScg” を選択します。これによりACEScg色空間の範囲でカラーが入力されます。
  • Display Device は “ACES” です。(VFBでは他に選択できません)
  • View Transform は基本的にACEScg色空間から表示デバイス用の変換と考える事ができます。一般的に sRGBモニターで表示するのでここは “sRGB” を選択します。

なおこのACESのsRGB変換には、ミッドトーンのコントラストを拡大し、シャドウとハイライトを圧縮するトーンマッピングも含まれている点に注意が必要です。これによりVrayのレンダリングにフィルムルックの様な質感が与えられます。

※この事からVFBのDisply Correctionの”sRGB”表示と、OCIOの ACEScg – sRGB 表示は完全に一致しません。

このView Transform は基本的に表示のみに使用され、イメージの出力には焼き込まれません。
なんらかの理由で8bitイメージ(JPEGやPNG)にこのView Transformを焼き込みたい場合は、”Save in image”のチェックをつけて、8bitフォーマットを選択し、ガンマを無効(gamma=1.0)にして出力してください。これで8bitイメージの場合はVFBの結果と一致するはずです。

VFB を デフォルトで OCIO – ACEScg -sRGB で表示したい場合

VFBのDisply Correctionをデフォルトで OCIO (ACEScg – sRGB表示) にしたい場合は以下の環境変数を設定します。

  • VRAY_VFB_OCIO= 1で有効
  • OCIO= config.ocio のパス
  • VRAY_VFB_OCIO_INPUT_COLORSPACE= 入力カラー空間
  • VRAY_VFB_OCIO_DISPLAY_DEVICE= 表示デバイス V-Rayでは ACES のみをサポート
  • VRAY_VFB_OCIO_VIEW_TRANSFORM= 表示カラー空間 (一般的にはsRGB)

一番簡単なのは、バッチファイル(macOSやLinuxではコンソールスクリプト)で環境変数を宣言してプログラムを起動させる方法です。

Windows、3dsMax 2023 の場合、以下の様なバッチファイルを記載して .bat から起動すると、.batからの起動時のみ VFB のデフォルトが OCIOになります。

==例:config.ocioの保存場所が C:\aces_1.2の場合 =====================
set VRAY_VFB_OCIO=1
set OCIO=C:\aces_1.2\config.ocio
set VRAY_VFB_OCIO_INPUT_COLORSPACE=ACES – ACEScg
set VRAY_VFB_OCIO_DISPLAY_DEVICE=ACES
set VRAY_VFB_OCIO_VIEW_TRANSFORM=sRGB
start “title” “C:\Program Files\Autodesk\3ds Max 2023\3dsmax.exe”
=======================================

こちらからテキストファイルをダウンロードしてconfig.ocioの場所や3dsMaxのインストール先をご自身の使用環境に合わせて変更し、拡張子を .bat に変更してご利用ください。

ACEScg 変換 LUTファイルを作成する

PhotoShopを起動して何か画像を読み込みます。フィルター >> OpenColorIO >> OpenColorIOを呼び出します。

  • Configuration から Custom.. を選択して ACES 1.2 Config の Zipに含まれていた “config.ocio” を選択します。
  • Input Space を “ACES – ACEScg” を選択します。これによりACEScg色空間全ての範囲が入力されます。
  • Output Space を VFB で指定したView Transform (Output)を選択します。一般的には “Output – sRGB” です。

最後に左下の “Export” を押して、ファイルの種類を “cinespace (*.csp)”として保存します。
例えばここでは名前を ACEScg_sRGB_output_Tranform.csp とします。

なお、LUTファイル(.csp)を出力する事が目的なので、OKを押す必要はありません。(OK押すと画像にOCIO変換が適用[ベイク]されます)


さらに冒頭の「PhotoShopのOpenEXR読み込みに関する注意事項」で解説した、PhotoShopの「sRGBビュー変換」を打ち消す為の LUTファイルを作成します。

OCIOプラグインを起動して、再度 Customから ACES 1.2 Config を開き、以下の様に設定(sRGBからリニアに逆変換の設定)して “cinespace (*.csp)” をExportしましょう。

例えばここでは名前を inverce_sRGB.csp とします。

 

2つの .csp を作成したら準備完了です。(OCIOプラグイン自体は今後不要)

V-Rayからの保存

V-Rayからの保存は レンダリング設定 > V-Rayタブ > Frame buffer > V-Ray raw image file から OpenEXR 形式で出力します。

V-Ray VFBの保存ボタンから保存する場合は、Saveボタンを長押しして”save all image channels to single file”で保存する事をオススメします。V-RayネイティブのRAW保存でOpenEXRが保存されます。(3dsMax側のOpenEXR i/oを経由しません)

PhotoShopでの作業

まだ導入していない方は PhotoShop用の OpenEXR 読み込みプラグインをインストールしてください。どちらも無償で利用できます。感謝ですね。

ProEXR
https://www.fnordware.com/ProEXR/

Exr-IO
https://www.exr-io.com/

PhotoShopに OpenEXR ファイルを読み込んだら、カラールックアップレイヤを2つ作成します。

カラールックアップレイヤを選択して、属性ウィンドウの 3D LUTファイルから作成した .csp ファイルを読み込みます。

必ず ACEScg 変換LUTの後に、インバース用LUTを適用してください。
またBack_Beauty等のコンポジットを行う場合必ずこの2つのLUTを「レイヤーのTopに」おいてください。そうする事でビュー変換をベイクする事なくコンポジット中も見た目が保持されます。

以上で VFBの表示とPhotoShopの32bitイメージの表示が一致する筈です。

※もし微妙にカラーが違う場合、インバース用LUTを無効化してPhotoShop側で”色の校正 >> モニタ-RGB”を有効にしてみてください。

2in1 LUTファイル

Chaosフォーラムのこちらで、2つのlutsを1つのluts(.csp)に纏めた物が配布されています。こちらで1つのカラールックアップレイヤーでACEScg変換とPhotoShopの強制sRGBを打ち消すネガティブ変換を適用できます。しかし、モニターの色構成は適用できなくなるので注意しましょう。