本日はhololensの学習枠です。
今回トライするのは、壁や空間に窓が開いてその向こうに別の風景が見える、という技術です。
まずは技術の理解からです。以下の技術ブログでサンプルプロジェクトが提供されています。
tips.hecomi.com
今回はこちらを参考に技術を理解していきます。
hecomi/HoloLensPlayground をダウンロードしてプロジェクトを開きました。

シェーダやSpatialMappingを利用するため、合わせてHoloToolKitもインポートします。

「方法1」の技術について確認します。
HoloLens_Stencil_Window/Scenes にある Pattern1 のシーンがそれのようです。

HoloToolkit -> Configure -> Apply Hololens Project Settings でビルド設定を変更します。

本プロジェクトは Spatial Mapping を使うので SpatialPerception の許可設定が必要です。
Edit -> Project Setting -> Player から PlayerSettings を開きます。
Windows Store App Settings の Publishing Settings にある Capabilities から SpatialPerception をチェックします。

後は File -> Build Settings でビルド設定を開き、Add Scene でシーンを追加して「Build」をクリックで完了です。

hololensにインストールして起動します。

壁をタップすると……。

窓が出ました……が、この時点では窓の向こうには何も見えません。
これは、そのままだとSkyboxオブジェクトのNormalSkyマテリアルにテクスチャが割り当てられていないためです。
プロジェクト内を探しましたが、サンプルテクスチャはないので自分で好きな画像を設定してくださいと言う事だと思います。
(違ってたらすいません)
全天球の表示を行うため、Cubemapに対応したテクスチャが必要となります。
丁度、手元にBlender講座で利用したイイ感じの空テクスチャがあったので利用します。
画像ファイルをインポートしたら、画像のInspectorから以下の設定を行います。
TextureType:Default
TextureShape:cube

「Apply」ボタンを押して反映すると、以下のようにCubemapテクスチャが作成されます。

ではテクスチャを適用してみます。
HoloLens_Stencil_Window -> Materials にある NormalSky.mat のInspectorを開きます。
Cubemapに先ほどインポートしたCubemapテクスチャを設定します。

この状態で改めてビルドしてみると……。

今度は窓の向こうに空が見えるようになりました。
次回は本プロジェクトのシェーダの処理を読み解き、技術について理解を深めます。
bluebirdofoz.hatenablog.com