パノラマ画像からキューブマップを作成し、立方体にテクスチャマッピング
パノラマ画像からキューブマップを作成し、立方体にテクスチャマッピングします。
Shade3Dではレンダリングとして「キューブマップ」として6面のテクスチャをレンダリングする機能があります。
これを利用します。
パノラマ画像を背景に読み込み
Shade3Dで新規シーンを作成し、パノラマ画像を背景に読み込みます。
以下は、ShadeExplorerの背景から素材を読み込みました。
レンダリング設定で「パノラマ」を「キューブマップ」にする
レンダリング設定の「効果」タブの「パノラマ」で「キューブマップ」を選択します。
レンダリング解像度を変更
イメージウィンドウの下端で、レンダリング画像サイズを「1 : 6」の比率になるように変更します。
この場合は、256 x 1536の解像度でレンダリングしています。
色補正の「ガンマ」を2.2に変更
パノラマでHDRI(hdr/exr形式)を使用している場合、色補正の「ガンマ」を2.2に変更します。
レンダリング
レンダリングします。
以下のようになりました(これは縮小しています)。
これをファイル保存します。「room_cubemap.exr」として保存しました。
キューブマップの画像ができたので、このシーンは閉じます。
ポリゴンメッシュの立方体を作成
新規シーンを作成し、ポリゴンメッシュの立方体を配置します。
ツールボックスの「作成」-「形状」-「ポリゴン」-「直方体」を選択し、
1000m x 1000m x 1000mの立方体にしました。
キューブマップテクスチャを読み込み
レンダリングしたキューブマップテクスチャ「room_cubemap.exr」を
ツールボックスの「作成」-「その他」-「イメージ」から読み込みます。
以下のようにシーンのイメージパートに表示されました。
ポリゴンメッシュにキューブマップテクスチャを割り当て
キューブマップとしてレンダリングされた画像は、以下のように上から順番に6面が展開されています。
このキューブマップの6面は、内側から見たときの+X/-X/+Y/-Y/+Z/-Z方向への投影となります。
これをポリゴンメッシュにマッピングしていきます。
ポリゴンメッシュの表面材質を作成し、マッピングでキューブマップテクスチャを指定します。
「投影」は初期状態の「ラップ」(UVマッピング)のままにしておきます。
この段階では、キューブマップテクスチャが6方面に貼られていないため、UVを調整します。
ブラウザでポリゴンメッシュを選択し、UV図面を表示すると初期状態では6つの面が重なった状態で配置されています。
UV図面上で形状編集モード+頂点選択モードで、V=1.0の位置にある頂点2つを選択します。
実際は6つの面が重なっているため、2 x 6 = 12頂点が選択されることになります。
これをマニピュレータを使用して-V方向(スクリーンから見て上方向)に少し移動し、ツールパラメータでV値に「-0.16666 * 5」を入力します。
数値入力フィールドでは、Windowsの場合は[Ctrl]キー(Macの場合は[Option]キー)を押しながら数値入力ボックスをクリックすることで、
小数点以下2桁以上の入力が可能になります。
四則演算や簡単な数式の入力も可能です。詳しくは「数値入力部で数式を入れる」もご参照くださいませ。
キューブマップテクスチャのV方向に6つの面が並んでいるため、「(1.0 / 6.0) = 0.16666」がテクスチャのV方向のサイズになります。
これを-V方向に5つ分の移動、となるので「-0.16666 * 5」の計算になります。
UV図面のメニューより、「画像を表示」をオン、「UVポイントの吸着」をオフにします。
「UVポイントの吸着」をオフにすることにより、UV図面上で重なっている頂点は面ごとに別々に処理できるようになります。
+Xのマッピング
形状編集モード + 面選択モードに移行し、透視図で左下の座標軸を確認しながら+X方向の面を選択します。
ポリゴンメッシュの立方体に対して、内側から見たキューブマップの貼り付けを行うため、
上記画像では面の左右が逆転しています。
UV図面上でマニピュレータの-U方向に縮小し、ツールパラメータでU値を-1.0にして確定します。
-Xのマッピング
透視図で左下の座標軸を確認しながら-X方向の面を選択します。
UV図面でマニピュレータを使ってV方向に移動し、ツールパラメータでV値を0.16666とします。
これで、UV図面上で-X面は1つ下に移動しました。
立方体の内側から見る場合はこの面の左右のマッピングが逆になるため、
UV図面上でマニピュレータの-U方向に縮小し、ツールパラメータでU値を-1.0にして確定します。
+Yのマッピング
透視図で左下の座標軸を確認しながら+Y方向の面を選択します。
UV図面でマニピュレータを使ってV方向に移動し、ツールパラメータでV値を(0.16666 * 2)とします。
+Y面は、立方体内部から上から見上げるとUV図面上に表示されているイメージのようにマッピングされるようになります。
そのため、上記画像では上下が逆転していることになります。
UV図面上でマニピュレータを使って-V方向に縮小し、ツールパラメータでV値を-1.0にして確定します。
+X/-X/+Y面のテクスチャが透視図上でつながっているのを確認します。
-Yのマッピング
透視図で左下の座標軸を確認しながら-Y方向の面を選択します。
UV図面でマニピュレータを使ってV方向に移動し、ツールパラメータでV値を(0.16666 * 3)とします。
-Y面は、立方体内部から見下ろすとUV図面上に表示されているイメージのようにマッピングされるようになります。
+Y面の時と同じで、上記画像では上下が逆転していることになります。
UV図面上でマニピュレータを使って-V方向に縮小し、ツールパラメータでV値を-1.0にして確定します。
+Zのマッピング
透視図で左下の座標軸を確認しながら+Z方向の面を選択します。
UV図面でマニピュレータを使ってV方向に移動し、ツールパラメータでV値を(0.16666 * 4)とします。
立方体の内側から見ると、この面の左右のマッピングが逆になるため、
UV図面上でマニピュレータの-U方向に縮小し、ツールパラメータでU値を-1.0にして確定します。
+Z面につながる、+X/-X/+Y/-Y面のテクスチャが連続していることを確認します。
-Zのマッピング
透視図で左下の座標軸を確認しながら-Z方向の面を選択します。
UV図面でマニピュレータを使ってV方向に移動し、ツールパラメータでV値を(0.16666 * 5)とします。
立方体の内側から見ると、この面の左右のマッピングが逆になるため、
UV図面上でマニピュレータの-U方向に縮小し、ツールパラメータでU値を-1.0にして確定します。
透視図上で回転し、6面のすべてのテクスチャが連続していることを確認します。
以下の動画はプレビューレンダリングで回転させています。
表面材質の「その他」で「陰影付けしない」「影を落とさない」「影を表示しない」をオンにしています。
色補正でガンマ2.2にしています。
このキューブマップを貼り付ける処理は手間がかかるため、
「キューブマップテクスチャをポリゴンメッシュの立方体にマッピングする (スクリプト)」のスクリプトで自動化しています。