MoreMcmeta / emissive-plugin

Plugin for MoreMcmeta to enable emissive textures for blocks, items, entities, and block entities.
GNU Lesser General Public License v3.0
4 stars 0 forks source link

incompatible with Rubidium. #2

Closed ghost closed 1 year ago

ghost commented 1 year ago

Describe the bug This mod will become ineffective when working with Rubidium

Expected behavior A clear and concise description of what you expected to happen. 2023-07-20_21 17 44 (without rubidium)

Screenshots or videos 2023-07-20_21 16 23 (with rubidium)

Which Minecraft versions does this bug affect? 1.19.2

Mod loader Which mod loaders does this bug affect? 1.19.2-Forge_43.2.21

Mods list rubidium-0.6.2b moremcmeta-1.19.2-4.0.1-forge emissive-plugin-1.19.2-1.0.1-forge

Resource pack What resource packs are you using? Please link to them or attach them to this issue. https://www.curseforge.com/minecraft/texture-packs/emissive-txf/

soir20 commented 1 year ago

Thanks for reporting. I'm looking into this.

Notes for my own investigation into the issue:

Affected items

Unaffected items

Pre-1.19 versions are also affected.

soir20 commented 1 year ago

This looks like an issue with Rubidium ignoring per-vertex lighting data. I don't see a way for MoreMcmeta to fix the incompatibility without making more invasive changes to the game's code, which would likely cause problems with other mods.

It seems like an easier fix on Rubidium's end (from my relatively brief look through their code). They would probably want to fix it anyway since it could create issues with other mods. Hence, I'm going to open up an issue in Rubidium's repository and link it here.

soir20 commented 1 year ago

I've opened an issue in Rubidium's repository: Asek3/Rubidium#539. I recommend "subscribing" to the issue so that you get notifications when there are replies.

I'm going to mark this issue as transferred and close it since I currently don't plan to fix it on my end. Please feel free to reopen this issue if new information arises, or if a non-invasive solution for MoreMcmeta to implement is found.

ghost commented 1 year ago

I have discovered the same issue on fabric caused by sodium.It should be sodium's problem and rubidium inherited it.Could you open up a new issue in their issue tracker?Because I don't understand all the technicalities.

soir20 commented 1 year ago

Are you using Indium with Sodium on Fabric? MoreMcmeta uses the Fabric rendering API, so Indium is required to support that.

It looks like the issue will need to be transferred to Sodium anyway (see the discussion on the Rubidium issue).

ghost commented 1 year ago

ee the discussion on the Rubidium issue).

No.I didn't use Indium when I was testing.Everything works well when Indium installed.It seems to be rubidium's problem.

The author of Rubidium also ported Fabric rendering API and Indium to Forge Reforgium.I'm not sure if it is helpful to make emissive plugin compatible with rubidium

soir20 commented 1 year ago

The underlying bug is likely an issue with both Rubidium and Sodium, just that Indium basically masks the issue when you're using Sodium. I'll need to double check Sodium's code to confirm and then create an issue over there.

soir20 commented 1 year ago

The author of Rubidium also ported Fabric rendering API and Indium to Forge Reforgium.I'm not sure if it is helpful to make emissive plugin compatible with rubidium

I'll look into this, but if it works like the Fabric API, then everyone who wants to use this emissive plugin would have to download Reforgium. Since it is not widely used like the Fabric API is, and the Fabric API modifies a good portion of Minecraft's rendering, it might cause more compatibility issues.

EDIT: This would not work if there is no Indium equivalent on Forge because Sodium, and presumably Rubidium, do not support the Fabric API by themselves.

ghost commented 1 year ago

The author of Rubidium also ported Fabric rendering API and Indium to Forge Reforgium.I'm not sure if it is helpful to make emissive plugin compatible with rubidium

I'll look into this, but if it works like the Fabric API, then everyone who wants to use this emissive plugin would have to download Reforgium. Since it is not widely used like the Fabric API is, and the Fabric API modifies a good portion of Minecraft's rendering, it might cause more compatibility issues.

EDIT: This would not work if there is no Indium equivalent on Forge because Sodium, and presumably Rubidium, do not support the Fabric API by themselves.

I also suppose depending on Reforgium to bypass this issue is not a good choice.The problem should be tackled at the root.Thank you for your efforts!

soir20 commented 1 year ago

It looks like the per-vertex lighting is a feature Forge patched into the vanilla code. Hence, I won't be reporting this to Sodium, since the patch wouldn't be present on Fabric.

I also suppose depending on Reforgium to bypass this issue is not a good choice.

Even though the issue is technically isolated to Forge, using Reforgium would likely cause problems with a lot of other mods. The Fabric API basically rewrites a good portion of block rendering. Including Reforgium to fix this compatibility issue would likely cause compatibility problems with other mods that depend on regular vanilla block rendering + Forge's patches. These types of mods aren't uncommon, probably more common than Rubidium is.

ghost commented 1 year ago

2023-09-26_00 38 53 Seems to be fixed in rubidium-mc1.19.2-0.6.2c