Oculus

Oculus

60M Downloads

Incompatibility with Complementary Shaders and mod Dimensions

CCr4ft3r opened this issue ยท 3 comments

commented

What happened?

I have a sky rendering issue in Minecraft 1.19.2 with Complementary Shaders 4.5.1 when using Rubidium 0.6.2a and Oculus 1.2.8a.
The sky shows a very light box at the horizon in different dimensions.

The issue on the first picture only happened when having Beyond Earth installed. The issue on the second picture appears when only Rubidium, Oculus and Twilight Forest are installed.
However I don't think it's a bug of Twilight Forest or Beyond Earth but a strange incompatibility between the other mods. If I switch to Sildurs shaders the issues does not appear.

There are also some warnings inside the latest.log:
https://gist.github.com/CCr4ft3r/99474e33b7e92f13f8935c16315f7c92

Screenshots

224758159-91eb9cbf-af88-4362-9c7b-d041ed1bb8d3 (1)
2023-03-30_22 40 04

Relevant log output

[22:29:47] [Render thread/INFO]: Using shaderpack: ComplementaryShaders_v4.5.1.zip
[22:29:47] [Render thread/INFO]: Creating pipeline for dimension OVERWORLD
[22:29:48] [Render thread/WARN]: [Triforce Patcher] gl_FragColor is not supported yet, please use gl_FragData! Assuming that the shaderpack author intended to use gl_FragData[0]...
[22:29:48] [Render thread/WARN]: [clouds] Unsupported uniform: vec4 ColorModulator
[22:29:48] [Render thread/WARN]: [clouds] Unsupported uniform: float FogEnd
[22:29:48] [Render thread/WARN]: [clouds] Unsupported uniform: float FogStart
[22:29:48] [Render thread/WARN]: [clouds] Unsupported uniform: mat4 ModelViewMat
[22:29:48] [Render thread/WARN]: [clouds] Unsupported uniform: mat4 ProjMat

Minecraft Version

1.19.2

Oculus Version

1.2.8a

Rubidium Version

0.6.2

Operating System

Windows 11

What is your GPU?

Nvidia RTX

Java Version

17

Additional context

I already tried to get support on CS side but they said it can be only fixed on the mod side

commented

bump for this - issue seems also present on 1.20.1

commented

The problem is that in 1.16 the dimension system changed from numerical dimension IDs to named ones.

GL shader code has a very hard time with this. We know this because a similar problem happened in 1.12 when they eliminated item/block IDs and it was realized that the names couldnt directly be injected into GLSL code, so the way optifine handled it was by adding support for a "block.properties" file in their shader packs which allowed shader devs to map block names to numerical IDs that were internal to the shader. This was then also expanded upon to allow compat for modded blocks and items in the shader.

As it stands, all the current shader programs (iris, optifine, oculus) have decided to ignore the problem and instead, opted to remove the code that searches for modded dimensions and only handle the vanilla ones. Any modded dimensions get the overworld effects applied as a result.

You can see in this code how block, item, and entities are mapped:

https://github.com/Asek3/Oculus/blob/1.16.5/src/main/java/net/coderbot/iris/shaderpack/IdMap.java

but for dimensions, there is no such thing and only the vanilla dims are parsed now:

https://github.com/Asek3/Oculus/blob/1.16.5/src/main/java/net/coderbot/iris/shaderpack/DimensionId.java

Ive opened up a feature request to suggest that they add a dimension.properties file to keep things consistent and address the deficiency, so support that if you'd like to see it added:

#451

commented

For some reason I encounter this issue in the twilight forest but not the aether mod