本帖最后由 abRoy 于 2025-1-12 18:37 编辑
& B! p, v9 K8 r; D! A* {7 o+ C3 }9 W5 M" P. Z+ p2 U, _8 \+ \
从mtr4.0.0B8就一直困扰我到现在的问题终于解决了,分享一下防止其他和我相同问题的人踩坑" G' F- v. T7 N9 D6 X5 U
c. H* u' X% C
( p$ i! Y L$ [原mc(1.20.1)在3.2.2版本的mtr下运行一切正常。升级到4.0.0B13后概率出现部分车站/线路的铁轨,站台门不可见的情况,但是又有一些车站是完全正常的。所有的列车都不可见。6 p3 {/ v# L e s+ o& h
/ @$ y4 D/ U( V0 B
' R; s' p! G: k! [9 G) R% P( a
↑这里应该有张图片但是我不知道插入成功没有 看不到
7 `/ p9 \0 S* x1 r$ N6 Q k, y2 G: e# B% |; H" I
( k Z& |7 H: o* x6 H' R; |原本以为是mtr的问题但是等了很久都没有修复,遂自己看一下日志,发现以下报错频繁出现
) Z! h3 Q+ w4 [8 z, I s# R$ E- J5 r: T- [121��2025 16:54:18.818] [Render thread/ERROR] [MinecraftMappings/]: 1 O+ \4 z& v: j: m; f
- java.lang.ClassCastException: class org.mtr.mapping.render.vertex.CapturingVertexConsumer cannot be cast to class me.jellysquid.mods.sodium.client.render.vertex.VertexBufferWriter (org.mtr.mapping.render.vertex.CapturingVertexConsumer is in module mtr@4.0.0-beta.13 of loader 'TRANSFORMER' @62c46e53; me.jellysquid.mods.sodium.client.render.vertex.VertexBufferWriter is in module rubidium@0.6.5 of loader 'TRANSFORMER' @62c46e53)* B2 v" @% K' a* r$ \+ d
- at me.jellysquid.mods.sodium.client.render.vertex.VertexBufferWriter.of(VertexBufferWriter.java:8) ~[%5B�%5D%20rubidium-0.6.5.jar%23246!/:?]
" |+ I* E* o& j( g1 m, r! ?- S; ` - at net.minecraft.client.model.geom.ModelPart.m_104290_(ModelPart.java:563) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]# ?' E- Z/ h7 J* T+ {- o9 y
- at net.minecraft.client.model.geom.ModelPart.m_104306_(ModelPart.java:124) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
! Y& J( C B E1 P, P - at net.minecraft.client.model.geom.ModelPart.m_104301_(ModelPart.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
) O7 H8 Y6 D+ K# Q2 A- k4 U0 Q3 H - at org.mtr.mapping.mapper.OptimizedModel$MaterialGroup.lambda$addCube$0(OptimizedModel.java:99) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]. r6 N3 w+ n6 W9 z' z8 c7 L3 x
- at org.mtr.mapping.mapper.OptimizedModel.lambda$fromMaterialGroups$0(OptimizedModel.java:47) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
4 A4 U0 p$ E ]) F' c: i - at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
* N! j8 e5 U O" \ - at org.mtr.mapping.mapper.OptimizedModel.lambda$fromMaterialGroups$1(OptimizedModel.java:47) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
) l v5 m ^( o% d- l( i - at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
; r+ t9 k% q4 k6 E' U - at org.mtr.mapping.mapper.OptimizedModel.fromMaterialGroups(OptimizedModel.java:45) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]7 |) ^$ @! I$ }
- at org.mtr.mod.resource.OptimizedModelWrapper.fromMaterialGroups(OptimizedModelWrapper.java:20) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]* U! H2 [; p7 ?$ b, y
- at org.mtr.mod.resource.ModelPropertiesPart.writeCache(ModelPropertiesPart.java:135) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]9 d6 A/ q. _7 @# Y. V
- at org.mtr.mod.render.DynamicVehicleModel.lambda$new$3(DynamicVehicleModel.java:68) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]+ }! `9 j* ~, J( }, J8 n
- at org.mtr.libraries.it.unimi.dsi.fastutil.objects.ObjectArrayList.forEach(ObjectArrayList.java:749) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
4 R- c" `& o) Q4 |6 M - at org.mtr.mod.resource.ModelProperties.iterateParts(ModelProperties.java:135) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]0 b% V# h" Q: C5 `5 b$ k
- at org.mtr.mod.render.DynamicVehicleModel.<init>(DynamicVehicleModel.java:68) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]8 t" H! m8 M+ h3 v+ V$ Z8 f" w- }
- at org.mtr.mod.resource.VehicleModel.createModel(VehicleModel.java:121) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?], m9 r6 K! A3 S1 J0 Q0 d. Y3 i
- at org.mtr.mod.resource.VehicleModel.lambda$new$0(VehicleModel.java:30) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]+ W3 @. r2 H# a8 p e% I
- at org.mtr.mod.resource.CachedResource.getData(CachedResource.java:31) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
$ S5 n! E% _% l) Q - at org.mtr.mod.resource.VehicleResource.lambda$forEachNonNull$20(VehicleResource.java:503) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
3 _$ J- ^6 ~* s2 a$ {. i' W - at org.mtr.libraries.it.unimi.dsi.fastutil.objects.ObjectArrayList.forEach(ObjectArrayList.java:749) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]& @% {# s0 ~2 Y3 q- v! y8 G
- at org.mtr.mod.resource.VehicleResource.forEachNonNull(VehicleResource.java:502) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]4 s- j5 h x& ?, ]/ W# Q
- at org.mtr.mod.resource.VehicleResource.lambda$cachedVehicleResourceInitializer$15(VehicleResource.java:390) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
( ~( b9 Y* B8 q: P5 S - at org.mtr.mod.resource.CachedResource.getData(CachedResource.java:31) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
3 v& [9 |- j$ V8 K6 F6 [ - at org.mtr.mod.resource.VehicleResource.queueBogie(VehicleResource.java:206) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
: ~3 J: I4 K& f8 Z0 a - at org.mtr.mod.render.RenderVehicles.lambda$render$3(RenderVehicles.java:81) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
% W; k/ p4 h/ a! e3 ]% L - at org.mtr.mod.render.RenderVehicleHelper.renderModel(RenderVehicleHelper.java:92) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]& \1 U9 F5 L$ [; q: h+ H( K
- at org.mtr.mod.render.RenderVehicles.lambda$render$6(RenderVehicles.java:81) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]8 V4 m A$ s6 ]4 o
- at org.mtr.mod.render.RenderVehicles.iterateWithIndex(RenderVehicles.java:330) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]# f, ]( y, @! I% r' l7 ^( `! R
- at org.mtr.mod.render.RenderVehicles.lambda$render$12(RenderVehicles.java:78) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]) v" ]/ b0 T- X1 F+ E, F
- at org.mtr.mod.client.CustomResourceLoader.getVehicleById(CustomResourceLoader.java:161) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
9 v6 m; s5 [. B5 H& m% R - at org.mtr.mod.render.RenderVehicles.lambda$render$13(RenderVehicles.java:72) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]( c5 W( A& `! A! J; F$ D8 @0 a
- at org.mtr.mod.render.RenderVehicles.iterateWithIndex(RenderVehicles.java:330) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
, M/ o' W9 [" Z: e1 k9 ?# x0 z' W' q - at org.mtr.mod.render.RenderVehicles.lambda$render$14(RenderVehicles.java:53) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
) y7 u+ U4 U* n0 n7 i+ F/ B5 ^, D9 i - at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]4 S; E+ i6 M& Y4 m _% U; c
- at org.mtr.mod.render.RenderVehicles.render(RenderVehicles.java:42) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]/ D/ ]# F8 D1 O! T! e& I$ o/ X- D1 K& D
- at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:102) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]7 r" L8 V/ W9 J2 f' V8 o
- at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:60) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
1 s! ?4 S: b R: B# l6 Q - at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:26) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
( O5 n' s# [6 i! Z7 J - at org.mtr.mapping.mapper.EntityRenderer.lambda$render$0(EntityRenderer.java:21) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
- w- B! Z2 m* T V9 o j - at org.mtr.mapping.mapper.GraphicsHolder.createInstanceSafe(GraphicsHolder.java:50) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
- G7 N, f4 H% s+ V9 O1 f' D. L - at org.mtr.mapping.mapper.GraphicsHolder.createInstanceSafe(GraphicsHolder.java:40) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
$ d V! R/ t2 h9 L4 | - at org.mtr.mapping.mapper.EntityRenderer.render(EntityRenderer.java:21) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
% Z3 c- Q/ R0 f1 | - at org.mtr.mapping.mapper.EntityRenderer.m_7392_(EntityRenderer.java:11) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]( F9 E7 t( C8 f }0 J
- at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:140) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
7 F: H* ~/ h0 f1 h$ R - at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1440) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]* \: c. z/ P8 A8 E
- at net.minecraft.client.renderer.LevelRenderer.invokeRenderEntity(LevelRenderer.java) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?] V! u4 c j: b( K# X
- at net.coderbot.iris.pipeline.ShadowRenderer.renderEntities(ShadowRenderer.java:606) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]
/ B6 s( {8 Z) S' z3 F3 |$ A - at net.coderbot.iris.pipeline.ShadowRenderer.renderShadows(ShadowRenderer.java:483) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]
. [+ Q/ e' G5 Q. m7 m - at net.coderbot.iris.pipeline.newshader.NewWorldRenderingPipeline.renderShadows(NewWorldRenderingPipeline.java:1033) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]0 N3 z$ Z. U( d9 |7 i
- at net.minecraft.client.renderer.LevelRenderer.handler$zob000$iris$renderTerrainShadows(LevelRenderer.java:11680) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]9 L! s. [' G& A. P& s5 V" o$ w: Z
- at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1155) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]- V; Z$ ~" I, c, v2 Z
- at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1126) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
B" s! s* m$ C, O X1 l - at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:909) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
1 p8 @' k5 y. f7 R4 {( C3 d0 E - at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
% O, }& h' ]* j) L' { - at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]/ _2 x! l! {" `5 v- m5 u
- at net.minecraft.client.main.Main.main(Main.java:218) ~[Harvista%201.24.jar:?]& t) G. S6 W8 T( `9 V2 ^) P
- at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
, I% s8 O+ M/ ^6 T( \* K - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
3 \& o6 u7 g% H' S7 t2 @! H - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
1 l0 h3 {1 d- \ - at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]2 f, g7 L6 Y; N. w% {' I
- at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.30.jar:?]
. x6 J, ?1 f+ z' `4 C/ S: `6 R - at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.30.jar:?]
! a: O7 w- l8 e9 _/ M - at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.30.jar:?]
, B* I& d3 x" z# | - at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]; o7 U& P& a" j |' K# @, o
- at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] B+ S2 @5 o+ s, a9 @3 Y& M5 g
- at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]! v4 l/ z6 W% A* h0 S$ {; u t( Q
- at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?]
+ C1 K v) T( ^0 W: p. B# T; H - at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]9 ^# |' M7 i8 A7 K, h. o4 f
- at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]
5 p4 h5 X2 V3 |& Q) k - at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]# s4 o0 e$ r! j
- at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]
9 B" N5 ^4 S8 E+ {3 i7 X& ] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
5 v2 O. E# ~6 Z2 ?' { - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]% a0 _# p- y) h; |) u% W( O; T' L
- at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]! E3 X# m% r& o: k' }
- at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]* c/ D( \: j) O
- at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:112) ~[?:?]( `8 k2 D, _9 a
- at oolloo.jlw.Wrapper.main(Wrapper.java:105) ~[?:?]
复制代码 简单说就是MTR尝试将一个 CapturingVertexConsumer 对象强制转换为Rubidium的类 VertexBufferWriter,但这两个类不兼容。9 h8 E% ]* Z( c8 f# u* W
/ L4 o# f7 w! b- ?0 B; RRubidium和oculus这两个模组是整合包原有的,支持性能优化和光影的模组。但是Rubidium自 2023 年12月起已经停止更新,不再维护。
7 w8 A% c$ R) O9 |; G$ z+ I$ K经过研究,我将 Rubidium 替换为 Embeddium 。Embeddium是 Rubidium 的非官方分支,仍在活跃维护中,并包含更多兼容性补丁和新功能。
: p% p+ y( |) u1 Q5 y% q当 Embeddium 配合 oculus使用时,所有功能都可以正常运行,且日志中未出现任何报错。
# K3 K! b g( E( X* Y+ l E, {; X' [
) Z2 i( v' k: [; T+ s此问题也已提交至mtr的GitHub(https://github.com/Minecraft-Tra ... Railway/issues/1028) ,考虑到Rubidium已经停止维护,mtr是否可以主动兼容Rubidium?
: P# E* E2 e& R' y |