|
|
还没有账号?赶快去注册吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 BugQuantumCore 于 2026-10-6 15:12 编辑
/ k$ N) b- t+ r
5 |" {3 c0 J. l9 u/ \' lMTR-Yanyang Optimized 是 Minecraft Transit Railway(MTR)的社区优化分支,基于 MTR 4.0.5,当前优化与验证目标为 Minecraft 1.20.1 Fabric。+ O# z. t7 I' @* u0 w. c( _
5 C- [9 I) x; x" O本分支重点改善密集车站、多站台、多轨道和多列车场景中的渲染开销、临时内存分配及服务端寻路计算。MTR 4.0 的基础架构来自上游;以下列出本分支提交的优化。
e" ]# s7 x/ W$ X' n5 m) M
8 X: Z& ?$ G4 r! G获取链接
! ]& @, ?# W* V- u6 LCurseForge: https://www.curseforge.com/minecraft/mc-mods/mtr-yanyang
! |6 y0 }) x- C) G: B/ m0 N1 nModrinth: https://modrinth.com/mod/mtr-yanyang2 }4 C+ c7 C, Q |
GitHub:https://github.com/Yanyang-Technology-Group/MTR-YanYang
" E6 }, r- Q+ N ~3 Q4 w7 |MC百科(正在审核):https://www.mcmod.cn/class/31603.html& Z D O1 m# S$ S7 J" \. f( {8 [
% m6 n3 u- e8 X/ I% j. S" o已落地的优化+ n5 L" ~0 o, ?" c' i
. M' Q! a! X. j, m
| 方向 | 改动 |! e* y7 m! d$ S2 Q7 K& `( T* a
| 密集场景渲染 | 客户端空间索引、轨道几何缓存、线路图跨度缓存和渲染回调复用,减少重复扫描、计算与分配。 |
9 D/ R" }8 t* J! p6 ]| Iris 渲染排序 | 缓存排序结果,以整数索引和数组遍历减少图搜索中的临时集合,保留原有候选搜索和排序规则。 |+ P* c6 o4 O+ ?. A" ~
| 内存分配 | 缓存路径 ID,复用模型矩阵上传缓冲区,减少顶点属性和材质哈希中的临时数组;对可选 MAGIC 集成使用有界轨道 ID 缓存。 |
- R! Y5 q P" ~7 k) w| 动态贴图响应 | 将动态贴图任务与轨道遮挡检测解耦,避免站名、线路图等内容长时间等待遮挡任务。 |
$ m) W9 `! x4 N! H. H| 遮挡检测 | 限制超大包围盒扫描,优先处理当前可见性请求,并在每轮检测中缓存重复的方块不透明度查询。 |
: H: F2 s' [& P( C2 t| 到站信息与同步 | 优化到站信息缓存及车辆、电梯更新处理,减少重复工作。 |
3 F$ D/ n6 r3 G! W| 服务端多核寻路 | 接入 TSC 独立计算模块,使用只读轨道图快照、有界线程池、请求合并与批处理;按原请求顺序在服务器线程组装和提交结果。 |
( L4 C3 g) Q. ?0 \2 k8 n& z. `6 I( v0 h
并行寻路具有版本失效机制,可在拓扑更新后淘汰旧结果;不支持的输入会回退到原串行路径。此项优化针对寻路计算,不代表全部车辆模拟或 Minecraft 世界更新已多线程化。9 `( j/ D( m# c) p4 i
5 o5 J# h+ N- u9 j$ `实际收益取决于线路规模、模型复杂度、硬件和模组组合,不承诺固定 FPS 或 TPS 增幅。
1 D2 H, H, E, p# Y4 L
1 _, K' c8 L* ~) d& d1 P下载与安装
" H: g( b# a, k9 D
* h0 `( C- U' {# Q, }4 m2 y从 Releases 下载适用于 Fabric 1.20.1 的运行 jar,安装 Fabric Loader 和 Fabric API 后,将 jar 放入 mods 文件夹并重启游戏或服务器。替换已有 MTR 时只保留一个 MTR 运行 jar,不要安装 sources jar。
9 V/ j+ G) |7 v2 _6 g' g. h6 U3 C1 k8 c. P" q5 t
仓库最新代码可能包含尚未进入 Release 的改动,请以对应 Release 的说明为准。
6 Q6 m' v9 |0 V P5 [% R! X% t$ E
服务端寻路配置
/ r! @; Z8 n/ ~# W3 Q4 {7 |" G8 O1 ]) n8 w
以下为 JVM 启动参数,放在 -jar 前面;修改后需重启服务器。
8 h) {( F9 b" M2 Y1 T/ p0 r( Y: `2 I# T9 | N& U$ o$ [
| 参数 | 默认值 | 说明 |
, W" T. n" t4 O# l3 [| -Dmtr.path.parallel=true | true | 启用并行寻路;设为 false 使用原串行实现。 |: {/ T2 ` N J; ~' T: y. p& W
| -Dmtr.path.workers=8 | 自动选择 | 默认最多 8 个工作线程,受 JVM 可用处理器数减 2 的限制;手动配置最高 12 个。 |
' E' r3 c7 _+ \; ^! `: }8 t9 t| -Dmtr.path.metrics=true | false | 启用寻路统计,约每 30 秒汇总一次。 |, ]. W! }) f6 g* c7 N' e2 g
/ _# ~. W6 Z) f" _+ c$ Y+ R
JVM 可用处理器数不超过 2,或启用了已有的 threaded simulation 模式时,本并行寻路集成不启用。任务队列容量为 32,每批最多 8 个请求。线程数应结合实际负载调整,更多线程不一定更快。
7 Q8 K; c6 N. X9 e
% p# S1 q- {3 t5 C% E) F源码构建/ ]4 i, b1 l7 ]; M
4 @: x% @7 P; U( d4 L1 ?构建需同时检出 TSC 二改仓库,并保留以下相邻目录结构:/ U! A! {/ A1 @7 p
- MTR/
( d$ r' I. I) \2 [; S - ├── Minecraft-Transit-Railway/
5 c- j/ E. }7 j* Q) k - └── Transport-Simulation-Core/6 q$ w/ V8 b; h! j" Z+ H
- └── path-computation/
复制代码 ) I1 _9 \* Y* ?* G; H2 i4 u7 g
MTR 通过 Gradle composite build 引用 path-computation,只引入该独立 Java 17 计算模块。构建工具需要 JDK 21,并需要 Java 17 工具链用于 Fabric 1.20.1 目标;还需满足项目现有 MTR 映射库及构建依赖。
% F, d" Z H9 A0 ?$ J) P4 N. i# |- A" X# N0 ^3 f: ?- ], e) i
在 Minecraft-Transit-Railway 目录执行:
R1 }6 d C/ I) g* Y- ./gradlew :fabric:test :fabric:build
复制代码 ' \/ A- N* R. [2 u! W% b
产物位于 build/release/。" k$ H* T/ o0 L# h3 C% I
" _% q4 E- x4 s& [7 o3 }: q优化提交索引( t, @9 [! n* I& v
; G# V; Y' ` @' Q
- dd51ae1:密集路网渲染、缓存与分配优化。
( A+ n& a2 ?: q3 \$ }- 29cc313:动态贴图与轨道遮挡任务解耦。
. d- p$ M Y* H) D3 Y: n- 445978e:限制遮挡扫描并优先处理当前请求。
6 l& \/ k |3 f, T8 p: B5 J- f723771:Iris 排序、模型绘制分配及查询缓存优化。% W3 R: v/ R: ?. n3 V
- f22d8ff:服务端有界并行寻路集成。/ u" g7 e. T0 m/ q
- TSC 3ab979e:独立的批量并行路径计算模块。
0 a; G5 z1 @4 T7 @8 z7 m. }% y0 ?; l( Q
许可证与致谢
+ Q# s# ]% X/ L6 P- A
- | I8 ]1 B) H: `* f2 t0 ~本项目采用 MIT 许可证,随附的 Noto 字体采用 SIL Open Font License。感谢上游 MTR、TSC 及相关依赖项目的开发者。本仓库为社区分支,并非上游官方发行版。+ D" R$ C0 \% r" N: e
7 F4 t: q( h, [1 Q' U- q& H S0 j7 O# z
|
评分
-
查看全部评分
|