Maya2017 Arnoldで360度のパノラマレンダリング③

どうも!Maya太郎です
前回、レンダリングの基本部分の説明に後半脱線してしまったのですが、今回はその続きです。

■前回のあらすじ■

パノラマレンダリングした画像をスカイシェーダーで背景マッピング(HDR)として活用。
プリミティブの球体を配置し、クロム球や、ガラス玉などの質感設定をすると
HDRパノラマ画像の背景のライティング、反射、屈折に反映されるものの
レンダリング設定をいろいろ調製する必要があった。(慣れれば簡単な作業)

Googleストリートビューのように周囲を見渡しつつ、
配置したオブジェクトがその空間に存在してるような合成が可能。

■接地するオブジェクトの合成■

前々回の作業でのCGシーン(パノラマレンダリングするオリジナルのシーン)を開き直して
カメラの地上からの高さを調べます。

地面となる平面オブジェクトはY軸=0の高さに揃えておりましたので、カメラの高さ=地上高となります。
今回の作例では2.212となっておりました。
2-10

 

■パノラマ写真の空間に地面となる平面を設置■

平面ポリゴンを作成し、高さ(Y軸)を2.212下げます。
これでカメラから見た地面は、原理上オリジナルの3D シーンと同じ位置に来るわけです。
3-2

適当なマテリアルを適用しました。(映り込みがあった方が雰囲気がつかみやすい)
道路に白黒の床タイルを敷き詰めたようなムードになっていますね…空や建物もぼんやり映り込んでいます。
3-3

当然のようにカメラを振り回しても違和感ないシーンになっています。
3-4

■パノラマ写真の空間にロボット設置■

つづいて、以前の作例で使ったロボットを配置します。
読み込んで、きちんと地面となるポリゴンに設置する様に配置します。
球体は邪魔なので取り除きました。
3-5

■地面の平面ポリゴンに影を落とす■

現在チェック模様の仮マテリアルを設定している板ポリゴンに新しく、ShadowCatcherを割り当てます。
これはソフトウェアレンダラーでの「Use Background」に該当する機能のようです。
3-6

設定しただけでは、地面は真っ黒のままです。
いくつかの設定が必要です。
3-7

■いくつかの設定とは…■

板オブジェクトのアトリビュート内[Arnold]のOpaque(不透明度)のチェックを外します。
この作業は、Arnoldでガラスなどの透明、屈折物に対して頻繁に行う操作になります。
覚えておきましょう!
3-8

続いてShadowCatcherアトリビュート内の
Enable Transparencyのチェックをオンにします。
3-9
どちらも透明度のスイッチを入れるようなものですね。

すると地面の平面が透明になりました。しかし影が落ちていません。
3-10
これはシーンの照明に何を使うかによって結果が異なるので一概に言い切れないのですが、
今回使用しているスカイシェーダーは、ライトではなくシェーダーなので、影は落ちない…という事らしいです。
今回は、影を落とすためのライトとして、ディレクショナルライトを置くことにします。

■影落とし用のライト■

影用のディレクショナルライトを配置します。
3-11

背景の建物の影の向きに合わせます。
3-12

3-13

デイレクショナルライトの影のボケはArnold用アトリビュートの「Angle」で調整可能です。
ライトの強度は0だと影が消えてしまうので、微小値を入力してライトの影響をなるべく与えないようにしましょう。
3-14

ShadowCatcherのアトリビュートか「Shadow Transparency」を調整することで影の濃さも調整可能です。3-15

「完全に一致」とまではいきませんが、パノラマ画像に配置したオブジェクトの接地、影表現ができました。3-16

■まとめ■

作例が行き当たりばったりで、調整不足もありますが皆様なりにいろいろ試行錯誤してください。
ShadowCatcheの説明にはこの作例は不向きかな?と思ったのですがついでにやってしまいました。後日、別例でもっとしっかりしたものを紹介したいと思います。

パノラマ画像は応用幅が広く、いろんな用途に使えるので、次回はもう少し別の使い方を紹介しようと思います。