キューブマップ(Cubemap) は、周囲の環境を反射して表す正方形テクスチャが六つ一組になったものです。 六つの正方形のそれぞれが、オブジェクトを囲む架空の立方体のそれぞれの面になります。 それぞれの面が、ワールド軸の各方向 (上・下・左・右・前・後)の景観を現します。
キューブマップは、オブジェクトの反射や周囲環境を表すためによく使用されます。例えば、 スカイボックス や リフレクションプローブ にはキューブマップが頻繁に用いられます。
キューブマップの作成方法として望ましいのは、特別にレイアウトされたテクスチャ からインポートすることです。
テクスチャのインポートの種類を Cubemap
に設定すれば、後は Unity が処理を行ってくれます。一般的に使用されるいくつかのキューブマップのレイアウト
に対応しています。(ほとんどの場合それらは自動的に検知されます。)
縦横のクロス・レイアウトに加え、キューブマップ面の行と列の形式も使用可能です。
LatLong
レイアウト (緯度(Latitude)・経度(Longitude)。円筒形タイプ(Cylindrical)とも呼ばれる。) も頻繁に使用されます。パノラマ画像では
このレイアウトがよく使用されます。
SphereMap
(球状の環境マップ)画像も使用可能です。
デフォルトでは、Unity がインポートされたテクスチャのアスペクト比を判定し、上記の中からもっとも適切なレイアウトを選びます。 インポートが行われるとキューブマップが作成され、それをスカイボックスや反射に使用することができます。
Glossy Reflection
は、リフレクション プローブ によって使用されるキューブマップ テクスチャに便利です。
Glossy Reflection
では、キューブマップのミップレベルが特殊な方法(specular convolution・鏡面反射コンボリューション)で処理されています。
これは平滑度の異なるいろいろな面からの反射をシミュレートするのにも使用できます。
Unity では、六つの個々の テクスチャ からキューブマップを作成することもできます。 メニューから Assets > Create > Legacy > Cubemap を選択し、 インスペクターの空スポットに六つのテクスチャをドラッグしてください。
プロパティー: | 説明: |
---|---|
Right..Back Slots | 各キューブマップ面のテクスチャ。 |
Face Size | キューブマップの各面の幅と高さ(ピクセル単位)。このサイズに合うようにテクスチャのスケールが自動的に調節されます。 |
Mipmap | ミップマップを作成しますか? |
Linear | キューブマップがリニアカラーを使用するようにしますか? |
Readable | スクリプトがピクセルデータにアクセスできるようにキューブマップを設定しますか? |
(注) テクスチャのインポート種類として望ましい設定は “Cubemap” (上記参照)です。 “Cubemap” に設定すればキューブマップのテクスチャデータが圧縮され、端の処理や光沢反射のコンボリューションが実行でき、 HDR キューブマップも使用可能になります。
この他に、スクリプトを使用して Unity のシーンのコンテンツからキューブマップを生成する方法もあります。 関数 Camera.RenderToCubemap は、シーン内の好きな位置から六面の画像を記録することができます。 この関数のスクリプトレファレンスページにある参考コードを使用すれば メニューコマンドを追加できるので、タスクをより簡単にすることができます。