0

我正在尝试在 LWJGL 中创建一个小型 2D 游戏,但是,大型地图将帧速率从大约 3000 下降到大约 15。我知道这主要是因为它在屏幕上绘制每个图块,即使你只能看到一小部分其中。我想知道如何找到哪些瓷砖是可见的,并且只将它们打印到屏幕上。

4

1 回答 1

2

这称为剔除,最著名的技术之一是frustum culling. 通常,您定义一个包围体并测试一个对象是否位于其中。

例如,在 2D 中,您可以定义一个矩形(与您的窗口/视口相同)并为每个对象(平铺/精灵/其他)定义一个边界框。圆形是一个易于测试的边界框,但矩形也可以。

然后您只需测试对象的边界框和视口矩形是否相交。如果是,请绘制它,否则,不要。

有关 2d 剔除的更多详细信息,另请参阅另一个 SE 站点上的此答案。

于 2012-08-02T19:30:59.120 回答