跳到正文

StellarCreateOptimization

作者:StellarVan

一款专注于性能优化的模组,适用于机械动力6.0.x,可提升大型工厂中的服务端tick性能、粒子效果、方块实体和光影渲染表现。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

alt text

Stellar Create Optimization

Stellar Create Optimization 是一款面向 Create 6.0.x 的性能优化附属模组。它大幅提升客户端 FPS/渲染性能和服务端刻性能,尤其适用于大型自动化工厂,同时保留机械动力的游戏行为、动画效果和兼容性回退方案。如果你有好的想法或建议,可以发送至 [email protected]

客户端优化

  • 溜槽:运输中的物品使用持久化 Flywheel 实例、缓存的静态模型、视锥体剔除、基于距离简化动画,并减少实例上传。批量顶点和着色器回退路径在 Forge 1.20.1 上使用 Embeddium/Oculus,在 NeoForge 1.21.1 上使用 Sodium/Iris;对于动态或不受支持的物品,则安全回退。
  • 传送带:传送带上的物品采用稳定的多级距离 LOD、缓存的远距离扁平模型、有界的模型/光照查询和更少的物品堆副本,并进行着色器感知的假阴影剔除。在两个受支持的平台上,使用回退渲染的稳定传送带主体会采用持久化 GPU 缓冲区,并精确滚动 UV;资源或世界失效时会刷新。动态、自定义、多通道、附魔光效、包裹物品及不兼容模型仍使用机械动力原版渲染器。稳定的客户端传送带刻更新还会在每刻复用一次服务端速度快照,仅在传送带长度变化时使渲染边界失效,并安全绕过原版的空操作行为和空闲动力学效果处理。
  • 工厂仪表:面板按物流频率建立索引,轮廓几何体会被缓存,数千个独立轮廓会合并到单个 GPU 缓冲区中,且仅在可见对象集合变化时重建。
  • 风箱:气流粒子按距离保留 80%/50%/25%,每刻最多生成 96 个粒子;光照会被缓存,气流查询也会复用。
  • <strong烈焰人燃烧室:在 16 格内保留完整环境粒子效果;距离为 16–32 格时降低至 25%;超过 32 格后关闭。稳定的动画刻更新会被跳过,开销较大的检查会被缓存,空闲燃烧室以较低频率更新;远处的头部/杆件变换会被冻结,而着色器动画火焰仍会正常移动。
  • 带光影的 Flywheel / 动力机器:两个平台都会为搅拌器、压板和合成器复用持久化 GPU 几何体,同时保持动画矩阵动态更新,并默认省略开销较大的着色器阴影渲染通道。Forge 使用 Embeddium + Oculus,NeoForge 使用 Sodium + Iris,并提供原生 Catnip 和可选的 CreateBetterFPS 适配器。
  • 小型与大型水车:两个平台都会将完整的静态水车几何体缓存到持久化且兼容着色器的 GPU 缓冲区中,并通过逐实例变换精确保留旋转效果。Forge 1.20.1 使用 Embeddium + Oculus;NeoForge 1.21.1 使用 Sodium + Iris。此路径可选用 CreateBetterFPS。默认省略开销较大的着色器阴影渲染通道;不受支持的状态和子类则使用机械动力原版渲染器。
  • 链式传送带:连接几何信息、近/远距离 LOD 顶点、法线、边界和目标位置仅在连接发生变化时编译。渲染使用缓存的连接数组、逐帧剔除与光照、平台原生批量顶点写入(Forge 上使用 Embeddium,NeoForge 上使用 Sodium)、批处理链条缓冲区,以及可选的零距离 shader 阴影路径。这消除了原先每帧进行的 Set/Map 遍历、变换栈构建、逐连接矩阵乘法和重复的 RenderType 查找,同时保留动态纹理、端点光照、防护栏、运输中的包裹以及兼容性回退。
  • 传动轴与旋转机械:颜色未改变时,不再将 Flywheel 实例标记为脏数据或上传。客户端的动力方块实体也会直接调用原有的音频 tick,避免反复进行 DistExecutor 和 supplier 分派开销,同时不改变声音效果。
  • 流体储罐:当流体的亮度等级实际未改变时,智能跳过亮度更新,减少大型储罐网络中的冗余光照重算。
  • 蒸汽机:蒸汽喷射粒子会遵循密度和距离设置,并根据配置距离剔除声音效果,以减少客户端音频开销。
  • 展示板:稳定文本会编译为缓存的字形命令;整块展示板的可见性判断和保守的外壳遮挡可减少冗余运算。shader 回退模式下的齿轮使用持久化 VBO,并通过兼容的刚性实例绘制。
  • 磨石与传动轴:缓存渲染类型和模型、精确的实例旋转、稳定的磨石距离 LOD,以及可选的 shader 阴影省略功能,可降低回退渲染开销。
  • 粒子与视觉效果:在密集的机械动力机械场景中减少重复的粒子、光照、动画、矩阵和缓冲区操作,同时保留重要的近距离效果。

压力测试对比

压力测试热点 未使用 SCO 使用 SCO 提升幅度
溜槽 2–3 FPS 22–26 FPS 约 +860%
蛙港 1 FPS 21–26 FPS 约 +2,250%
翻页显示器 0–1 FPS 57–65 FPS 约 +12,100%
运输带 3–5 FPS 20–25 FPS 约 +463%
工厂仪表 12–13 FPS 124–127 FPS 约 +904%
链式传送带 4–5 FPS 30–37 FPS 约 +644%
磨石 0–1 FPS 45–50 FPS 约 +9,400%
齿轮 1 FPS 22–30 FPS 约 +2,500%
烈焰人燃烧器 0–3 FPS 36–40 FPS 约 +2,433%
蒸汽机 18–21 FPS 38–50 FPS 约 +126%
水车 0–2 FPS 100–115 FPS 约 +10,650%
传动轴 3–4 FPS 35–38 FPS 约 +943%
机械手臂 6–8 FPS 87–97 FPS 约 +1,214%
机械泵 0–1 FPS 29–33 FPS 约 +6,100%

测试结果是在固定光影设置下的大型压力测试场景中测得。实际提升幅度取决于硬件、工厂规模、光影以及已安装的整合包。

服务端优化

  • 滑道:跳过空闲的运输任务和未使用的行为 Tick,同时缓存目标滑道和缺失的物品栏能力,并通过安全失效机制和定期重试进行管理。
  • 封装风扇:仅在相关方块、区块、转速或风扇状态发生变化后重建气流。缓存处理类型和气流结果,避免重复扫描和不必要的同步。
  • 机械泵:在压力传播过程中缓存管道网络端点的可达性,避免多个分支反复遍历同一流体网络。
  • 动力网络:在传播过程中缓存相连邻居和齿轮转速修正值,移除重复的图节点条目,并批量处理重复的方块实体同步。
  • 工厂物流:在安全的 Tick 边界内缓存承诺的物品总量、未加载的物流链接数量和补货器的存储量,从而减少重复的网络和物品栏扫描。
  • 齿轮:消除重复的对角齿轮检查,同时保留进度和连接行为。
  • 流体储罐:缓存控制器引用并智能处理缓存失效,大幅减少多方块储罐结构中的方块实体查询。
  • 锅炉:现在可以配置更新频率,让你根据需要在性能与响应速度之间进行平衡。
  • 蒸汽引擎:缓存组件查询结果(储罐和轴的引用),以减少冗余的弱引用验证和方块实体查询。
  • 链式传送带:不再重建服务端交互形状;客户端缓存的形状会重复使用,直到连接数据发生变化;没有包裹时则跳过包裹的世界位置更新。

服务端基准测试结果

压力测试热点 未使用 SCO 使用 SCO 性能提升
滑道服务端 Tick 100% 约 55% 约 -45%
封装风扇服务端 Tick 100% 约 5%–30% 约 -70% 至 -95%

服务端数据以未优化时的 Tick 开销为 100%;数值越低越好。

兼容性

  • 已使用 Create 6.0.8 测试;理论上兼容 Create 6.0.x。
  • Minecraft 1.20.1 Forge 和 1.21.1 NeoForge
  • 渲染器兼容性因平台而异:Forge 1.20.1 使用 Embeddium + Oculus;NeoForge 1.21.1 使用 Sodium + Iris;共同集成包括 Flywheel、CreateBetterFPS、irisflw 和 Flerovium。

中文介绍:

Stellar Create Optimization

Stellar Create Optimization 是面向Create 6.0.x 的性能优化附属模组。它同时显著改善大型自动化工厂中的客户端帧率与渲染性能和服务端 Tick 性能,并尽可能保持 Create 原有玩法、动画效果和兼容回退。

客户端优化

  • 溜槽(Chute): 运输物品改用持久化 Flywheel 实例、静态模型缓存、视锥剔除和远距离动画简化,仅在位置或模型发生变化时上传实例数据。Forge 1.20.1 使用 Embeddium/Oculus,NeoForge 1.21.1 使用 Sodium/Iris;动态或不兼容物品会安全回退至原版渲染。
  • 传送带: 运输物品使用稳定的多级距离 LOD、远距离平面模型缓存、有界模型/光照查询、堆叠副本削减以及感知光影阶段的假阴影剔除。两个平台的稳定回退渲染都会为传送带本体复用持久化 GPU 缓冲,保持精确滚动 UV,并在资源重载或切换世界时安全失效;动态、自定义、多 Pass、附魔光效、包裹及不兼容模型仍走 Create 原始渲染器。稳定的客户端传送带还会在每 Tick 复用一次服务器速度快照,仅在传送带长度变化时刷新渲染包围盒,并安全跳过原版空操作行为与空闲动力特效开销。
  • 工厂仪表: 按物流频率索引仪表并缓存轮廓几何,将大量独立轮廓合并进同一个 GPU 顶点缓冲,仅在可见集合发生变化时重建。
  • 鼓风机: 气流粒子按距离保留 80%/50%/25%,每 Tick 最多生成 96 个,同时缓存光照、气流和处理类型查询。
  • 烈焰人燃烧室: 16 格内保留完整环境粒子,16~32 格降低至四分之一,32 格外停止生成。稳定状态会跳过重复动画 Tick,并缓存上方方块检查;远距离冻结头部和燃烧棒矩阵,但火焰纹理仍由着色器正常滚动。
  • 光影下的 Flywheel / 动力机械: 搅拌器、冲压机和机械合成器复用持久 GPU 几何,动画矩阵逐帧保持准确,默认省略高开销光影阴影。Forge 使用 Embeddium + Oculus,NeoForge 使用 Sodium + Iris,支持原生 Catnip 及可选 CreateBetterFPS 适配。
  • 大小水车: 两个平台均缓存完整静态水车网格到持久化 GPU 缓冲,并用每实例矩阵保持准确旋转。Forge 1.20.1 使用 Embeddium + Oculus,NeoForge 1.21.1 使用 Sodium + Iris;该路径不强制依赖 CreateBetterFPS。默认省略高开销的光影阴影通道,不支持的状态或子类继续使用 Create 原始渲染器。
  • 锁链传动轮: 连接发生变化时才编译连接几何、远近距离 LOD 顶点、法线、包围范围和目标位置。渲染阶段使用缓存连接数组、逐帧剔除与光照缓存、平台原生批量顶点写入(Forge 使用 Embeddium,NeoForge 使用 Sodium)、锁链缓冲批处理,并支持零距离跳过光影阴影通道。移除原版每帧 Set/Map 遍历、变换栈构建、逐连接矩阵乘法及重复 RenderType 查询,同时保留动态纹理、端点光照、护栏、运输包裹和兼容回退。
  • 传动杆及旋转机械: 实例颜色没有变化时,不再重复调用 setChanged() 或上传相同数据。客户端动能方块直接执行原版音频 Tick,移除每 Tick 的 DistExecutor 和 Supplier 分发开销,同时保持声音行为不变。
  • 流体储罐: 智能跳过不必要的亮度更新——仅当流体光照等级实际变化时才执行光照重计算,减少大型储罐网络中的冗余开销。
  • 蒸汽引擎: 蒸汽喷射粒子遵循密度和距离设置,音效超出配置距离后自动剔除,减少客户端音频负载。
  • 显示板: 稳定文字编译为缓存字形命令,按完整板边界剔除,并保守判断内齿轮是否被板壳遮挡。光影回退齿轮采用持久 VBO 和兼容的刚体实例批绘。
  • 石磨与传动杆: 缓存渲染类型和模型,保留准确旋转;石磨内齿轮使用稳定距离 LOD,并可省略光影阴影。
  • 粒子与视觉效果: 减少密集机械场景中重复的粒子、光照、动画矩阵和缓冲上传操作,同时保留近距离重要视觉效果。

压力测试对比

压力测试热点 无 SCO 有 SCO 提升
溜槽 2~3 帧 22~26 帧 约 +860%
蛙港 1 帧 21~26 帧 约 +2,250%
翻牌显示器 0~1 帧 57~65 帧 约 +12,100%
传送带 3~5 帧 20~25 帧 约 +463%
工厂仪表 12~13 帧 124~127 帧 约 +904%
锁链传动轮 4~5 帧 30~37 帧 约 +644%
石磨 0~1 帧 45~50 帧 约 +9,400%
齿轮 1 帧 22~30 帧 约 +2,500%
烈焰人燃烧室 0~3 帧 36~40 帧 约 +2,433%
蒸汽引擎 18~21 帧 38~50 帧 约 +126%
水车 0~2 帧 100~115 帧 约 +10,650%
传动杆 3~4 帧 35~38 帧 约 +943%
动力臂 6~8 帧 87~97 帧 约 +1,214%
动力泵 0~1 帧 29~33 帧 约 +6,100%

测试结果来自固定光影环境下的大型压力测试场景。实际提升会受到硬件、工厂规模、光影及整合包环境等多方面因素影响。

服务端优化

  • 溜槽: 跳过空运输和无效的行为 Tick,并缓存目标溜槽及不存在的物品能力查询,通过方块更新和周期重试安全失效。
  • 鼓风机: 仅在相关方块、区块、转速或风扇状态变化时重建气流,并缓存气流处理类型与结果,减少重复扫描和不必要的数据同步。
  • 机械泵: 在压力传播期间缓存管道端点可达性,避免多条分支反复遍历同一片流体管网。
  • 动力网络: 在动力传播期间缓存相邻设备和齿轮速度修正,去除重复图节点,并合并方块实体的重复同步请求。
  • 工厂物流: 缓存物品承诺总数、未加载物流连接数量及补货仪表库存等级,减少重复的物流网络和库存扫描。
  • 齿轮: 去除重复的对角齿轮检查,同时保持连接逻辑和进度触发行为不变。
  • 流体储罐: 缓存控制器引用并智能失效,显著减少多方块储罐结构中的方块实体查询。
  • 锅炉: 更新频率现可配置,允许根据需求在性能和响应速度之间平衡。
  • 蒸汽引擎: 缓存组件查找(储罐和传动轴引用),减少冗余的弱引用验证和方块实体查询。
  • 锁链传动轮: 服务端不再构建交互形状;客户端交互形状会复用到连接数据发生变化;没有运输包裹时跳过包裹世界坐标更新。

服务端实测结果

压力测试热点 无 SCO 有 SCO 优化效果
溜槽服务端 Tick 100% 约 55% 约 -45%
鼓风机服务端 Tick 100% 约 5%~30% 约 -70%~-95%

服务端数据以无 SCO 时的 Tick 开销为 100% 基准,数值越低越好。

兼容性

  • 实测环境为 Create 6.0.8;理论兼容 Create 6.0.x。
  • Minecraft 1.20.1 Forge 与 1.21.1 NeoForge
  • 渲染器按平台适配:Forge 1.20.1 使用 Embeddium + Oculus,NeoForge 1.21.1 使用 Sodium + Iris;两端共同兼容 Flywheel、CreateBetterFPS、irisflw 和 Flerovium。

常见问题

StellarCreateOptimization 支持哪些 Minecraft 版本?

StellarCreateOptimization 支持 Minecraft Java 版 1.20.1–1.21.1,共 2 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

StellarCreateOptimization 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

StellarVan 的其他作品

查看全部 →