トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

MtoonはSinglePass Instanceだと片目にしか描画されない

SinglePass Instance

Hololens2にVRMモデルを表示するとき、SinglePass Instanceだとエラーが出てビルドできないことがあった。

f:id:bibinbaleo:20200415101504p:plain

ビルドできたとしても、VRMモデルだけ右目に表示されていなくて、アバターが一回り小さく見えた。

ここに書いてあった

シングルパスインスタンスレンダリングの一般的な問題の1つは、開発者がインスタンス化用に作成されていない既存のカスタムシェーダーを既に持っている場合に発生します。この機能を有効にした後、開発者は一部のゲームオブジェクトが片目でのみレンダリングされることに気付く場合があります。これは、関連付けられているカスタムシェーダーにインスタンス化に適切なプロパティがないためです。

この問題に対処する方法については、UnityのHoloLensのシングルパスステレオレンダリングを参照してください。

Performance recommendations for Unity - Mixed Reality | Microsoft Docs

 

解決法1:MultiPass

MultiPassにしたら直った。

同じ人いた

 

解決法2:シェーダーのコード変更

最初に、UNITY_VERTEX_OUTPUT_STEREO を出力構造体に加える必要があります。

次に、UNITY_SETUP_INSTANCE_ID() が呼び出された後に、そのステージの main 関数に UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO() を加える必要があります。

HoloLens のシングルパスステレオレンダリング - Unity マニュアル

 詳しくはここに書いてある

docs.unity3d.com

 

ポストエフェクト

ポストエフェクトをかけたときも、MultiPassじゃないと動かないことがあったので、特殊なシェーダーを使うときは気を付けたほうがいい

bibinbaleo.hatenablog.com

 最後に

ちなみに片目だけしかモデル表示されてないことに1日気づかなかった。

なんか小さくなったなーとしか思ってなかったよ・・・

案外片目だけでもいいんだね(?)