|
|
还没有账号?赶快去注册吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 BugQuantumCore 于 2026-9-30 21:08 编辑 6 n: Z8 t. M( X; Z& U! g) h/ B
8 T6 v* q- c) U+ }: Q
MTR-Yanyang Optimized 是 Minecraft Transit Railway(MTR)的社区优化分支,基于 MTR 4.0.5,当前优化与验证目标为 Minecraft 1.20.1 Fabric。/ A6 A0 u+ \& w; z# z
$ D- G* C O% i$ d本分支重点改善密集车站、多站台、多轨道和多列车场景中的渲染开销、临时内存分配及服务端寻路计算。MTR 4.0 的基础架构来自上游;以下列出本分支提交的优化。
- H8 y# J7 L. e& P1 ?. x1 B( Q0 N' `9 W8 o3 I" C( _
获取链接# N) C4 A% K! e5 B5 f8 V
CurseForge: https://www.curseforge.com/minecraft/mc-mods/mtr-yanyang4 v! e& R K. B8 g
Modrinth(正在审核): https://modrinth.com/mod/mtr-yanyang
4 t" V% G; O: J% a+ U) RGitHub:https://github.com/Yanyang-Technology-Group/MTR-YanYang+ \& V/ `/ n' p$ @ v0 z
MC百科(正在审核):https://www.mcmod.cn/class/?.html
. s, J# x# X. ?# w, w( }9 e# @4 [$ R9 X+ j6 p; a* ~. f" j3 E
已落地的优化4 Z! R' g1 ^5 i% _6 t% q; `. O% ~4 Q# S
9 ~) ^$ P4 u4 o o- ?
| 方向 | 改动 |
! m) ^) n) w8 P| 密集场景渲染 | 客户端空间索引、轨道几何缓存、线路图跨度缓存和渲染回调复用,减少重复扫描、计算与分配。 |& q) Q8 b! K9 N3 Y- n$ [
| Iris 渲染排序 | 缓存排序结果,以整数索引和数组遍历减少图搜索中的临时集合,保留原有候选搜索和排序规则。 |. v5 j, v4 U8 j! A- m) k' r7 y
| 内存分配 | 缓存路径 ID,复用模型矩阵上传缓冲区,减少顶点属性和材质哈希中的临时数组;对可选 MAGIC 集成使用有界轨道 ID 缓存。 |
2 I9 V' A. w* c* {| 动态贴图响应 | 将动态贴图任务与轨道遮挡检测解耦,避免站名、线路图等内容长时间等待遮挡任务。 |
7 A) N U9 n; c: Z6 }3 ^4 r| 遮挡检测 | 限制超大包围盒扫描,优先处理当前可见性请求,并在每轮检测中缓存重复的方块不透明度查询。 |
5 i) r' L2 H2 u8 m9 A+ M| 到站信息与同步 | 优化到站信息缓存及车辆、电梯更新处理,减少重复工作。 |
' [9 e; I; v( h| 服务端多核寻路 | 接入 TSC 独立计算模块,使用只读轨道图快照、有界线程池、请求合并与批处理;按原请求顺序在服务器线程组装和提交结果。 |
3 `2 E9 G8 w/ T/ `: M4 a7 N( {2 g8 ~: E" Q/ E
并行寻路具有版本失效机制,可在拓扑更新后淘汰旧结果;不支持的输入会回退到原串行路径。此项优化针对寻路计算,不代表全部车辆模拟或 Minecraft 世界更新已多线程化。 s; s5 N$ E( H, k2 a* M
3 r4 ~' H$ d1 U7 \实际收益取决于线路规模、模型复杂度、硬件和模组组合,不承诺固定 FPS 或 TPS 增幅。! T& v8 J3 S; [7 V! m
2 ^/ l" T' m9 q2 n
下载与安装+ ~" i2 c" ]- b& v
+ C# o6 w6 @- A从 Releases 下载适用于 Fabric 1.20.1 的运行 jar,安装 Fabric Loader 和 Fabric API 后,将 jar 放入 mods 文件夹并重启游戏或服务器。替换已有 MTR 时只保留一个 MTR 运行 jar,不要安装 sources jar。5 { d+ u+ J4 `' F
7 {# ~; A5 ^4 N8 m7 S# M
仓库最新代码可能包含尚未进入 Release 的改动,请以对应 Release 的说明为准。; V# z+ t$ x! I S) K; Q7 V; M
8 o2 {6 X8 M7 l0 o
服务端寻路配置4 [; i L" c1 R" G2 _* \% M7 [
- _" [6 w8 o6 u9 {& g3 q以下为 JVM 启动参数,放在 -jar 前面;修改后需重启服务器。
0 |# `! I1 p& y5 {" s, _4 [& _
- Z! ]& c/ O% P) z. M, a. @2 [7 F| 参数 | 默认值 | 说明 |
5 h, _7 K) i" E7 M! I& V* ?4 q1 d| -Dmtr.path.parallel=true | true | 启用并行寻路;设为 false 使用原串行实现。 |
2 D# h( y. p" y! \8 B. H| -Dmtr.path.workers=8 | 自动选择 | 默认最多 8 个工作线程,受 JVM 可用处理器数减 2 的限制;手动配置最高 12 个。 |
# @# d; _" F7 d| -Dmtr.path.metrics=true | false | 启用寻路统计,约每 30 秒汇总一次。 |
8 Y5 w+ U' }' b
& [: c; j" m& V* W4 K0 R; AJVM 可用处理器数不超过 2,或启用了已有的 threaded simulation 模式时,本并行寻路集成不启用。任务队列容量为 32,每批最多 8 个请求。线程数应结合实际负载调整,更多线程不一定更快。! x( Q* y5 V4 K. g- j
0 l$ P6 l4 ~" E' j+ r+ Q6 Z% {0 T源码构建
7 L; L M3 G8 G
3 m2 w. f% \3 y' }% ]8 p$ x) @构建需同时检出 TSC 二改仓库,并保留以下相邻目录结构:* S7 N) L# e& {
- MTR/1 v1 R \! q& A/ @
- ├── Minecraft-Transit-Railway/
' _6 C8 X# Z& P3 X9 D, J - └── Transport-Simulation-Core/6 J6 v+ U4 }, j9 B! E z. u
- └── path-computation/
复制代码 % _0 d' F+ K0 s: B
MTR 通过 Gradle composite build 引用 path-computation,只引入该独立 Java 17 计算模块。构建工具需要 JDK 21,并需要 Java 17 工具链用于 Fabric 1.20.1 目标;还需满足项目现有 MTR 映射库及构建依赖。
, B! u# _. u6 m+ p& _8 p6 V2 k, S( a) X3 E) \
在 Minecraft-Transit-Railway 目录执行:! m2 s4 g4 V5 J% v
- ./gradlew :fabric:test :fabric:build
复制代码
7 ]/ m% b9 c- e3 Y7 `产物位于 build/release/。: T7 m0 u, R& n3 m7 |: R7 \3 j
8 m8 r) S! d. |优化提交索引 `6 e4 Q2 X/ z' I" Y; `: z! {6 Z7 S
% I1 n: J, e2 c6 I" f- dd51ae1:密集路网渲染、缓存与分配优化。
4 T' h0 w$ W0 u4 W- 29cc313:动态贴图与轨道遮挡任务解耦。
* ^7 e9 v# N' m+ E1 t; A: g2 p- 445978e:限制遮挡扫描并优先处理当前请求。3 U. t9 g2 E9 |8 s( F
- f723771:Iris 排序、模型绘制分配及查询缓存优化。
, V) ~' q& S) B& |3 Q5 J" x- s# N- f22d8ff:服务端有界并行寻路集成。
7 U8 n- R0 i w* p- TSC 3ab979e:独立的批量并行路径计算模块。
+ [7 F6 e& [7 b/ f* L1 p6 j; v8 D0 j& X# w& D. P) h* _/ t: w
许可证与致谢
# G8 c& i6 m, f8 Y* e7 j: G f1 J4 e
本项目采用 MIT 许可证,随附的 Noto 字体采用 SIL Open Font License。感谢上游 MTR、TSC 及相关依赖项目的开发者。本仓库为社区分支,并非上游官方发行版。3 S% b- z' U$ J. j z& {) X
7 ^: e$ V9 e! D. ~
. f; w% v: h7 ?! ~" s/ K3 ` |
|