diff options
author | makamys <makamys@outlook.com> | 2021-05-07 08:42:32 +0200 |
---|---|---|
committer | makamys <makamys@outlook.com> | 2021-05-07 08:42:32 +0200 |
commit | c233ea31da07957d8872d3859d6e75b99937becd (patch) | |
tree | b9d4301b7b503aa466d4af2db8498918f3e6dfee /src/main/resources | |
parent | bc6c84d2d2342073b6f4d1b8c1213b7102bb7ebf (diff) | |
download | Neodymium-c233ea31da07957d8872d3859d6e75b99937becd.tar.gz Neodymium-c233ea31da07957d8872d3859d6e75b99937becd.tar.bz2 Neodymium-c233ea31da07957d8872d3859d6e75b99937becd.zip |
Port mod from MCP to Forge!
The only known regression is the sides of LOD=1 chunks look darker for some
reason
Diffstat (limited to 'src/main/resources')
-rw-r--r-- | src/main/resources/META-INF/LODMod_at.cfg | 2 | ||||
-rw-r--r-- | src/main/resources/lodmod.mixin.json | 9 | ||||
-rw-r--r-- | src/main/resources/shaders/chunk.frag | 61 | ||||
-rw-r--r-- | src/main/resources/shaders/chunk.vert | 34 |
4 files changed, 104 insertions, 2 deletions
diff --git a/src/main/resources/META-INF/LODMod_at.cfg b/src/main/resources/META-INF/LODMod_at.cfg new file mode 100644 index 0000000..ff15140 --- /dev/null +++ b/src/main/resources/META-INF/LODMod_at.cfg @@ -0,0 +1,2 @@ +public net.minecraft.client.renderer.texture.TextureMap field_94252_e #mapUploadedSprites +public net.minecraft.client.renderer.Tessellator func_78379_d()V #reset
\ No newline at end of file diff --git a/src/main/resources/lodmod.mixin.json b/src/main/resources/lodmod.mixin.json index 8ded54d..d8bfed1 100644 --- a/src/main/resources/lodmod.mixin.json +++ b/src/main/resources/lodmod.mixin.json @@ -5,8 +5,13 @@ "refmap": "lodmod.mixin.refmap.json", "compatibilityLevel": "JAVA_8", "mixins": [ - "MixinSoundManager", + "MixinChunkCache", "MixinEntityRenderer", - "IRenderGlobal" + "MixinMinecraftServer", + "MixinRenderGlobal", + "MixinSoundManager", + "MixinSoundManager", + "MixinTessellator", + "MixinWorldRenderer" ] } diff --git a/src/main/resources/shaders/chunk.frag b/src/main/resources/shaders/chunk.frag new file mode 100644 index 0000000..ae187cb --- /dev/null +++ b/src/main/resources/shaders/chunk.frag @@ -0,0 +1,61 @@ +#version 330 core +out vec4 FragColor; + +in vec2 TexCoord; +in vec2 BTexCoord; +in vec4 DaColor; +in vec4 Viewport; +in mat4 ProjInv; +in vec4 FogColor; +in vec2 FogStartEnd; + +uniform sampler2D atlas; +uniform sampler2D lightTex; + +void main() +{ + //FragColor = texture(lightTex, TexCoord); + //FragColor = texture(lightTex, vec2(8.0/256.0,8.0/256.0)); + //FragColor = texture(lightTex, vec2(0, 0)); + //FragColor = vec4(texture(lightTex, vec2(0, 0)).xyz,1); + //FragColor = vec4(BTexCoord.xy / 256, 0, 1); + //FragColor = texture(lightTex, (BTexCoord + 8.0) / 256.0); + //FragColor = texture(light, vec2(16,16)); + //FragColor = vec4(1,0,0,1); + //FragColor = DaColor/256.0; + + vec4 texColor = texture(atlas, TexCoord); + vec4 colorMult = DaColor/256.0; + + vec4 lightyColor = texture(lightTex, (BTexCoord + 8.0) / 256.0); + //vec4 lightyMultColor = vec4(lightyColor.x * colorMult.x, lightyColor.y * colorMult.y, lightyColor.z * colorMult.z, lightyColor.w * colorMult.w); + + //FragColor = vec4(texColor.x * colorMult.x, texColor.y * colorMult.y, texColor.z * colorMult.z, texColor.w * colorMult.w); + //vec4 texMultColor = texColor * colorMult; + + //FragColor = texMultColor;// + (lightyColor - vec4(0.5,0.5,0.5,0.0)); + //FragColor = vec4(lightyColor.xyz, 1); + //FragColor = ((texColor * colorMult) * lightyColor); + vec4 rasterColor = ((texColor * colorMult) * lightyColor); + float s = FogStartEnd.x; + float e = FogStartEnd.y; + + vec4 ndcPos; + ndcPos.xy = ((2.0 * gl_FragCoord.xy) - (2.0 * Viewport.xy)) / (Viewport.zw) - 1; + ndcPos.z = (2.0 * gl_FragCoord.z - gl_DepthRange.near - gl_DepthRange.far) / + (gl_DepthRange.far - gl_DepthRange.near); + ndcPos.w = 1.0; + + vec4 clipPos = ndcPos / gl_FragCoord.w; + vec4 eyePos = ProjInv * clipPos; + + float z = length(eyePos); + /* + if(z < 200){ + discard; + } + */ + float f = (e - z) / (e - s); + f = clamp(f, 0, 1); + FragColor = mix(FogColor, rasterColor, f); +}
\ No newline at end of file diff --git a/src/main/resources/shaders/chunk.vert b/src/main/resources/shaders/chunk.vert new file mode 100644 index 0000000..3f2ad1c --- /dev/null +++ b/src/main/resources/shaders/chunk.vert @@ -0,0 +1,34 @@ +#version 330 core +layout (location = 0) in vec3 aPos; +layout (location = 1) in vec2 aTexCoord; +layout (location = 2) in vec2 aBTexCoord; +layout (location = 3) in vec4 aDaColor; + +uniform mat4 modelView; +uniform mat4 proj; +uniform mat4 projInv; +uniform vec4 viewport; +uniform vec4 fogColor; +uniform vec2 fogStartEnd; + +uniform vec3 playerPos; + +out vec2 TexCoord; +out vec2 BTexCoord; +out vec4 DaColor; +out vec4 Viewport; +out mat4 ProjInv; +out vec4 FogColor; +out vec2 FogStartEnd; + +void main() +{ + gl_Position = proj * modelView * vec4(aPos - playerPos, 1.0); + TexCoord = aTexCoord; + BTexCoord = aBTexCoord; + DaColor = aDaColor; + Viewport = viewport; + ProjInv = projInv; + FogColor = fogColor; + FogStartEnd = fogStartEnd; +}
\ No newline at end of file |