Java 如何在基于2d平铺的游戏中实现截锥剔除?(在正交视图中)

Java 如何在基于2d平铺的游戏中实现截锥剔除?(在正交视图中),java,opengl,2d,lwjgl,frustum,Java,Opengl,2d,Lwjgl,Frustum,我正在制作一个2d平铺基础游戏,当我渲染许多平铺时,fps会急剧下降。我知道为什么会发生这种情况,因为许多对象同时被渲染。我需要在正交视图中实现截锥剔除,但我不知道如何实现 我浏览了很多网站,整天都在搜索。但我仍然找不到如何在2d游戏中实现截锥剔除 注意:我使用的是VBOs。我很确定,如果这是一个简单的2D游戏,你不需要一个平截头体,你能不能在你的渲染方法中只做一个if语句来检查瓷砖是否仍在相机的边界内,如果不在,就不渲染它们 正交视图和透视视图的区别在于它们所代表的剪裁体积;对于透视而言,它是

我正在制作一个2d平铺基础游戏,当我渲染许多平铺时,fps会急剧下降。我知道为什么会发生这种情况,因为许多对象同时被渲染。我需要在正交视图中实现截锥剔除,但我不知道如何实现

我浏览了很多网站,整天都在搜索。但我仍然找不到如何在2d游戏中实现截锥剔除


注意:我使用的是VBOs。

我很确定,如果这是一个简单的2D游戏,你不需要一个平截头体,你能不能在你的渲染方法中只做一个if语句来检查瓷砖是否仍在相机的边界内,如果不在,就不渲染它们

正交视图和透视视图的区别在于它们所代表的剪裁体积;对于透视而言,它是一个平截头体或“方锥”,对于正交而言,它是一个简单的长方体


你只需要一个简单的AABB-AABB测试来挑选你的精灵,其实这很简单。

派对迟到了,但对于那些需要的人来说

你的瓷砖有多大?在一个简单的2D游戏中,果穗剔除通常是不必要的


如果确定剔除是问题所在,请将巨大的平铺贴图划分为几个较小的平铺贴图,然后仅绘制视图中的平铺贴图。其余部分是每个tilemap部分的简单AABB检查

所以。。。你对截锥剔除的哪一部分有困难?如何构造一个截锥,我不知道如何实际编码截锥。这是截锥剔除,除非你通常不会这样称呼它。参见普列伦的答案。