【问题标题】:Java OpenGL drawing only visible texturesJava OpenGL仅绘制可见纹理
【发布时间】:2012-08-02 19:24:31
【问题描述】:

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

【问题讨论】:

    标签: opengl render tile


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢 :D 我会尽快添加添加,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多