开启左侧

[MTR4.0]晏阳技术组优化版MTR正式发布辣!

[复制链接]
BugQuantumCore 昨天 20:38

还没有账号?赶快去注册吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 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& {
  1. MTR/1 v1 R  \! q& A/ @
  2. ├── Minecraft-Transit-Railway/
    ' _6 C8 X# Z& P3 X9 D, J
  3. └── Transport-Simulation-Core/6 J6 v+ U4 }, j9 B! E  z. u
  4.     └── 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
  1. ./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 `
回复

使用道具 举报

mrt114514 作者认证 昨天 21:37
当前MTR的分支情况:
! {. d: r1 Z1 g' x- ^2 O% x0 P! X# R/ aYMTR:基于MTR3.2.2-1.20.1分布,修复部分问题并加入新功能8 m1 x# [1 \; D( t3 l, h% d& u8 r% Z
NeoMTR:基于MTR3.3.0(未发布版本)修改,面向茶会
+ o, K$ S! B7 L& n3 `6 f* yLMTR:基于NeoMTR和MTR4.0的附属模组的修改版8 G* n, ^( v* @5 T4 L% {& Q
MTR-Yanyang Optimized:基于MTR4.0.5的修改版
! t1 C5 O! f1 n' I, R. W( ], N
+ R& t$ d9 f' I& k& NYanyang的未来推荐道路:对MTR-mapping进行提交1.21-26.x分支版本,然后尝试兼容更多MC版本
考试完连夜把出卷人家里的锅换成不粘锅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表