V-Ray VFB2からのLUTをPhotoShopで使う

V-Ray VFB2からのLUTをPhotoShopで使う

V-Ray 5 のVFB2のカラコレ結果をLUTファイルとして出力して、PhotoshopでRAWに割り当てた時「微妙に同じ結果にならない」「明るい場所が潰れる」 と思った事はないでしょうか。

これは、LUTフォーマットの仕様に基づいた制限により引き起こされます。

Chaosフォーラムのこちらのスレッドで開発者が以下の様に説明しています:


PhotoShop等のソフトで、RAW(Beauty 32bit)にLUTを割り当てても完全に再現されない原因は、LUTフォーマットの仕様に基づいた制限です:

1. 最小値と最大値の問題 – LUTが修正できる最小値と最大値

これらの値はフォーマットのデフォルト仕様で省略されており、LUTは基本的に値[0,1]用であると想定されています。すべてのソフトウェアが実際に他の値をサポートしているかどうかは正確にはわかりません。
ここで問題となるのは、実際にどのような値を最小値と最大値に置くかということです。スチル画像の境界を決めるのは簡単ですが、アニメーションの複数のフレームに同じLUTを適用したい場合はどうすればよいでしょうか?

2. 固定サイズの3次元テーブル

LUTファイルにはN×N×N個のサンプルポイントが含まれます。サンプルポイントは等間隔に配置されています。これが重要な制限です。つまり、範囲が[0,1]で32点の場合、0、0.0322、0.0644などの値があるということです。範囲が[0-100]の場合は、0、3.2258、6.4516、範囲が[0,10000]の場合は、0、322.58、645.16などの値が得られます。
したがって、[0,1]外の範囲をカバーする高い精度と十分な範囲が必要な場合は、非常に巨大なLUTファイルをエクスポートする必要があります。このLUTの適用には非常に時間がかかり現実的ではありません。

現在V-RayのVFB2からは、[0,1]の範囲でのみ3次元テーブルをエクスポートし、N = 32を使用しています。


簡単に言うと、VFB2 から出力したLUTには32/16bitのダイナミックレンジ内で、[0,1]範囲のカラーテーブル情報しか格納していない事を意味します。

つまり、VFB2から出力したLUTを使用して、PhotoShopで同じ見た目で適用するには、32/16bit RAWの広大なダイナミックレンジを[0,1]範囲に予める様にトーンマッピングしてからVFBでカラコレを適用し、そのLUTを出力する必要があるという事になります。

ChaosフォーラムのこちらのスレッドでPhotoShopにて単純なラインハルト(Reinhard)トーンマッピングを適用する方法が公開されています。

数式で表すと

y=x/(x+1)

(yはトーンマップ後の値、xがRAW値です)
これにより、32bitのダイナミックレンジが[0,1]範囲に収まります。

VFBではExposureレイヤーを使って、上記と同じ単純なラインハルト(Reinhard)トーンマッピングを適用できます。

ここでは、PhotoShopとVFB2で単純なラインハルトトーンマッピングを使って、[0,1]範囲に収めた状態にする例を示します。

まず、V-Ray からRGBデータをハイダイナミックレンジ(RAW)で出力します。

V-Ray からRAW RGBデータを出力する方法

3dsMaxでは Frame Buffer ロールアウトから OpenEXR もしくは vrimg を選択します。(3dsMax標準のレンダリング出力は使用する必要はありません)

Mayaでは、Image Outputから OpenEXR (Multi Channnel)、もしくは vrimg を選択します。

SketchUp, Rhinoでは、Render Outputから File Typeに exr形式もしくはvrimg形式を選択します。

CINEMA 4Dではレンダリング基本設定で、V-Rayネイティブ出力システムを有効化し、フォーマットにexrもしくはvrimgを選択します。(CINEMA 4Dの”保存”設定は使用しません。)

ここで出力したOpenEXRはマルチチャンネルEXRで、32bitもしくは16bit RAWデータで出力されます。また全てレンダーエレメントがレイヤーとして1つのOpenEXRファイルに格納された状態で出力されます。

PhotoShopでマルチチャンネルOpenEXRを読み込む

このマルチチャンネル OpenEXR を PhotoShopで読み込むには ProEXR プラグイン もしくは EXR I/O プラグインが必要です。どちらも無償ですのでぜひ導入しましょう。なお、ProEXRをインストールすると V-Ray専用の vrimg フォーマットも直接 PhotoShopで読み込める様になります。

ProEXR

EXR-I/O

 

Back to Beauty エレメント

ついでに、V-Ray 5の Back to Beauty エレメントも紹介します。

Back to Beauty エレメントは、反射やGI、屈折、自己照明、等の要素を合成して最終的なレンダリングRGBを再構成する為に必要なレンダーエレメントを1発で追加してくれる便利なレンダーエレメントユーティリティです。Back to Beauty エレメントは現在3dsMaxとMayaで利用できます。
(手動でBeauty合成用エレメントを追加する手間が省けるだけで、Back to Beauty エレメントに特別な機能はありません。)

SketchUp、Rhino、Revitでは、以下図の囲まれたエレメントを全て追加するとBack to Beauty エレメントになります。

CINEMA 4Dではレンダーエレメントマネージャーで Beauty を掴んで中央にドラッグ&ドロップするだけです。

PhotoShopでV-Ray RAWを読み込む

PhotoShopで、レンダリングしたマルチチャンネルOpenEXRもしくは vrimg を読み込みます。

以下の様なレイヤー構成になっているので、RGBレイヤーは非表示にするか、削除しても構いません。(Alphaチャンネルも表示には不要です)

他のレイヤーは全て合成モードを「覆い焼き(リニア)- 加算」に変更しまます。すると最終的なレンダリングRGBが再現されるのを確認できるはずです。

 

上記では合成用のエレメントをフォルダに纏めていますが、最終的な結果をBeautyと呼びます。

Reinhardトーンマップの適用

それでは、Beautyに単純なラインハルト(Reinhard)トーンマッピングを適用します。

Beautyに対してチャンネルミキサーを適用し、R,G,B の各”平行調整”を+200%にセットし、チャンネルミキサーを”除算”にセットします。
平行調整+200%は「(x+1)」を意味し、”除算”する事で「 x/(x+1)」 となり、これで単純ラインハルトトーンマッピングを再現した事になります。)

オリジナルのRGBと比較すると、[0,1]を超えるハイライト部分が[0,1]に抑えられているのを確認できます。

 

次に VFB2 で単純なラインハルト(Reinhard)トーンマッピングを適用した見た目にする方法です。

VFB2では Expsureレイヤーを追加し、 HighLight Burn を 0 にセットします。これで単純ラインハルトトーンマッピングを再現した状態と同じになります。

これで、PhotoShop と VFB でダイナミックレンジが [0,1] に収まった状態になりました。

カラコレを適用

この状態で、VFBでカラコレを行います。VFB2では一番下からレイヤーが重ねられて行く設計になっているので、HighLight Burn を 0 にセットしたExposureレイヤーをカラコレの一番下に配置する点に注意してください。

目的のカラコレを達成したら、LUTを出力します。
ここでVFB2から LUTを出力する場合に1つ注意です。LUTを出力する直前にHighLight Burn を 0 にセットしたExpsureレイヤーを無効化します。この状態でDisplay Correctionを右クリックしてLUTを出力してください。


PhotoShopにて、一番上にカラールックアップ調整レイヤーを追加します。VFBから出力したLUTファイルを読み込みましょう。

以上で、VFBのカラコレ結果(HighLight Burn を 0 にセットしたExpsureレイヤーを再度有効化)と一致する事を確認してください。

以下は、VFBからPNG (8bit)で保存した画像と、上記RAW+LUT適用画像の比較です。(VFBからJPEGやPNG等の8bitデータで保存するとカラコレが焼き込まれます。)

ついでにBeautyレイヤーを使って PhotoShop上でスペキュラを弱くしたり、反射を弱くしたり、色味を変更(Lightingエレメントをカラー調整)できます。

 

以上がVFB2からのLUTデータをPhotoShopで一致させる手順です。

The following two tabs change content below.
Yamauchi
株式会社オークでV-Rayをサポートしています。