
创建高效视觉内容
创建工厂仪表客户端优化,基于飞轮
本模组对机械动力(Create)工厂表计(Factory Gauge)的渲染进行了一项低垂果实(易实现且收益明显)的优化。
为何原本很慢
工厂表计是一个方块实体,基础模组的渲染器每帧都会对表计路径(gauge paths)执行顶点变换。考虑到路径在帧间几乎不变,这种做法的开销非常高。现有的方案(如 createbetterfps、Flerovium)并未改变这种即时模式(immediate mode)模型;本模组利用飞轮(Flywheel)来提供实例化(instancing)渲染支持。
局限性
- 物品可能带有自定义渲染器。这些物品将回退到慢速渲染路径。
- 本模组仅限客户端使用。它不优化服务端刻(tick)。
- 本模组是针对机械动力工厂表计渲染的临时性、低垂果实式优化。它并非全面提升 FPS 的完整解决方案。
- 本模组优化 CPU 帧时间的程度多于 GPU 帧时间。如果使用光影(shader),提升幅度可能较小。
评估
受控场景评估: 在超平坦世界中,一面 10x30 的墙上,每个方块有 4 个表计。在 Sparkc 性能分析器中显示出显著改进。结果见下图。

真实场景评估: 在一个参考性的 80 小时以上的生存世界中,同一位置站立不动。关闭垂直同步(VSync),无帧数上限,使用钠(Sodium):CPU 渲染提前 1 帧,Photon 光影超级预设。预热后,PresentMon 显示(10 秒间隔):
| 指标 | 未安装 | 已安装 | 变化 |
|---|---|---|---|
平均帧间隔 MsBetweenPresents |
11.291 ms | 10.618 ms | 减少 0.673 ms,约 5.96% |
| 对应吞吐量 | 88.57 FPS | 94.18 FPS | 提升约 6.3% |
| p50 帧间隔 | 10.644 ms | 10.252 ms | 减少约 3.7% |
MsGPUTime |
11.290 ms | 10.617 ms | 减少 0.673 ms |
MsGPUBusy |
10.802 ms | 10.498 ms | 减少 0.304 ms,约 2.8% |
MsGPUWait |
0.489 ms | 0.120 ms | 减少 0.369 ms,约 75% |
MsGPULatency |
12.594 ms | 14.526 ms | 增加 1.932 ms |
MsInPresentAPI |
0.124 ms | 0.109 ms | 两者都非常小 |
PresentMon 报告的 CPUUtilization |
29.10% | 20.16% | 减少约 31% |
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。