本帖最后由 abRoy 于 2025-1-12 18:37 编辑 ( i o/ ^5 U! j3 @3 n1 Q7 v
5 g; ]: S: Q- s& {
从mtr4.0.0B8就一直困扰我到现在的问题终于解决了,分享一下防止其他和我相同问题的人踩坑
# r+ O$ L+ Z: [; {1 t; G
. r# P3 x% l! }4 t
& V& y2 {4 ^. s% T9 r原mc(1.20.1)在3.2.2版本的mtr下运行一切正常。升级到4.0.0B13后概率出现部分车站/线路的铁轨,站台门不可见的情况,但是又有一些车站是完全正常的。所有的列车都不可见。
" B; c8 T3 m2 }( d4 l8 F0 C! z5 W! |
0 M/ r, U) d4 [# z
, i0 W( h& p) v9 _↑这里应该有张图片但是我不知道插入成功没有 看不到
( ]0 b2 D$ B$ Y' G L3 U) M; z
! G6 C+ ]+ {6 `+ J
原本以为是mtr的问题但是等了很久都没有修复,遂自己看一下日志,发现以下报错频繁出现! Y$ V. g: `: k9 F4 i
- [121��2025 16:54:18.818] [Render thread/ERROR] [MinecraftMappings/]: 1 b: h) r ]8 y, { R; 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)9 X, ]4 i8 D% o% l. _; o" \
- at me.jellysquid.mods.sodium.client.render.vertex.VertexBufferWriter.of(VertexBufferWriter.java:8) ~[%5B�%5D%20rubidium-0.6.5.jar%23246!/:?]
7 E6 o" b D) y% J0 \% u& W* X% U - at net.minecraft.client.model.geom.ModelPart.m_104290_(ModelPart.java:563) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?] y" ^9 w$ X# X
- at net.minecraft.client.model.geom.ModelPart.m_104306_(ModelPart.java:124) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
( X7 O4 v, \! T8 h2 p - at net.minecraft.client.model.geom.ModelPart.m_104301_(ModelPart.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]3 ]; T7 a1 g6 Z, I3 w
- 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!/:?]; h5 ?/ R4 t1 t7 x e
- at org.mtr.mapping.mapper.OptimizedModel.lambda$fromMaterialGroups$0(OptimizedModel.java:47) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?] V& i5 `! N6 o- r( S7 D) k
- at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]2 J' {. ]$ b- v% W4 c- I
- at org.mtr.mapping.mapper.OptimizedModel.lambda$fromMaterialGroups$1(OptimizedModel.java:47) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]) ^+ U M8 N; e6 k6 d4 s, I
- at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
/ O" R$ B2 H. w, f$ _. J4 W' H - at org.mtr.mapping.mapper.OptimizedModel.fromMaterialGroups(OptimizedModel.java:45) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]3 J& Z! Q8 f- U+ c! P
- at org.mtr.mod.resource.OptimizedModelWrapper.fromMaterialGroups(OptimizedModelWrapper.java:20) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
: G! ^' s* |3 }3 `- r5 A+ N ] - at org.mtr.mod.resource.ModelPropertiesPart.writeCache(ModelPropertiesPart.java:135) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]2 C- M- |* H2 Z. V4 y3 d
- at org.mtr.mod.render.DynamicVehicleModel.lambda$new$3(DynamicVehicleModel.java:68) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]. c, @0 J7 a% [; u/ j/ H5 b
- 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!/:?]
$ E* N9 }' s$ G - at org.mtr.mod.resource.ModelProperties.iterateParts(ModelProperties.java:135) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]: H# O& M1 v" }4 v* Y% l; J
- at org.mtr.mod.render.DynamicVehicleModel.<init>(DynamicVehicleModel.java:68) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]1 n9 L$ ^, p( e& D
- at org.mtr.mod.resource.VehicleModel.createModel(VehicleModel.java:121) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]; ]3 ?6 |2 A$ S: k* g% O8 N
- at org.mtr.mod.resource.VehicleModel.lambda$new$0(VehicleModel.java:30) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
" S3 \/ x; l0 V* Z" V. a; G, n - at org.mtr.mod.resource.CachedResource.getData(CachedResource.java:31) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]2 ]7 f/ U) \% r; E4 d" |# G
- at org.mtr.mod.resource.VehicleResource.lambda$forEachNonNull$20(VehicleResource.java:503) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
- J6 B O( f, R4 M1 Z - 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!/:?]: F) G: n9 i% t- e$ ~2 D
- at org.mtr.mod.resource.VehicleResource.forEachNonNull(VehicleResource.java:502) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]/ z' j& P7 k6 A% y4 q) Z
- at org.mtr.mod.resource.VehicleResource.lambda$cachedVehicleResourceInitializer$15(VehicleResource.java:390) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
- J* k! c/ X+ n& a" x - at org.mtr.mod.resource.CachedResource.getData(CachedResource.java:31) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]# u1 g+ Q" K" k+ ~+ B8 [# y; C
- at org.mtr.mod.resource.VehicleResource.queueBogie(VehicleResource.java:206) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
( F/ v# Z2 P) U6 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!/:?]9 W1 W# k. T) o4 e
- at org.mtr.mod.render.RenderVehicleHelper.renderModel(RenderVehicleHelper.java:92) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]: S/ ^0 t2 @$ X& N
- at org.mtr.mod.render.RenderVehicles.lambda$render$6(RenderVehicles.java:81) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
# o3 c1 @& k/ t# H4 B' ^ - at org.mtr.mod.render.RenderVehicles.iterateWithIndex(RenderVehicles.java:330) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]% B; D P- T5 x7 R6 e7 d, F) D
- at org.mtr.mod.render.RenderVehicles.lambda$render$12(RenderVehicles.java:78) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
: ]" j1 Y9 y: }' I' |5 ? R3 @2 q+ r - at org.mtr.mod.client.CustomResourceLoader.getVehicleById(CustomResourceLoader.java:161) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]& ~; M$ z. \! a7 `7 A
- at org.mtr.mod.render.RenderVehicles.lambda$render$13(RenderVehicles.java:72) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]2 I& S" q& Q. e9 `
- at org.mtr.mod.render.RenderVehicles.iterateWithIndex(RenderVehicles.java:330) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]! b& Y. n) L K* E
- at org.mtr.mod.render.RenderVehicles.lambda$render$14(RenderVehicles.java:53) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
k, W. b) {& l/ z9 g! M$ L- } - at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]7 c" c9 Q1 C4 p5 g8 _* m; I
- at org.mtr.mod.render.RenderVehicles.render(RenderVehicles.java:42) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]. p ^ g8 U# s D$ S& Y( I1 X
- at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:102) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]' ?# U$ o; K$ h# @# u' R+ ]
- at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:60) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
9 D2 ?! K+ D" `* K! y - at org.mtr.mod.render.MainRenderer.render(MainRenderer.java:26) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
% Z. }2 D' ?' u" j5 ` - at org.mtr.mapping.mapper.EntityRenderer.lambda$render$0(EntityRenderer.java:21) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]9 G S; b0 T/ }5 N" [# u! |0 z& O
- at org.mtr.mapping.mapper.GraphicsHolder.createInstanceSafe(GraphicsHolder.java:50) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?], O2 x1 k, _4 W' {/ J$ t
- at org.mtr.mapping.mapper.GraphicsHolder.createInstanceSafe(GraphicsHolder.java:40) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]
- ^! v" {0 C, w2 b6 o, M% M2 p - at org.mtr.mapping.mapper.EntityRenderer.render(EntityRenderer.java:21) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]% B/ w# `9 O7 G+ T$ @' A' t( G& ?1 K
- at org.mtr.mapping.mapper.EntityRenderer.m_7392_(EntityRenderer.java:11) ~[MTR-forge-4.0.0-beta.13+1.20.1.jar%23287!/:?]* T* E: l9 @4 I7 N7 K4 z k
- at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:140) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]# d1 h( x; J8 K
- at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1440) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]$ d$ Z+ @7 n9 x5 a, p
- at net.minecraft.client.renderer.LevelRenderer.invokeRenderEntity(LevelRenderer.java) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]" a q+ `- X+ |- [5 A' A
- at net.coderbot.iris.pipeline.ShadowRenderer.renderEntities(ShadowRenderer.java:606) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]
% Q6 G0 \7 `, v& L2 @# {* x - at net.coderbot.iris.pipeline.ShadowRenderer.renderShadows(ShadowRenderer.java:483) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]
7 X, s& M* e5 ~! ^- b - at net.coderbot.iris.pipeline.newshader.NewWorldRenderingPipeline.renderShadows(NewWorldRenderingPipeline.java:1033) ~[oculus-mc1.20-1.6.4.jar%23288!/:?]
1 i% \! q. ]9 A - at net.minecraft.client.renderer.LevelRenderer.handler$zob000$iris$renderTerrainShadows(LevelRenderer.java:11680) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]4 g2 d% r, ?1 L. U8 r
- at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1155) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
' m* z: F2 k( Y6 X5 U- f - at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1126) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]# m' C; o0 _. H0 D5 l" l' [2 g
- at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:909) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
! m& k U! K9 i8 s3 r) R7 s - at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]
- \3 x% q. F3 I/ k6 U _) a - at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23300!/:?]7 S) p) S9 c0 f* I) n3 E
- at net.minecraft.client.main.Main.main(Main.java:218) ~[Harvista%201.24.jar:?]
# K- {! Z3 i3 L! ? - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]4 r5 N2 D; C9 l8 H
- at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]; X: f3 j4 [2 u/ j3 o6 {& N
- at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]4 O$ m" |5 i2 E8 |/ w( j3 M
- at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
7 U1 e! @9 }+ m& E - at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.30.jar:?]; V, {* @$ s @* f, q
- at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.30.jar:?]
" j2 K/ M8 @( @: F) N8 |* H - at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.30.jar:?]
. Z4 ]0 v9 }- `7 h1 J - at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]
' @9 q/ Y! i. `. ~* e& g - at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?]
. m6 G7 ~6 ^# H - at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]" _* J" ?. _9 o$ }
- at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] [* e% ]2 Z D/ m7 w
- at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]; @# `& G9 ]* `, U
- at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]" Y5 @, r- {$ `+ ^& C3 \
- at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]3 d, ?" d5 y/ G u
- at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]: a2 F0 c0 y+ ^2 M H9 b" n
- at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
+ d+ Q; x) d7 e H: `' G4 f+ l - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]4 d/ e d; X0 x7 U6 c X
- at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
% t( A% a6 I+ h$ T - at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]6 r3 E9 I& R7 r3 N6 z
- at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:112) ~[?:?]
& Y: ^) ^" P9 I3 f' M n; N: { - at oolloo.jlw.Wrapper.main(Wrapper.java:105) ~[?:?]
复制代码 简单说就是MTR尝试将一个 CapturingVertexConsumer 对象强制转换为Rubidium的类 VertexBufferWriter,但这两个类不兼容。
1 I! A9 I* b; o: p- F; R4 J% g
7 i5 L, D. G: x1 E' {Rubidium和oculus这两个模组是整合包原有的,支持性能优化和光影的模组。但是Rubidium自 2023 年12月起已经停止更新,不再维护。
, R' T/ O ~! M a! e经过研究,我将 Rubidium 替换为 Embeddium 。Embeddium是 Rubidium 的非官方分支,仍在活跃维护中,并包含更多兼容性补丁和新功能。
; S/ z9 S' d* J0 |. W& e6 X1 P/ r当 Embeddium 配合 oculus使用时,所有功能都可以正常运行,且日志中未出现任何报错。0 E3 F, S1 L6 v$ I7 G5 Z/ c* I
3 d. Z. F% Y+ J% R0 j
此问题也已提交至mtr的GitHub(https://github.com/Minecraft-Tra ... Railway/issues/1028) ,考虑到Rubidium已经停止维护,mtr是否可以主动兼容Rubidium?
5 A4 P Q' { f0 ?" H1 Q |