パフォーマンス

はじめに

Godot はバランスの取れたパフォーマンス哲学に従っています。パフォーマンスの世界では、速度に対して使いやすさや柔軟性をトレードオフすることが常にあります。その実際的な例をいくつか挙げます:

  • 大量のオブジェクトを効率的にレンダリングするのは簡単ですが、大規模なシーンをレンダリングする必要がある場合、非効率になる可能性があります。これを解決するには、レンダリングに可視性の計算を追加する必要があり、レンダリングの効率が低下しますが、同時にレンダリングされるオブジェクトが少なくなるため、全体的に効率は向上します。

  • レンダリングが必要なすべてのオブジェクトに対して、すべてのマテリアルのプロパティを設定するのも時間がかかります。これを解決するために、オブジェクトはコストを削減するためにマテリアル別にソートされますが、同時に並べ替えにもコストがかかります。

  • 3Dの物理でも同様の状況が発生します。大量の物理オブジェクト (SAPなど) を処理するための最適なアルゴリズムは、オブジェクトの挿入/削除とレイキャスティングが遅いです。挿入と削除、レイキャスティングが高速なアルゴリズムでは、多くのアクティブなオブジェクトを処理できません。

他にも、このような例は数多くあります。ゲームエンジンは本質的に汎用性を追求しているため、ある状況では高速でも、他の状況では低速になる可能性のあるアルゴリズムや、高速だが使いにくいアルゴリズムよりも、バランスの取れたアルゴリズムが常に好まれます。

Godotも例外ではありません。バックエンドは異なるアルゴリズムに交換可能なように設計されていますが、デフォルトのアルゴリズムは、パフォーマンスよりもバランスと柔軟性を優先します。

これを明確にした上で、このチュートリアルセクションの目的は、Godot から最大限のパフォーマンスを引き出す方法を説明することです。チュートリアルはどの順序で読んでもかまいませんが、 一般的な最適化のTips から始めることをお勧めします。

一般

CPU

GPU

3D

スレッド