C++ - SDL:解决性能问题
C++ - SDL: Blitting performance issues
我是C++和 SDL 的初学者,但我开发游戏已经好几年了。
我选择 SDL 是因为它的简单性,因为我想要的只是一个 2D 游戏,但我并不满意。处理表面的功能消耗了很多功率,说实话太多了。
当我第一次开始使用 SDL 时,我的帧率约为 30 FPS。然后我发现了优化表面的方法,帧率跃升至 60。此外,将像素格式从 24 位切换到 32 位将其改进为 100。
在我看来,与其他游戏开发和编程语言库相比,这种性能很弱。我一直认为这仍然是我的错,如果我正确设置了一切,我的 FPS 可能会飙升。
所以我一直在测试,发现没有代码运行(不包括我的 FPS 指标)给我带来了 400 FPS。但是,使用 SDL_FillRect() 函数清除屏幕会将其降至 100。然后,对于绘制的每个精灵,帧率变得越来越低。
真的应该这么慢吗?
首先,100 FPS 并不慢。在大多数情况下,由于显示器刷新率的原因,任何关于 60 的内容都是无关紧要的。
其次,您正在熔断什么样的表面?我记得当我制作一款大型 SDL 游戏时,我真的很惊讶地发现,我拥有的特定图像将永远用于闪光。但是稍微摆弄一下质量以消除抖动导致它几乎立即再次开始块状。我认为 SDL 在内部使用运行长度编码,因此包含运行的图像会更快地进行 bling。
相关文章:
- 在类中使用随机生成器时出现性能问题
- Qt OpenGL 渲染到纹理性能问题
- 剪辑性能问题
- OpenCV - 基本操作 - 性能问题 [模式:发布]
- 使用 #define 进行跟踪日志记录以避免性能问题
- 在 Qt C++ 中在自定义项委托上绘制文本时的性能问题
- std::函数有性能问题,如何避免?
- 使用 const double* const 作为模板参数 - 代码性能问题
- 在C 中读取大型CSV文件性能问题
- MPI 二进制文件 I/O 基本功能和性能问题
- 使用STD :: MAP在数据及其性能问题中查找重复项.我可以预先分配吗?
- C 功能性能问题
- 在C 性能问题中使用Getter返回地图
- 初始化每个班级成员时的性能问题
- 事件(开始,结束),1天的最大事件.C++ 中的性能问题
- 在X64模式下从C /CLI调用MASM PROC会产生意外的性能问题
- OpenGL:MESA3D屏幕上的软件渲染性能问题
- 是包含容器性能问题的STL关联容器
- 任何性能问题都在qt框架中使用了stackedwidget的最大页面数
- SHGetFileInfo性能问题