为什么 FlightGear 没有使用更多的计算能力?

为什么 FlightGear 没有使用更多的计算能力?

我最近下载了 FlightGear,因为我想玩飞行模拟游戏。我使用的是 Windows 10,遇到了帧率问题。

游戏帧率从未超过 25 fps有时会有 80ms 的帧延迟,但是,正如您在下图中看到的,该图描述了我的 CPU、GPU 和内存使用情况(这是 Process Hacker 数据,所以我对此非常有信心),我仍然有超过 5GB 的可用 RAM 和 CPU/GPU 使用率几乎不超过 20%...

http://hpics.li/763d92d

此外,我的电脑运行所有最新游戏都运行良好,帧率稳定在 60fps,配备了 Intel Core I7 3770K 和不错的 Nvidia GTX780TI,内存为 16GB。我的视频驱动程序(基本上所有驱动程序)都是最新的。

我承认我在模拟器上把所有设置都调到了最大,我会在评论中贴一个链接,你可以从那里下载我的preferences.xml文件(我实际上受到rep的限制)。我手动做的唯一更改是允许多线程(通过取消注释一行,这不会影响性能),游戏本身的其他一切都调到了最大。我还仔细检查了一下,我没有将帧速率限制在低于60FPS(我的屏幕帧速率)的水平。

为什么我的电脑完全有能力使用更多的计算能力来获得流畅的游戏体验,但为什么游戏没有这样做呢?

我还检查了我的显卡是否受游戏支持,结果确实如此:“帮助”选项卡中写着“NVIDIA Corporation GeForce GTX 780 TI/PCIe/SSE2”,游戏 wiki 的“有问题的显卡”页面中没有提到。由于我在 Windows 中运行游戏,因此很遗憾,我无法编译它以使用内置分析器(使用 google perf 工具) :-(

请告诉我我是否可以提供更多信息来修复此问题。这可能会帮助许多遇到同样问题的人。谢谢。

第二个屏幕显示 OSG 详细统计数据 在此处输入图片描述

答案1

如果 FlightGear 似乎未使用所有资源,则可能是因为 CPU 和 GPU 之间不平衡。某些操作可能会受到 CPU 限制,而其他操作则受到 GPU 限制。

从屏幕截图中可以看出,第一个观察结果是内部进程监控处于活动状态;这将对帧速率产生显著影响。

FlightGear 中的 GUI 是使用 PUI 构建的 - 当您显示对话框时,这将影响帧速率;尤其是那些频繁更新的对话框,因为 PUI 效率不高。有消息称 PUI 需要更换,但目前我认为还没有人在做这件事。

使用 Debug->Cycle on screen statistics 打开 OpenSceneGraph 帧速率计数器。您可能需要使用 F10 隐藏菜单栏,以便它在左上角显示时可见。这比屏幕截图中基于 PUI 的监视器效率高得多。

FlightGear 中有 3 个渲染引擎:基本版、ALS 和 Rembrendt。

我发现 ALS(来自视图->渲染选项的大气光散射)将在美观的场景和合理的帧速率之间提供最佳平衡。

如果将随机植被滑块设置为最大值,则可能会导致渲染的几何图形过多。因此,请坚持使用 3.5 左右的值,并逐渐向上调整,直到树木和良好的帧速率之间达到平衡。

如果您使用伦勃朗(仍处于官方实验阶段的延迟渲染),那么您将获得发射照明和阴影选项,在光点周围绽放,但这需要对几何体进行多次传递,并且会比 ALS 慢 - 但阳光模型相当简单,而且在我看来 ALS 通常更好。

另外,通过使用每次需要打开的详细天气,您还可以获得更好的云彩。

虽然由于您拥有高端系统,将所有滑块调到最大似乎很有吸引力 - 但恕我直言,这并不是它们存在的真正原因。滑块的存在是为了调整可用的渲染选项,以在帧速率和功能之间取得平衡。

此外,3.6RC 和即将推出的 3.8 或 2016 版本减少了内存使用量,从而提高了性能。

遗憾的是 3.6 版本没有在 8 月份发布(由于人手不足),因为它有了很大的改进,尤其是 ALS 驾驶舱和玻璃效果。

目前每晚构建可能比较稳定;值得下载这些并尝试,直到找到一个好的。如果不好,那么3.6RC值得一试。

因此,通常首先要找出瓶颈(CPU/GPU)并进行相应调整。OSG 屏幕统计数据与系统监控工具一起可用于诊断此问题,以了解 GPU 和 CPU 的使用情况。

FlightGear 目前利用了多核系统的一些优势;目前正在努力改进这一点 - 但这并不能真正解决单核为 GPU 提供最大能力的情况;或者当 GPU 的几何能力达到最大值时(就像使用 OpenGL 一样),多线程能实现的能力是有限的。

如果您查看下面的图片,您会发现青色条是同时出现的。这是 OSG 多线程。FlightGear(具有非延迟渲染)使用两个摄像头(近摄像头和远摄像头) - 因此 OSG 多线程具有优势。但是您还会注意到我的帧速率(i7 2600、R9 290)只有 30 多。

FlightGear OSG 统计数据

当我坐在 KLSV 的驾驶舱中,使用合理的渲染设置时,我的帧率是 30 到 35 FPS。如果我看天空(那里的几何图形少得多),我的帧率是 80 FPS。

FlightGear 几何比较

参照您提供的详细统计数据截图;两个并行剔除告诉我们 OSG 是多线程的;但 GPU 时间相当长,即使有 1.04 亿个顶点也是如此。因此看起来 GPU 正在拖延事情 - 这对您的显卡来说似乎很奇怪。也许检查一下 NVidia 设置并确保每个人看起来都很合理。

OSG统计数据

在风景密度高的地方,随机植被会增加相当大的额外负荷;但即便如此,不错的 CPU/GPU 组合也应该能够处理 3.5。

尝试其他机场;全世界都可以去游览。ZUBD 非常有趣。

相关内容