Unity の VR でのディスプレイに近いあたりの仕様について調査
(いまいちまとまりのないタイトル…)
Unity の VR 仕様まわり
Unity チュートリアルより
VRでのユーザーインターフェース - 「ワールドスペースに UI を置け」という方針とのこと
理由は、人間の眼は近過ぎる物には焦点を合わせることができないことに加え、 Unity VR が Screen Space-Overlay に対応していないからです。
VRSettings showDeviceView
- VRChat の場合、これが true になっている?
- 「可能であれば」という言い回しが微妙。どういうことなのだろう?
- VRChat で VR の左目がデスクトップに出ているのは確認できた。
- 「メインディスプレイ」と呼ぶのが Unity 用語としては正しいっぽい。
Single-Pass Stereo rendering
Unity マニュアル Single-Pass Stereo rendering - Single-Pass Stereo rendering 両目の一枚の画像としてレンダリングするモード - VRChat がこれになっているかは未調査 - このモードに関するシェーダーに提供されている機能の解説あり
Reddit での話題
Unity GUI elements don't show up in Vive? - UI が VR (つまり HMD)に表示されないんだけど、という質問 - 解は「ワールドスペースに UI を置け」
HMD(VR)と メインディスプレイ(デスクトップ)で別の画面を出す
- UnityでOculus側とディスプレイ側に別々の視点の映像を表示する
- Unity + SteamVR + Vive: output separately to monitor
- ほぼ同様の話題の SteamVR Developer Hardware でのやりとり
- Unity - multiple cameras, one for HMD, one for Monitor
Steam VR
- Steam VR のメニューに「ディスプレイミラー」という項目がある
- 次のようなウィンドウが現れる
まとめ、考察
- スクリーンスペースの UI は HMD では Unity の環境により故意に無効にされているのだろう
- シェーダーならば VR の視野全面に対して描画できるっぽい
- 視差を考慮した実装も頑張ればできそう
- スクリーンスペースの UI を表示するとメインディスプレイには表示されるらしい
- 単なるミラー(同じものの表示)ではないということ??