0

LWJGL 内で小さな 2D ゲームを作成しようとしていますが、大きなマップではフレーム レートが約 3000 から約 15 に低下します。これは主に、ごく一部しか表示されていないにもかかわらず、画面上のすべてのタイルが描画されていることが原因であることがわかっています。そのうちの。どのタイルが表示されるかを見つけて、それらを画面にのみ印刷する方法を知りたいです。

4

1 に答える 1

2

これはカリングと呼ばれ、最もよく知られている手法の 1 つは ですfrustum culling。通常、バウンディング ボリュームを定義し、オブジェクトがその中にあるかどうかをテストします。

たとえば、2D では、長方形 (ウィンドウ/ビューポートと同じ) を定義し、各オブジェクト (タイル/スプライトなど) に対して境界ボックスを定義できます。円は簡単にテストできるバウンディング ボックスですが、長方形も同様に機能します。

次に、オブジェクトのバウンディング ボックスとビューポートの四角形が交差するかどうかをテストします。ある場合は描き、そうでない場合は描かないでください。

2D カリングの詳細については、別の SE サイトのこの回答も参照してください。

于 2012-08-02T19:30:59.120 に答える