パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス オクルージョンカリング〜

オクルージョンカリング

オクルージョン カリングは、他のゲームオブジェクトによってビューから完全に隠されている (オクルージョンされている) ゲームオブジェクトのレンダリング計算を Unity が実行できないようにするプロセスです。

フレームごとに、カメラはシーン内のレンダラーを検査し、描画する必要のないレンダラーを除外 (カリング) するカリング操作を実行します。デフォルトでは、カメラは錐台カリングを実行します。これにより、カメラのビュー錐台内に収まらないすべてのレンダラーが除外されます。ただし、錐台カリングではレンダラーが他のゲームオブジェクトによって遮蔽されているかどうかはチェックされないため、Unity は最終フレームに表示されないレンダラーのレンダリング操作で CPU と GPU 時間を浪費する可能性があります。オクルージョン カリングにより、Unity によるこれらの無駄な操作の実行が停止されます。

通常の錐台カリングでは、カメラのビュー内にすべてのレンダラーがレンダリングされます。

オクルージョン カリングにより、近くのレンダラーによって完全に隠されているレンダラーが削除されます。

オクルージョン カリングを使用する場合

オクルージョン カリングによってプロジェクトの実行時のパフォーマンスが向上する可能性があるかどうかを判断するには、次の点を考慮してください。

無駄なレンダリング操作を防ぐことで、CPU 時間と GPU 時間の両方を節約できます。 Unity の組み込みオクルージョン カリングは、CPU 上でランタイム計算を実行します。これにより、節約される CPU 時間が相殺される可能性があります。したがって、プロジェクトがオーバードローにより GPU 依存になっている場合、オクルージョン カリングによってパフォーマンスが向上する可能性が最も高くなります。

Unity は実行時にオクルージョン カリング データをメモリに読み込みます。このデータをロードするのに十分なメモリがあることを確認する必要があります。

オクルージョン カリングは、小さく明確に定義された領域が固体のゲームオブジェクトによって互いに明確に分離されているシーンで最も効果的に機能します。一般的な例としては、廊下でつながった部屋が挙げられます。

オクルージョン カリングを使用してダイナミック ゲームオブジェクトをオクルードすることはできますが、ダイナミック ゲームオブジェクトは他のゲームオブジェクトをオクルージョンすることはできません。プロジェクトが実行時にシーン ジオメトリを生成する場合、Unity の組み込みオクルージョン カリングはプロジェクトには適していません。

オクルージョン カリングの仕組み

オクルージョン カリングにより、Unity エディターでシーンに関するデータが生成され、実行時にそのデータを使用してカメラが認識できる内容が決定されます。データを生成するプロセスはベーキングとして知られています。

オクルージョン カリング データをベイクすると、Unity はシーンをセルに分割し、セル内のジオメトリと隣接するセル間の可視性を記述するデータを生成します。次に、Unity は可能な場合はセルを結合して、生成されるデータのサイズを削減します。ベイク処理を設定するには、オクルージョン カリング ウィンドウでパラメータを変更し、シーンでオクルージョン エリアを使用します。

実行時に、Unity はこのベイク データをメモリに読み込み、オクルージョン カリング プロパティが有効になっているカメラごとに、データに対してクエリを実行して、そのカメラが認識できる内容を決定します。オクルージョン カリングが有効になっている場合、カメラは錐台カリングとオクルージョン カリングの両方を実行することに注意してください。

追加のリソース

Unity は、Umbra ライブラリを使用してオクルージョン カリングを実行します。 Umbra に関する詳細情報を含む記事へのリンクについては、「追加リソース」ページを参照してください。

    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス オクルージョンカリング〜
  • 場所:オンラインゲーム
  • 料金:¥0 (消費税込)