首页 > 解决方案 > 什么最适合优化 sfml 项目?

问题描述

做 2d 项目模拟器生活。当有很多生物时,项目开始挂起,导致生物的速度明显下降。你能推荐什么?也许使用着色器进行绘制或者有什么真正有用的东西?

标签: c++2dshadersfml

解决方案


没有你的代码很难帮助你,但我仍然可以根据我自己的经验给你一些建议。
由于您正在使用许多“实体”,因此这些实体之间可能存在某种交互。如果是这种情况, 四叉树(或简单的网格)可以帮助降低算法的复杂性。
但大多数时候,SFML 应用程序由于渲染效率低下而运行缓慢。有几种方法可以减少渲染时间:

  • 一次绘制所有内容(将所有顶点放在一个数组中并绘制一次,而不是一个一个地绘制一千个矩形)
  • 绘制更简单的对象(例如:点而不是矩形)
  • 不经常画画;您不必每次更新时都绘制。有一个时钟来测量自上次更新以来的时间,并在超过时间(60 FPS 为 1/60 秒)时绘制。

我对着色器了解不多,但对于你想做的工作来说,它们似乎有点矫枉过正。


推荐阅读