stepismのブログ

ゲームだったりそれ以外だったり。色々やってるプログラマです。

【Unity】視錐台(カメラ)カリングについて

   

カリングといっても、いくつか種類があるのですが、今回は視錐台(カメラ)カリングについて。
また、Unityを使って動作確認してはいますが、アルゴリズムの話なので、他の言語に置き換えることは出来ると思います。

視錐台(しすいだい)については、公式にも説明がざっくりと、本当にざっくりと載ってます。

Unity - マニュアル: 視錐台を理解する

公式ドキュメントにいろいろと書かれてはいますが、一言でいえば「3D空間上の実際に画面に表示される領域を定義したもの」になります。図で表すなら、

Near/Far間を結ぶ台形がそれです。

理解できたら、以下のコードが有効に働くはずです。

やっていること。
1. GeometryUtility.CalculateFrustumPlanes カメラの視錐台(表示領域)を取得。
2. 内外判定用のバウンディングボックスをチェック。
3. 内側と判定されたものに対して、表示をON、外側と判定されたものに対しては表示をOFFにする。

結果

奥のオブジェクトが、カメラの表示範囲外になると消えているのが確認できます。

スポンサーリンク

スポンサーリンク

 - プログラミング