SFML是否在窗口之外渲染graphics?

当我在一个基于瓦片的地图上工作的时候,我认为如果我只渲染玩家在游戏窗口看到的东西,这将是一个好主意,但是之后我发现SFML已经足够优化,知道什么时候没有必须呈现这些东西。

比方说,我绘制了一个30×30平方的地图(一个中等的地图),但玩家只能看到一堆,而不是完全。 SFML会自动隐藏玩家看不到的东西,还是我应该自己隐藏?

简单的瓦片blitting引擎会自然剔除视口外的对象,因为如果使用软件渲染,他们几乎不得不这样做。 否则,GPU将自己进行扑杀。 无论哪种方式,每个瓷砖的实际渲染成本是最小的。 速度问题不是graphics设备中的渲染,而是您的游戏和高级graphicsAPI通过简单地考虑渲染每个图块来完成大量工作的事实。

也就是说,如果您对速度感兴趣,那么当它们在视口之外时逐个挑选对象不会给您带来太多收获。 用algorithm完全忽略了屏幕外的整个对象,你会好得多。

对于拼贴引擎,这与计算视口的边界拼贴一样简单,然后仅循环显示这些拼贴。 即使SFML淘汰对象,你也将获得巨大的净收益。 你避免在无法看到的瓷砖上循环。 您避免对无法看到的瓷砖进行绘画调用。 你避免需要任何剔除代码 – 快速与否 – 首先运行。

也就是说,一个10秒钟的Googlesearch表明SFML首席开发者确实建议你做自己的视锥(二维视图)剔除: http ://en.sfml-dev.org/forums/index.php? topic = 7933.0