StellarCreateOptimization
Stellar Create Optimization
Stellar Create Optimization 是面向Create 6.0.x 的性能优化附属模组。它同时显著改善大型自动化工厂中的客户端帧率与渲染性能和服务端 Tick 性能,并尽可能保持 Create 原有玩法、动画效果和兼容回退。
客户端优化
- 溜槽(Chute): 运输物品改用持久化 Flywheel 实例、静态模型缓存、视锥剔除和远距离动画简化,仅在位置或模型发生变化时上传实例数据。支持 Embeddium 和 Oculus/Iris 扩展顶点格式,动态或不兼容物品会安全回退至原版渲染。
- 工厂仪表: 按物流频率索引仪表并缓存轮廓几何,将大量独立轮廓合并进同一个 GPU 顶点缓冲,仅在可见集合发生变化时重建。
- 鼓风机: 气流粒子按距离保留 80%/50%/25%,每 Tick 最多生成 96 个,同时缓存光照、气流和处理类型查询。
- 烈焰人燃烧室: 16 格内保留完整环境粒子,16~32 格降低至四分之一,32 格外停止生成。稳定状态会跳过重复动画 Tick,并缓存上方方块检查;远距离冻结头部和燃烧棒矩阵,但火焰纹理仍由着色器正常滚动。
- 大小水车: 光影导致 Flywheel 后端关闭时,根据距离自动切换完整、中等和低模模型,阴影通道始终使用低模代理。完整保留旋转、材质替换、方向、光照、延伸结构和过载颜色。
- 传动杆及旋转机械: 实例颜色没有变化时,不再重复调用
setChanged()或上传相同数据。客户端动能方块直接执行原版音频 Tick,移除每 Tick 的DistExecutor和 Supplier 分发开销,同时保持声音行为不变。 - 粒子与视觉效果: 减少密集机械场景中重复的粒子、光照、动画矩阵和缓冲上传操作,同时保留近距离重要视觉效果。
服务端优化
- 溜槽: 跳过空运输和无效 Behaviour Tick,并缓存目标溜槽及不存在的物品能力查询,通过方块更新和周期重试安全失效。
- 鼓风机: 仅在相关方块、区块、转速或风扇状态变化时重建气流,并缓存气流处理类型与结果,减少重复扫描和不必要的数据同步。
- 机械泵: 在压力传播期间缓存管道端点可达性,避免多条分支反复遍历同一片流体管网。
- 动力网络: 在动力传播期间缓存相邻设备和齿轮速度修正,去除重复图节点,并合并方块实体的重复同步请求。
- 工厂物流: 缓存物品承诺总数、未加载物流连接数量及补货仪表库存等级,减少重复的物流网络和库存扫描。
- 齿轮: 去除重复的对角齿轮检查,同时保持连接逻辑和进度触发行为不变。
重点实测结果
| 压力测试热点 | 优化效果 |
|---|---|
| 溜槽粒子更新 | 约 -98.8% |
| 溜槽客户端 Tick | 约 -63% |
| 溜槽服务端 Tick | 约 -45% |
| 溜槽远距离渲染 | 约 -68%~-70% |
| 测试路径中的溜槽物品阴影渲染 | 降至 0% |
| 工厂仪表轮廓渲染 | 约 -99.8% |
| 鼓风机粒子更新 | 约 -74% |
| 鼓风机服务端 Tick | 约 -70%~-95% |
| 燃烧室稳定动画开销 | 无光影下约 -99.6%~-99.8% |
测试结果来自固定的大型 Spark 压力测试场景。实际提升会受到硬件、工厂规模、光影、渲染后端及整合包环境影响。
兼容性
- Create 6.0.x
- 为 Flywheel、Embeddium 和 Oculus/Iris 光影渲染提供兼容优化路径