c++ - 什么最适合优化 sfml 项目?
问题描述
做 2d 项目模拟器生活。当有很多生物时,项目开始挂起,导致生物的速度明显下降。你能推荐什么?也许使用着色器进行绘制或者有什么真正有用的东西?
解决方案
没有你的代码很难帮助你,但我仍然可以根据我自己的经验给你一些建议。
由于您正在使用许多“实体”,因此这些实体之间可能存在某种交互。如果是这种情况, 四叉树(或简单的网格)可以帮助降低算法的复杂性。
但大多数时候,SFML 应用程序由于渲染效率低下而运行缓慢。有几种方法可以减少渲染时间:
- 一次绘制所有内容(将所有顶点放在一个数组中并绘制一次,而不是一个一个地绘制一千个矩形)
- 绘制更简单的对象(例如:点而不是矩形)
- 不经常画画;您不必每次更新时都绘制。有一个时钟来测量自上次更新以来的时间,并在超过时间(60 FPS 为 1/60 秒)时绘制。
我对着色器了解不多,但对于你想做的工作来说,它们似乎有点矫枉过正。
推荐阅读
- r - 从 selectizeInput 中选择多个选项并为 r 中的每个选项绘制多条线
- c++ - 如何解决 C++ 中的 Boost 版本冲突?
- android - Android:在处理程序中更新当前活动 UI
- javascript - Redux-Thunk getStore() 不保留状态。返回“未定义”
- android - 如何在 Android 中传递 SOAP 请求?
- compiler-theory - 用 C 编写编译器
- mysql - SQL 将一列与另一表合并并添加新列
- python - python nltk 从外部 url 下载
- sql - 将日期与 SQL Server 中的日期进行比较
- big-o - 时间分析问题