デニッキ

XRエンジニア🔰の備忘録・日記です.

VRアプリにおけるジッタ(揺れ)やジャダ(カクつき)を防ぐための設定

VRで物理演算時にカクつきとかが生じるときがあったりします.
それを防ぐための設定例です.

ジッタ,ジャダってどういう意味?

こちらの記事を参照してください.

xrdnk.hateblo.jp

Fixed Timestep のデフォルト設定

Edit > Project Settings > Time を見ると

f:id:xrdnk:20200418125745p:plain

デフォルトではこんな設定になっています.
Fixed Timestepが0.02となっていますが,これは50fpsを意味します.

Oculus Quest での Fixed Timestep 設定

Oculus Quest のディスプレイは 72fps なので,Quest専用にFixed Timestepを設定するとこんな感じになります.

f:id:xrdnk:20200418130709p:plain

これでQuestのディスプレイの72fpsで同じになるので(毎回同じになるとは限りませんが),カクつきは減ると思います.
残りのMaximum Allowed Timestep,Time Scale,Maximum Particle Timestepを1に設定しております.

docs.unity3d.com

ekulabo.com

他のVRヘッドセットの場合

Oculusヘッドセットはこんな感じです.

50Hz (Default) = 0.2
60Hz (Gear VR) = 0.0167
72Hz (Quest/Oculus Go) = 0.0138
80Hz (Rift S) = 0.0125
90Hz (Rift) = 0.0111

ヘッドセットのフレームレートをxとして, Fixed Timestep = 1/x となります.

forums.oculusvr.com

ヘッドセッドごとのFPS表はこちらで把握しましょう.
xr-comparison.yutokun.com

ということはHoloLens 2の場合は 1/60 = 0.0167 にしっかり設定しなおした方がいいかもしれないようなしれないような.

参照記事

野生の男さんのこちらの記事を読むと理解が進むと思います.
yaseino.hatenablog.com

dkrevel.com

あとはこのOculusのドキュメントとかも読みたい.

developer.oculus.com

developer.oculus.com

jeffrafter.com

こちらの記事だとQuestでもジッタ対策に1/90に設定している.
1/72と1/90どっちがええやろか.72fps以上ならいいのかな.(混乱)