日本語版: CrossBounce Simulation

Toshiyuki Takahei edited this page Jun 1, 2015 · 2 revisions
Clone this wiki locally

CrossBounce Simulationツールは、メンタルレイのファイナルギャザーやIBLのLight Emission機能を使ってドーム内で起きる内部反射光の問題をシミュレーションします。このツールはドーム映像制作者が、実際のドームシアター環境で起こる曲面スクリーンでの光の拡散や反射の様子を正しく理解し、ドーム映像制作修正の助けにしてもらうために用意しました。

ドーム内反射はどのように見えるか?

下図はドームで初めて投影をする人向けに用意したドーム内反射の説明図です。

ドーム内反射のシミュレーション

左が元となるドームマスター形式の180度魚眼画像です。ドームマスター形式はドームシアターやプラネタリウムで上映するドーム映像で最もよく使われる形式です。

中央はCrossBounce Simulationツールで計算した、ドーム内での内部反射による光害の様子です。この内部反射光で映像が照らされることにより、投影像のコントラストが下がってしまいます。

右が、Photoshopで元のドームマスター画像に内部反射のシミュレーション結果を重ねたものです。これはドーム内で実際にこのドームマスター画像を投影した時に起こりうる最悪のケースです。ドームシアターが半球スクリーンにビデオプロジェクターで投影して映像を表示している限り、ある程度こういった内部反射による光害が発生してしまいます。

シミュレーションツールの制限は?

これはCrossBounce Simulationツールの最初のバージョンです。これを使うことで、"最終的に"ドーム映像を投影した時に起こりうる内部反射の様子をシミュレーションすることができます。

現在のところ、2種類のレンダリング方法で内部反射光の計算を行うことができます。- Mayaの「レンダー設定」ウィンドウから、メンタルレイのファイナルギャザリングか、メンタルレイのIBLノードにある環境ライティングのいずれかを選択できます。

将来的にはこのツールにさらに機能を追加して、ドームシアターの床や壁、座席からの光の反射も計算に入れたり、スクリーンゲインやドームの傾斜も考慮したシミュレーションを行えるようにしたいと考えています。

これを実現するには、実際のドームシアター施設と導入ベンダーからの協力を得て、一般的なドーム施設の図面や写真を提供してもらう必要があります。これらのデータを使うことで、内部反射シミュレーションツール用に円周座席や一方向座席のドームシアターのプリセットを作り、より正確なドーム内部反射のシミュレーションができるようにします。

もしこのオープンソースのCrossBounce Simulationツールに協力して頂けるのであれば、このツールの開発者Andrew Hazeldenまでメールでご連絡ください: andrew@andrewhazelden.com

まずドームシアター環境の写真やパノラマ写真があれば、CrossBounce Simulationツールの出力と実際のドームシアターでの投影の様子とを比較することができます。またそのドームシアターの座席数や座席の配置、ドームの大きさ、傾斜角度、スクリーンゲイン、プロジェクターの配置などの情報もあると助かります。今日のドームシアター環境の投影環境をシミュレーションできるツールを作成することで、一緒にドーム映像体験をより良いものにしていけると考えています。

CrossBounce Simulationツールの使い方

ステップ 1. Domemaster3Dシェーダー(バージョン1.6 alpha 7以降)をダウンロードしてインストールします: https://github.com/zicher3d-org/domemaster-stereo-shader

ステップ 2. Mayaを起動し、Domemaster3Dシェルフの[xB]アイコンをクリックします。

CrossBounce Simulationツール

ステップ 3. スクリプトを実行すると、読み込んだドーム画像に円形のαマスクシェーディングネットワークを追加するかどうかを質問されます。これを使ってドームマスター画像の四隅に書かれたタイトルやフレーム番号などを隠すことができます。 

FuldomeIBL Creationダイアログ

サンプル画像を使用するのであれば、このダイアログで"Yes"か"No"のどちらを指定してもかまいません。fulldome_2K.jpg画像ファイルはテスト用のソーステクスチャ画像として用意され、「レンダービュー」ウィンドウ内に参考として表示されます。

このデフォルトの画像は海に沈む太陽のドームマスター画像で、Domemaster3Dのsourceimagesフォルダに置かれています。 C:\Program Files\Domemaster3D\sourceimages\fulldome_2K.jpg

サンプルのドームマスター画像

CrossBounce Simulationツールのスクリプトの実行が終わると、新しく作成されたドーム映像用のdomeAFL_FOVが自動的に現在のレンダービューカメラになります。これにより、現在の「レンダービュー」ウィンドウでレンダリングを行なうだけで、正しいドーム映像レンダリングが行なわれます。

CrossBounce SimulationスクリプトはDomemaster3DシェーダーのFulldomeIBLツールを使用して、ドームマスター形式の連番画像の読み込みのための設定を行います。remapColor用の低ダイナミックレンジから高ダイナミックレンジへの変換プリセットによって、IBLベースの光源のシミュレーションが"8bit/チャンネル"のfulldome_2K.jpg画像に対して行なわれます。もしEXR形式のハイダイナミックレンジ画像を使用する場合は、ソース画像内の実際のハイダイナミックレンジ値を使うようremapColorの設定を変更してください。

Step 4. Domemaster3DシェルフのCrossBounce Simulationツールを実行したら、「ハイパーシェード」の**[テクスチャ]タブ**からdome_map_mentalrayTexture1という名前のmentalrayTextureノードから使用したい画像や連番画像を参照し、テクスチャ画像を更新してください。

ハイパーシェード内でのテクスチャ画像参照の修正

CrossBounce Simulationツールは画像の読み込みにDomemaster3DシェーダーのFulldomeIBLツールを使用しているので、レンダーファームでは1フレームごとのレンダージョブパケットを使用する必要があります。これによりメンタルレイが1フレームごとに連番画像テクスチャ画像を更新していきます。

注意: mentalrayTextureは「アトリビュートエディタ」の[追加のアトリビュート]欄を使用して連番画像の読み込みを制御しています。

mentalrayTextureの追加のアトリビュート

Step 5. 「レンダービュー」ウィンドウの[現在のフレームをレンダー]アイコンをクリックすると、メンタルレイがドーム内反射のシミュレーション画像のレンダリングを開始します。このレンダリング画像はドームシアター内の書く参考だけを表示しており、もとのドームマスター画像との合成は行なっていません。

ドーム内反射のシミュレーション

Tip: もしStep 5でレンダリングしたMayaの**「レンダービュー」内のオリジナルの画像をすぐに利用したければ、現在のプロジェクトの"images"**フォルダにある"tmp"フォルダを開いてください。このMayaの"images"フォルダをすばやく開くにはDomemaster3Dシェルフの[IMG]ボタンをクリックします。

Domemaster3DのIMGフォルダボタン

Step 6. レンダリングした画像を保存したら、これをもとのドームマスター画像C:\Program Files\Domemaster3D\sourceimages\fulldome_2K.jpgに PhotoshopやAfter Effectsで描画モード覆い焼き(リニア)- 加算で合成します。

Photoshop でのドーム内反射の合成

まず、背景となる元のドームマスター画像をPhotoshopに読み込みます。これを新しい.psd形式の画像として保存し、あとでレイヤー編集ができるようにしておきます。

CrossBounce Simulationのレンダリング画像を読み込みます。これを元のドームマスター画像と同じ大きさにリサイズします。

元のドームマスタ画像と同じファイルにレンダリング画像を貼り付けます。Photoshopで扱いやすいように、レンダリング画像のレイヤーに"CrossBounce"と名前を付けておきます。

CrossBounceレイヤーが一番上のレイヤーになるように並べ替え、レイヤーパレットで[描画モード]を覆い焼き(リニア)- 加算に設定します。CrossBounceレイヤーの不透明度を調整することで内部反射の強度を調整できます。

PhotoshopによるCrossBounceレイヤーの合成

元のドームマスター画像と、ドーム内反射の影響を合成した結果を見比べると、本当に驚くほど違うことがわかるはずです。

ボーナスTips

Pythonスクリプティング

もしこのCrossBounce Simulationツールを自分のパイプラインスクリプトに組み込みたい場合は、Pythonで下記のコードを使用します。

import domeCamera
reload(domeCamera)
domeCamera.forceMentalRayLoad()

import domeCrossBounce
reload(domeCrossBounce)
domeCrossBounce.createCrossBounce() 

CrossBounce Simulationのデフォルトの設定を変更したい場合は、下記にあるdomeCrossbounce.pyスクリプトを編集します。

C:\Program Files\Domemaster3D\maya\common\scripts\domeCrossBounce.py

Maya 2015 Light Emission

Maya 2015では、メンタルレイIBLシェイプノードの強化されたLight Emissionモードを使用できます。これにより、シーン内に主な光源となる小さなライトがあるようなシーンで、ファイナルギャザリングより鮮明で正確なドーム内反射シミュレーションができることがあります。

Mental Ray Light Emission

Light Emissionの機能を使う場合には、ファイナルギャザリングを無効化して同時に2つの光源シミュレーションが行なわれないようにする必要があります。

Light Emissionの機能を使う場合には「ハイパーシェード」内のdome_remapColorという名前のremapColorノードも調整する必要があります。これは、ドーム内反射シミュレーションの結果が「レンダービュー」内でひどく色あせて見えるような場合に必要な手順です。他のremapColorノードのアトリビュートプリセットを使って低ダイナミックレンジから高ダイナミックレンジへの変換を試してみてください。

WikiのこちらのページMaya Domemaster3D presets - remapColorで、さらに詳細な設定方法を説明しています。


(翻訳: 株式会社オリハルコンテクノロジーズ 高幣俊之)