本日はHoloLensのトラブルシューティング枠です。
HoloLens開発を行っている中で開発中に多くのトラブルに遭遇することがあります。
今回はその中で片目にしか描画されない問題の解消を行います。
〇原因
この現象はオブジェクトに使用しているMaterialのShaderがシングルパスインスタンシングレンダリングに対応していないため発生しています。
シングルパスインスタンシングレンダリングとは、Unityによってサポートされているレンダリングパスのことで、主にHoloLens やOculusQuestなどの複眼のデバイスで使用できるものになります。
こういったデバイスの場合、右目、左目でそれぞれ右目用、左目用と二つの描画を行います。
この際に二つの独立した処理を行うのではなく、共通している部分を同じ処理にして差異のある処理の見分けることで処理の負荷を下げる仕組みです。
しかしシングルパスインスタンシングレンダリングはShaderが対応している必要があります。
対応していないShaderを使用した場合片目のみの描画になります。
〇対処法(HoloLensの場合)
Unityの[BuildSettings]から[PlayerSettings]を開きます。
[xRSettings]から[Stereo RenderingMode]を[multiPath]に切り替えます。 これでシングルパスインスタンシングレンダリングが行われず、左右でそれぞれ描画するマルチパスレンダリングが行われるようになります。
これで両目に描画されるようになります。
シングルパスインスタンシングレンダリングは描画の負荷を最適化するにあたり非常に便利な機能ですが、Shaderに依存するため、Shaderを変えるかマルチパスに変えます。 本日は以上です。