|
|
还没有账号?赶快去注册吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 BugQuantumCore 于 2026-9-30 21:08 编辑 ( x* [* x1 c, D7 h8 _2 t, V/ J9 T
+ A. R$ Z) B5 q; C8 t2 rMTR-Yanyang Optimized 是 Minecraft Transit Railway(MTR)的社区优化分支,基于 MTR 4.0.5,当前优化与验证目标为 Minecraft 1.20.1 Fabric。
+ m' d: E2 Y) p7 Z
' c2 l$ ?, |& W8 I; I! B% Z0 Y' _本分支重点改善密集车站、多站台、多轨道和多列车场景中的渲染开销、临时内存分配及服务端寻路计算。MTR 4.0 的基础架构来自上游;以下列出本分支提交的优化。* o8 e6 ? k6 c5 F( ]8 D" \0 |; Q
# ?5 @4 I2 W2 ?/ o/ x( L获取链接
" y' _1 B1 L; w& C( |4 F2 xCurseForge: https://www.curseforge.com/minecraft/mc-mods/mtr-yanyang- c3 T/ T T- ~8 j
Modrinth(正在审核): https://modrinth.com/mod/mtr-yanyang
( K' \0 U, s$ T. R( YGitHub:https://github.com/Yanyang-Technology-Group/MTR-YanYang. K7 _+ l5 {* ^( O
MC百科(正在审核):https://www.mcmod.cn/class/?.html4 w$ ]2 O0 Z6 d6 x/ o
]7 |. ]! f5 g/ Q6 b% V已落地的优化 r8 ]4 S* M' b L6 V! a# O, p+ i
; x. g& R0 s; X& r| 方向 | 改动 |6 |, o: N% l6 Y% p
| 密集场景渲染 | 客户端空间索引、轨道几何缓存、线路图跨度缓存和渲染回调复用,减少重复扫描、计算与分配。 |
+ ~/ ~! L5 |/ i' Q J| Iris 渲染排序 | 缓存排序结果,以整数索引和数组遍历减少图搜索中的临时集合,保留原有候选搜索和排序规则。 |, H. k1 m% T( C3 K
| 内存分配 | 缓存路径 ID,复用模型矩阵上传缓冲区,减少顶点属性和材质哈希中的临时数组;对可选 MAGIC 集成使用有界轨道 ID 缓存。 |
; m e4 `9 ~; @4 K/ T1 i| 动态贴图响应 | 将动态贴图任务与轨道遮挡检测解耦,避免站名、线路图等内容长时间等待遮挡任务。 |
W& C; R" r. P1 k* v& v| 遮挡检测 | 限制超大包围盒扫描,优先处理当前可见性请求,并在每轮检测中缓存重复的方块不透明度查询。 |
: a6 K% l/ D* A. j. `| 到站信息与同步 | 优化到站信息缓存及车辆、电梯更新处理,减少重复工作。 |
h1 J7 f3 d' ^6 u* n4 s; c4 L| 服务端多核寻路 | 接入 TSC 独立计算模块,使用只读轨道图快照、有界线程池、请求合并与批处理;按原请求顺序在服务器线程组装和提交结果。 |
2 x. `* x' i, |& g/ Z4 }1 ]& G: r, h# x" G; Q, @
并行寻路具有版本失效机制,可在拓扑更新后淘汰旧结果;不支持的输入会回退到原串行路径。此项优化针对寻路计算,不代表全部车辆模拟或 Minecraft 世界更新已多线程化。: K$ e0 ^% T6 M6 n
3 Q8 t- B* ^& v B实际收益取决于线路规模、模型复杂度、硬件和模组组合,不承诺固定 FPS 或 TPS 增幅。
M$ \3 [1 E+ b3 c M) Q9 S* S, y b% z& T
下载与安装
1 m3 y! F2 Y1 T/ h4 \7 [6 |$ _$ g9 w
从 Releases 下载适用于 Fabric 1.20.1 的运行 jar,安装 Fabric Loader 和 Fabric API 后,将 jar 放入 mods 文件夹并重启游戏或服务器。替换已有 MTR 时只保留一个 MTR 运行 jar,不要安装 sources jar。- b! ?2 P' `; e& n7 N
# Z6 E2 J5 W9 D5 g仓库最新代码可能包含尚未进入 Release 的改动,请以对应 Release 的说明为准。
- ^1 v+ g' h/ _" V
5 G2 F7 K5 F" A. R) t$ B* w" o服务端寻路配置2 j0 c; l" o. P: m
- a H6 u' e$ ~( `# }/ ^* `以下为 JVM 启动参数,放在 -jar 前面;修改后需重启服务器。
: `' Q( S$ ]' L, s- z; O( d+ {* h9 X9 Y/ `
| 参数 | 默认值 | 说明 |
8 l7 ]6 C) v" r. {& n1 r| -Dmtr.path.parallel=true | true | 启用并行寻路;设为 false 使用原串行实现。 |
$ ~! @. r J5 R! m) o' ] M| -Dmtr.path.workers=8 | 自动选择 | 默认最多 8 个工作线程,受 JVM 可用处理器数减 2 的限制;手动配置最高 12 个。 |
* K' G' ^, G* }0 ?% h a| -Dmtr.path.metrics=true | false | 启用寻路统计,约每 30 秒汇总一次。 |
1 h% \; n- ?+ F+ \
p8 R5 ]2 l; e3 s* }) O- yJVM 可用处理器数不超过 2,或启用了已有的 threaded simulation 模式时,本并行寻路集成不启用。任务队列容量为 32,每批最多 8 个请求。线程数应结合实际负载调整,更多线程不一定更快。
8 F/ [! y# G) p
2 G& R# {* y* `' u源码构建
: ]+ A( ?* b2 @0 {/ W: d$ n4 d9 J$ |
构建需同时检出 TSC 二改仓库,并保留以下相邻目录结构:
, Y2 j( E5 M0 L% q- l! t- MTR/) K5 B. z+ W# Z k8 j7 L7 a/ Z2 @
- ├── Minecraft-Transit-Railway/" ^) s0 n( K4 ]6 O! |% \- R o- ]
- └── Transport-Simulation-Core// w9 @2 S. ? c8 U8 {1 U1 n
- └── path-computation/
复制代码 . L+ `$ y. F0 }' M0 ?) M
MTR 通过 Gradle composite build 引用 path-computation,只引入该独立 Java 17 计算模块。构建工具需要 JDK 21,并需要 Java 17 工具链用于 Fabric 1.20.1 目标;还需满足项目现有 MTR 映射库及构建依赖。0 H6 h9 C# R5 t
/ X$ |- f2 k" q6 ?3 H& E在 Minecraft-Transit-Railway 目录执行:
0 ~3 ]4 y9 A' A9 A- ./gradlew :fabric:test :fabric:build
复制代码
# E/ w8 j2 z4 v" r产物位于 build/release/。2 c Z$ ?7 r d2 X
! R; ~) J4 s6 \3 S S) y; N5 ~优化提交索引
. ]. O7 {8 M% d, @0 H, W
. o3 _ r' [9 Q" o- ]* N( Y9 w- dd51ae1:密集路网渲染、缓存与分配优化。1 Y& n3 I0 A _4 _/ y8 O2 _) m
- 29cc313:动态贴图与轨道遮挡任务解耦。
% W) p3 d' L3 M- V/ W" H& B- 445978e:限制遮挡扫描并优先处理当前请求。" r! \ b( o8 I; |' ~9 n% T
- f723771:Iris 排序、模型绘制分配及查询缓存优化。
8 F! {& y: p$ m# ?- f22d8ff:服务端有界并行寻路集成。+ J4 O% L$ v+ D' q: q
- TSC 3ab979e:独立的批量并行路径计算模块。) X g- I8 T P
) R6 Z* @; y6 q( n
许可证与致谢1 N9 Q' o0 a+ w* }# B! @
; \. H) Z: O) _( i) [1 J& _# h4 i3 ?6 z
本项目采用 MIT 许可证,随附的 Noto 字体采用 SIL Open Font License。感谢上游 MTR、TSC 及相关依赖项目的开发者。本仓库为社区分支,并非上游官方发行版。
" S- z- R! w; @8 y3 h" o
g) }$ K6 @) a0 o( |8 L5 b& }% ?
|
|