标签: opengl render tile
我正在尝试在LWJGL中创建一个小型2D游戏,然而,大型地图会将帧速率从大约3000降低到大约15.我知道这主要是因为它正在绘制屏幕上的每个磁贴,即使你只能看到他们中的一小部分。我想知道如何找到哪些瓷砖可见,只打印到屏幕上。
答案 0 :(得分:2)
这称为culling,其中一项最着名的技术是frustum culling。通常,您定义一个边界体积并测试一个对象是否位于其中。
frustum culling
例如,在2D中,您可以定义一个矩形(与您的窗口/视口相同),并为每个对象(tile / sprite / whatever)定义一个边界框。圆是一个容易测试的边界框,但矩形也可以。
然后,您只需测试对象的边界框和视口矩形是否相交。如果是这样,请绘制它,否则,不要。
另请参阅另一个SE网站上的this回答,了解有关二维剔除的详细信息。