名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

【Unity】LODのカメラ距離がおかしい時に確認したいこと

こんにちは、SAT-BOXのコアラです


LOD (Level of Detail) を使って描画の負荷を軽減するのはよくあることですが、Unityで少し引っかかりそうだなと思った落とし穴があるので紹介します

Unityでは LOD Group というコンポーネントでLODを設定できます
試しにCubeとQuadを設定してシーンカメラで見てみれば、距離によって切り替わる様子が確認できます

カメラが近いとき↓
f:id:sat-box:20210308145719p:plain
遠いとき↓
f:id:sat-box:20210308145728p:plain

カメラの距離がパーセントで出てますね

ただ、とある状態だとこうなります

f:id:sat-box:20210308150017p:plain

明らかにさっきより断然近い状態なんですが、距離のパーセントはさっきのQuadとほぼ変わりません
Cubeになってないとおかしい距離ですよね


これは、Qualityの設定が原因です
Project Settings > Qualityの項目の中に LOD Bias というものがあり、これが LOD Group のカメラ距離に関わっています

f:id:sat-box:20210308150145p:plain

1を基準とすると、2のときは LOD 0 から LOD 1に切り替わるまでの距離が2倍になります
逆に0.5だと、1のときの2分の1の距離ですね

要は、数字が大きいほど高品質な設定になります


さっきの画像で、かなり近いのにQuadだったのはここの数値が低かったからなんですね
QualityごとにLODも調整したいので有って当然な項目なのですが、存在を知ってないと後で大変なことになるかもしれないですね

LODの設定をする際は、LOD Biasも確認してから行うようにしましょう!

以上です